Chinaunix

标题: 【转载】微软面试之我见 [打印本页]

作者: knighter    时间: 2007-09-10 08:49
标题: 【转载】微软面试之我见
作者: wheatlee    来源: 微软测试专家群

(一)
作为在微软已经工作了1年半的一个小小的Vendor(SDET),之间也面试了不少Candidates,一直想说说我的想法,只是一直不知道该怎么说。今天,我觉得应该把我对测试的理解和微软面试的理解拿出来给大家分享。
        这次说的是开发与测试的关系。

        我们项目组是以SDET(开发测试工程师)为主的。所以我们招人的条件就是精通测试,熟悉开发。但是,我遇见很多有1、2年的开发经验的Candidates,当我们给他们介绍我们是做测试的时,他们马上说,我只想做开发。为什么,因为觉得做测试会让自己的开发技能减退。

        我一直认为测试跟开发是相辅相成的(看得眼熟吧?马哲里的原话:),开发是锻炼一个人的能力,而测试则是锻炼一个人的思路。做过单元测试,会让你以后写代码时更加注意代码的可读性、简洁性、高效性;做过集成测试,会让你以后写代码时更加注重各个方法、类之间的联系;做过系统测试,会让你以用户的角度去思考你的代码和界面设计。我觉得一个开发人员,想向更高的层次走,去做测试是一个不错的捷径。

        作为1、2年的开发工程师,正适合来做测试,哪怕最简单的页面测试(说白了就是随便点点)。可是他们却看不上测试的工作,认为那个是任何一个人都可以做的。真的吗?既然测试那么简单,为什么一个简单的login登陆界面的测试用例你们都设计不好呢?

        测试不是任何人可以替代的,哪怕是简单的UI测试。测试和开发就像修汽车的和开汽车的。修汽车的人不见得都会开汽车,开汽车的人也不见得都会修汽车。但是,一个真正优秀的司机,应该是开车开得好,修车也修得好。测试是需要经验的。如果你用心作一年UI测试,一个新的UI来了,你会知道哪最容易出错,哪是用户最喜欢用的功能,这种经验是任何新人都取代不了的。这只是最简单的UI测试。而我个人认为的测试的巅峰---性能测试,它要求测试人员需要有完整甚至近乎完美的计算机知识。操作系统、编译原理、数据库、数据机构、算法、网络、计算机硬件等等,这些知识不是任何一个做开发1、2年的人都具有的!

        开发工程师们呀,请放下你们的架子,可以适当的选择测试工程师或者开发测试工程师来做做。这是丰富你们职业经历,提升你们职业技能很不错的捷径。而且,即精通测试,又懂开发的人真的好少。。。。。
作者: knighter    时间: 2007-09-10 08:50
(二)
我所在的Team对应聘的人员要求是做过测试,有一定的开发能力和扎实的数据库基础。因此,不少Vendor公司从测试里面找这样的人。但是,又出现一个问题,很多推过来的测试完全不懂开发。

  我上次面试过一个兄弟,再微软的另一个项目组作STE,我一进去,他给我的第一句话就是我不懂开发。整得我当时就觉得可以直接cancel掉了。但是,至少给人家一个表现的机会。我稍微问了些开发的知识。的确,完全不懂(有点夸张了,不过真的不是很懂)。测试呢,还可以。其实也只能是Average+(不过能达到这个水平的10个面试的有2个就不错).当然,被直接cancel了。

  在中国,很多人不愿意去做测试,认为那是很低级的工作。很多公司把写代码不行得人,甚至是完全不懂计算机的人安排作测试。这就造成了一种现象,开发的看不起测试,测试的不会开发。但是,在软件工程这个系统科学里来说,真正的测试是建立在开发的基础上的。

  这就好比修汽车与开汽车的(还是那个例子),修汽车的不会开汽车,你会发现很多问题你不知道是什么原因,也许你会修。如果你会开汽车,可能你就会知道也许是司机换档时离合器没有踩好,导致变速齿轮打坏(偶只开过以前的北京吉普,现在的车据说有同步器,好像不会有这样的问题,不懂得说)。这样,你就会在司机取车时给他很好的保养建议。同样,我理解的测试,就是发现问题,定位问题,向开发提出问题解决参考意见。如果你不懂开发,很多问题你能测出来,但是你不知道为什么会这样。所以定位问题,提出解决方案就不可能了。因为,你必须去懂代码,至少,能看懂代码,能写出简单的代码来辅助你的测试。

  当然有些人会说,公司分工很细,黑盒测试人员根本接触不到代码。我承认,但是,如果你懂得页面(界面)实现过程和原理,很多错误你会很容易判断出来大体是什么问题。如果你懂得数据库或开发,很多注入式攻击你就能够理解并能运用到你的工作中。你想,如果一个做简单页面测试的人员,能够发现很多系统安全问题,你的leader还会让你继续作简单的页面测试吗?

  昨天跟一个Vendor公司的HR聊天,她说很难找到会测试又会开发的人,说很多测试做了2年多还不会开发。我就问她,那他们这2年都干什么了?除了工作就是玩吗?2年哪怕你抽出半年的时间来学开发,还至于不会开发吗?难道你不会再业余时间来做些小工具,小网站之类的来练习一下吗?全都是自找的!

  希望以后的测试工程师们能够觉醒,不再尴尬!
