微软(中国)Vendor 测试人员SDET面试经过

来源:互联网 发布:js实战案例视频 编辑:程序博客网 时间:2024/05/21 16:19
故事发生的时间:2004年6月,地点:北京知春路希格玛大厦,Interviewee:本兔。

Summary:
第一次面试:书面问题:3道题,全英文。
1. 写链表的插入函数。
2. 描述你拍一张照片的过程。
3. 要测试 the login form for Windows 要用哪些cases?

第二次面试,编程问题:写strcpy函数
第三次面试,编程问题:写字符串分割函数:把str1用str2分割。例如:“c:/aa/abc” 用"/"分割后,得到3个串:"c:","aa","abc"


了解到其他人面试时的编程题目:
写一个函数:数组剔除重复元素。
写一个函数:字符串颠倒(反置)。

较详细的面试情况:

200406xx  下午,第一次面试,interviewer HW1人

先是书面问题,3道题,全英文。不限时。
1. 写链表的插入函数。
2. 描述你拍一张照片的过程。
3. 要测试 the login form for Windows 要用哪些cases?

然后是全英文对话:
Can you give me a self introduction?
What's most difficult in you work in IBM?
聊在IBM工作的具体技术 ....

谈更早以前的工作...
Who is the most hard person you have meet at work, and how you get along with him/her?
(工作上遇到的最难相处的人是谁?如何相处的?)

What's the difference between C++ and Java? (晕)
我回答了一两点。
Anything else?
What's the difference on OOP?(在OOP方面它们还有什么区别?)
你的职业规划是什么?
你愿意做Tester的工作吗?

Do you have any question to ask me?

Thanks. bye.

-----------------------------------------------------------------------------
200406xx  下午,第二次面试。两人面试(后来知道是将来的领导:JJ和JW)
基本全是问开发的问题。又细又全。从网络底层的开发,到图形界面刷新方面的问题。

开始面试,他们好像找不到简历。我自己带了一份中、英文简历,给他们。
“你简历上说:可用英语会话,那么请你用英语介绍一下你自己。”

以后的部分全用汉语:
谈在IBM工作:
“你简历上写了,IBM 开发xxx的new feature,是那些new feature?”
又谈了一些更具体的问题。
“UT(Unit Test)是怎么做的?Case是自己编的吗?有多少个?”(我简历上有在IBM,也做UT)
在那里同事之间通过什么方式交流的?(这个问题可能是想问我,是否平时email用英文。)


关于TCP/IP:
网络分层,有那几层。 (小case)
Socket通信,的大概开发情况。谈到自己做过服务器的开发。
服务器程序:
QQ 这种软件,你会怎样开发?  (狂晕。)
有没有办法减小服务器的负载。 答:可用多台服务器。
那么要是负载还是高,有没有办法把服务器的工作量减小?
能做到客户端互相直接通信吗? 

关于VC Win32:
写程序:当场让我写一个strcpy,(没纸,写在我的简历的背面)。
两个人看了一下。问,这个程序有什么问题?
答:“我来看一下。”果然倒数第二行,有致命错误一个。改了过来。
如果让你测试这个函数,你会怎样测试,用哪些Case?
调Win API 与 普通的C函数有什么区别? (事后觉得 可能是 __cdecl 与 __winapi)

关于Java
界面,图像显示,
参数传递方式

你的职业规划。
--------------

200406xx 13:20-14:30  纯英文面试。interviewer:M,来自美国微软总部(后来知道是该组的lead)

进了屋子,握手,坐下后,他好像找不到简历。问:Can you please give me a introduction to let me know your work experience?
答:I brought a copy of my resume. 他说,正好。递给他,英文简历。
接着,英语自我介绍教育背景和工作经历。

你认为作开发与作测试有什么不同?有什么相同?
What's the difference between C++ and Java?

让我当场在白板上写一个类似于VB中 split 的函数。实现分割字符串功能 。函数原型自己定,用什么语言自己定。
我定的原型:char * [] split(char * expression, char * delimiter)

在白板上,程序的总体部分写得差不多了。M说不必完全写完,解释一下你的想法。
听我讲完后,指着 写出来的藏着小错误的一段循环,让我讲每次循环的结果。
(其实循环到最后一次就会出错,可能是想考察应聘者的排错能力)
又问:如果别人写好了这个函数,让你测试,你用那些字符串测试这个函数?
(我说了尽量多的情况,他指出了我程序中的一些通不过测试的地方(如delimiter的长度大于 expression 时不会正常执行),或者有潜在问题的地方(如用整数标识字符在串中的位置)。让我大长见识:原来写一个真正好的函数,要考虑那么多东西。以前一直忽略这些问题。
比如,汉字(双字节字符)支持;不提倡用整数表示字符位置,而应该用指针。(整数隐含限制了字符串长度。))

最后,问我:Do you have any question to ask me?
thanks. bye. 握手,对方握得很紧,跟面试开始时握的完全不同,这是事成的标志。

总之,感觉主要考察的是:开发经验,编程能力,排错能力,测试方面的意识,英语技能,讲自己想法的能力,等。
另外,写程序都不限时间,如果要在白板上写,可以自己要求先在纸上打个草稿。

 
原创粉丝点击