作者: knighter    时间: 2007-09-10 08:57
我目前就是一个“做简单页面测试的人员”。泪奔~~~~

算法不会,数据结构不懂,只会简单的编程……不学习就完了
作者: jaffaz    时间: 2007-09-10 20:44
偶现在是改改代码 然后就做下白合测试
作者: knighter    时间: 2007-09-10 20:45
原帖由 jaffaz 于 2007-9-10 20:44 发表
偶现在是改改代码 然后就做下白合测试

高手啊!我是黑盒……

高手请指教
作者: jaffaz    时间: 2007-09-10 20:51
原帖由 knighter 于 2007-9-10 20:45 发表

高手啊!我是黑盒……

高手请指教

开发的肯定要作白合测试,这是职业道德问题
作者: knighter    时间: 2007-09-10 20:54
原帖由 jaffaz 于 2007-9-10 20:51 发表

开发的肯定要作白合测试,这是职业道德问题

我本身学的不是计算机,混进来搞IT
作者: knighter    时间: 2007-09-10 20:55
原帖由 jaffaz 于 2007-9-10 20:51 发表

开发的肯定要作白合测试,这是职业道德问题

现在有专职做白盒测试的,不过首先要有开发经验~

否则真做不好
作者: jaffaz    时间: 2007-09-10 21:14
原帖由 knighter 于 2007-9-10 20:55 发表

现在有专职做白盒测试的,不过首先要有开发经验~

否则真做不好

作白合测试确实需要能看懂代码,专职的好多公司都不愿聘用,代价太高
作者: knighter    时间: 2007-09-10 23:08
原帖由 jaffaz 于 2007-9-10 21:14 发表

作白合测试确实需要能看懂代码,专职的好多公司都不愿聘用,代价太高

很多公司不重视测试~

所以被我混了进来

好多东西要学啊!:em11:
作者: 山中无老虎    时间: 2007-09-11 13:28
很麻这种假洋鬼子,好好的中国话不说非用英文,说明自己水平很高么?
这家伙居然还是什么专家群的,是自己起的名吧,说的话都不通。
1、这人也是瞧不起自己工作的人,居然说有了水平还会让你做什么简单的测试类的话;
2、测试人员会做开发是自己学的,跟测试有什么关系,他自己不也说么,有半年时间学习,开发也就会了,但测试了两年也没会说明测试跟开发没有关系,自己跟自己矛盾;
3、根本不会用人,估计是个理论一大堆的人,他所说的面试的那个人应该是可用的,至少达到了2/10的标准,就因为人家说了真话就不用?说真话是一种高贵的品质,而且是自信的表现。
先吃饭去,一会儿再批之。
作者: knighter    时间: 2007-09-11 13:56
原帖由 山中无老虎 于 2007-9-11 13:28 发表
很麻这种假洋鬼子,好好的中国话不说非用英文,说明自己水平很高么?
这家伙居然还是什么专家群的,是自己起的名吧,说的话都不通。
1、这人也是瞧不起自己工作的人,居然说有了水平还会让你做什么简单的测试 ...

老虎才去吃饭啊?

就是希望你们这些有经验的人来指点指点
作者: 山中无老虎    时间: 2007-09-11 14:16
原帖由 knighter 于 2007-9-11 13:56 发表

老虎才去吃饭啊?

就是希望你们这些有经验的人来指点指点

我实际上挺尊重测试这个职位的,这一直认为测试的人不能仅会开发,而且需要在设计方面也要知道。因为测试不仅仅是表面的一些错误,还应该包括深层次的设计方面的错误,只会开发根本测不出来。特别是在一些效率和性能方面如果没有一定的经验,即使你测出来不达标也不知道怎么回事。
如果仅做测试而不接触开发,确实开发的水平会下降,这是事实,写这篇文章的人估计是没搞过来开发。但如果一边测试一边做一些开发方面的事[个人]或继续学习,开发的水平会突飞猛进,因为你知道什么地方会有问题,什么地方应该注意。
作者: knighter    时间: 2007-09-11 14:27
原帖由 山中无老虎 于 2007-9-11 14:16 发表
我实际上挺尊重测试这个职位的,这一直认为测试的人不能仅会开发,而且需要在设计方面也要知道。因为测试不仅仅是表面的一些错误,还应该包括深层次的设计方面的错误,只会开发根本测不出来。特别是在一些效率和性能方面如果没有一定的经验,即使你测出来不达标也不知道怎么回事。
如果仅做测试而不接触开发,确实开发的水平会下降,这是事实,写这篇文章的人估计是没搞过来开发。但如果一边测试一边做一些开发方面的事[个人]或继续学习,开发的水平会突飞猛进,因为你知道什么地方会有问题,什么地方应该注意。


我目前感觉比较迷茫,公司现在开发主要用PHP,但我感兴趣的是C/C++,以及想学习Linux下面的嵌入式之类的知识

最近想先系统学学软件工程方面
作者: 山中无老虎    时间: 2007-09-11 14:45
原帖由 knighter 于 2007-9-11 14:27 发表


我目前感觉比较迷茫,公司现在开发主要用PHP,但我感兴趣的是C/C++,以及想学习Linux下面的嵌入式之类的知识

最近想先系统学学软件工程方面

在吃饱的条件下再干自己喜欢的事。
作者: knighter    时间: 2007-09-11 14:51
原帖由 山中无老虎 于 2007-9-11 14:45 发表

在吃饱的条件下再干自己喜欢的事。

问题是我吃饱了想尝尝老虎肉呢?
作者: 山中无老虎    时间: 2007-09-11 15:08
原帖由 knighter 于 2007-9-11 14:51 发表

问题是我吃饱了想尝尝老虎肉呢?

把自己PP上的肉割二斤下来。
作者: knighter    时间: 2007-09-11 15:13
原帖由 山中无老虎 于 2007-9-11 15:08 发表

把自己PP上的肉割二斤下来。

老虎发怒了~ 我以为是病猫

老虎你去申请个版主吧,管管这个软件工程~~~~

我支持你!
作者: 山中无老虎    时间: 2007-09-11 15:44
原帖由 knighter 于 2007-9-11 15:13 发表

老虎发怒了~ 我以为是病猫

老虎你去申请个版主吧,管管这个软件工程~~~~

我支持你!

不申请,古语云:无官一身轻。
作者: knighter    时间: 2007-09-11 15:45
原帖由 山中无老虎 于 2007-9-11 15:44 发表

不申请,古语云:无官一身轻。



切,那你工作中的职位呢?
作者: 山中无老虎    时间: 2007-09-11 15:52
原帖由 knighter 于 2007-9-11 15:45 发表



切,那你工作中的职位呢?

网络和现实是有差距的。
作者: knighter    时间: 2007-09-11 15:56
原帖由 山中无老虎 于 2007-9-11 15:52 发表

网络和现实是有差距的。

这个“软件工程”版被人抛弃了……
作者: 山中无老虎    时间: 2007-09-11 16:47
原帖由 knighter 于 2007-9-11 15:56 发表

这个“软件工程”版被人抛弃了……

不能算抛弃,如果喜欢可以常来看看,自己有什么想法就说说。
只要有人来,软件工程版就会存在。
作者: chunde    时间: 2007-09-11 17:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: yanhang    时间: 2007-09-11 17:44
本人写的是小系统.
开发要做,反过来要做他人的测试.
日子就是如此.
作者: knighter    时间: 2007-09-11 18:11
原帖由 yanhang 于 2007-9-11 17:44 发表
本人写的是小系统.
开发要做,反过来要做他人的测试.
日子就是如此.

我觉得工作涉及开发和测试,工作效率会比较高

因为了解问题所在

欢迎拍砖!
作者: knighter    时间: 2007-09-11 18:12
原帖由 山中无老虎 于 2007-9-11 16:47 发表

不能算抛弃,如果喜欢可以常来看看,自己有什么想法就说说。
只要有人来,软件工程版就会存在。

枪手太多了……如果我是版主我就把他们都干掉!
作者: 山中无老虎    时间: 2007-09-12 09:13
不知道BZ跑哪去了,我看他好象基本不管。
作者: knighter    时间: 2007-09-12 10:20
原帖由 山中无老虎 于 2007-9-12 09:13 发表
不知道BZ跑哪去了,我看他好象基本不管。

版主大大的登陆信息~看来他是不管这里了

1.JPG (11.88 KB, 下载次数: 96)

1.JPG

作者: knighter    时间: 2007-09-12 10:56
原帖由 山中无老虎 于 2007-9-11 13:28 发表
很麻这种假洋鬼子,好好的中国话不说非用英文,说明自己水平很高么?
这家伙居然还是什么专家群的,是自己起的名吧,说的话都不通。
1、这人也是瞧不起自己工作的人,居然说有了水平还会让你做什么简单的测试 ...

老虎很讨厌这些假洋鬼子啊~

不过其实他说的是:继续作简单的页面测试

性能方面的以及安全方面的测试,要求都比较高
作者: huajian15    时间: 2007-09-12 13:00
测试的确重要
作者: knighter    时间: 2007-09-12 15:39
原帖由 huajian15 于 2007-9-12 13:00 发表
测试的确重要

嗯!

PS:誓将枪手贴踩下去
作者: 山中无老虎    时间: 2007-09-12 16:12
原帖由 knighter 于 2007-9-12 10:56 发表

老虎很讨厌这些假洋鬼子啊~

不过其实他说的是:继续作简单的页面测试

性能方面的以及安全方面的测试,要求都比较高

我说的意思是测试没有简单不简单之说,不管是什么都必须认真对待。
作者: knighter    时间: 2007-09-13 08:54
原帖由 山中无老虎 于 2007-9-12 16:12 发表

我说的意思是测试没有简单不简单之说,不管是什么都必须认真对待。

我检讨……因为公司要求不高,我通常一边在CU溜达,一边在工作
作者: jaffaz    时间: 2007-09-13 11:17
原帖由 knighter 于 2007-9-13 08:54 发表

我检讨……因为公司要求不高,我通常一边在CU溜达,一边在工作

我也好几个星期都没用什么事情做了,偶尔打几个包而已。
每天还要坐满9个钟头
作者: 山中无老虎    时间: 2007-09-13 11:23
原帖由 knighter 于 2007-9-13 08:54 发表

我检讨……因为公司要求不高,我通常一边在CU溜达,一边在工作

年轻时候认真点养成个习惯是应该的。
作者: knighter    时间: 2007-09-13 11:40
原帖由 jaffaz 于 2007-9-13 11:17 发表

我也好几个星期都没用什么事情做了,偶尔打几个包而已。
每天还要坐满9个钟头
原帖由 山中无老虎 于 2007-9-13 11:23 发表

年轻时候认真点养成个习惯是应该的。

都是闲出来的

经常看一会资料就分心
作者: 山中无老虎    时间: 2007-09-13 11:52
原帖由 knighter 于 2007-9-13 11:40 发表


都是闲出来的

经常看一会资料就分心

习惯就好了。
作者: knighter    时间: 2007-09-13 12:58
原帖由 山中无老虎 于 2007-9-13 11:52 发表

习惯就好了。

看来要找时间闭关
作者: knighter    时间: 2007-09-14 09:27
(三)态度问题

这篇完全是基于个人的看法,可能对同一个人,大家有不同的理解,也有可能有人认为他的态度没有问题。只是,在我们这个项目组,遇见我下面提到的几种问题的话,绝对会直接cancel的。
        在面试中,我遇见了这样几种问题,让人感觉不是很爽。

        1)当我问一个candidate大体介绍下索引,他说上一各公司面试就问我这个问题了,但是我比较懒,也没有去查。(当时我听了就已经直接cancel了。这等于自动缴械了。)

        2)当我向一个之前做开发的candidate说明了我们的工作性质,问他是否愿意接受这份工作,他只是说我可以做做看看(本来印象不错,但是这句话让我感觉他不能坚持长久)。

        3)一个candidate写的算法的时间复杂度是O(n),我问他可不可以在优化呢? 他想都不想就说那就是O(1)(给我感觉很反感,不严谨!),然后自己在那笑。

        对于第一种情况,我个人认为一个真正好学,且有很强求职欲和求知欲的人,是绝对不会在同一个问题上被问倒2次的。当那个candidate那样回答了,让我感觉他不是很急得找工作。既然不着急,那么得到的工作机会也不会珍惜。

        对于第二种情况,我觉得是个有争议的话题。有些人就是习惯说“我可以做做看”,他们的“我可以做做看”就是我会努力去做。因此,对于这个人的录用与否我们组也产生了很大分歧。但最终还是决定cancel。原因还是那个,“做做看”给人的感觉不肯定。而我们组的项目是微软这边新的项目,所有的测试工具,测试架构,测试用例等都需要自己去研究,开发,因此遇见的问题和烦恼一定也会很多。我们不希望一个意志不坚定的人来接受这份工作。从应聘者角度看,我觉得如果肯定就说肯定,不要说不否定,哪怕你内心说不否定。因为,应聘者要给面试的感觉就是说一不二,有自信。

        第三种情况在于我看来就是玩闹。面试时缓解压力,开个小玩笑那是正常,但是不是随便瞎开的。这位面试者就是没有把握好开玩笑的时机,给人的感觉很不严谨。我认为,在面试时,面试官的任何问题一定要认真思考,认真回答。在回答结束后,如果时机不错,可以适当的开个小玩笑,让人觉得你很轻松,很自信。而在回答问题时开类似上面的玩笑,给人就是不严谨的感觉。如果当时我说那你就给我作出O(1)的算法,做不出来就可以回去了,那他这不等于砸了自己的脚?

        其实,面试的很多细节都能反映出一个人对工作,对生活的的态度。希望大家能够注意:)

        还有一个个人的癖好,不过我觉得应该提醒下各位candidate,就是嘴里和身上的味道。不多说,大家都知道为什么。:)
作者: shixiaobo925    时间: 2007-10-09 11:01
长见识了,以后面试注意这些
作者: queniao    时间: 2007-10-20 10:26
标题: 回复 #1 knighter 的帖子
搂主说得极是,开发与测试相辅相成,很多时候好产品不是做出来的,是检查出来的。。。
作者: mengzhaizhuren    时间: 2007-12-18 17:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: visa_li    时间: 2007-12-18 17:24
标题: 我测试呢!
我在做黑盒测试,懂开发写automation script 呢!
作者: visa_li    时间: 2007-12-18 17:25
我做黑盒测试,写automation script 呢!但是还是觉得没有什么意思,我觉得测试是很重要,但是前途不会很好,主要是接触面太窄了。
作者: 放量上攻    时间: 2007-12-19 00:29
微软的面试,店大欺客,没有什么好说的。
作者: knighter    时间: 2007-12-19 11:29
原帖由 visa_li 于 2007-12-18 17:25 发表
我做黑盒测试,写automation script 呢!但是还是觉得没有什么意思,我觉得测试是很重要,但是前途不会很好,主要是接触面太窄了。

也不是,相信:事在人为
作者: knighter    时间: 2007-12-19 14:27
原帖由 放量上攻 于 2007-12-19 00:29 发表
微软的面试,店大欺客,没有什么好说的。

Micosoft有店大的资本




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2