微软、腾讯测试经理教你如何应聘软件测试工程师
系统测试工程师 (I)
有的方能放矢 — 明确测试任务
[背景]
这几天,部门启动了两个手机端应用程序的研发项目。作为测试经理,我开始盘算起制订测试方案以及规划测试资源。根据手机端产品的一些特性,我计划招聘两名系统测试工程师,负责产品的测试工作。
招聘消息一经发出,第一天我就接收到了100多份简历,申请应聘这个职位。经过简单而高效地简历筛选,有十多位名应聘者进入了我们面试的候选名单。再经过一轮简单的电话面试,我将目光锁定在了十位应聘者身上。接下来,我逐一的安排和他们的单独面试,根据他们的面试表现,我将决定最后的招聘人选。
Sophia,毕业于清华大学,精密仪器专业硕士,现就职于国内一家IT创业公司,有4年的软件开发经验。她是这十位候选者中,简历背景最好的一位,怀着对人才渴求的心理,我立即拿起电话,和她约定在第二天进行面试。
[面试]
第二天上午10点,Sophia如约来到公司,我开始了对她的面试。首先,我让她做了一下自我介绍以及询问了她的一些项目开发经验。接下来,我问她对系统测试工程师的认识,她的回答比较简单和片面,看来是来面试之前,没有做过功课。我想,好吧,接下来看看是否有培养的潜质,于是,面试进入了关键环节。
我问到:“Sophia,今天有带手机过来么?”
Sophia迟疑地看我一眼,不解地回答到:“带了?”
我看出了她的疑虑,微笑一下,卖个关子,说道:“哦,是这样的,下面这道面试题,需要用你的手机做道具。”
Sophia伸手去包里掏出她的手机,放到我面前,一脸狐疑地看着我。
我继续问:“你的手机有没有计算器啊?能给我看看么?”
Sophia眼中的疑惑更重了,回答到:“有的,你看看吧。”
我觉得关子也卖的差不多了,指着手机上的计算器程序,问到:“Sophia,假设你所在的项目组开发负责研发一款手机计算器程序,你是这款产品的测试负责人,你准备怎么制订测试计划?”
Sophia如释重负,眼中所有的迟疑都烟消云散,重现自信满满的神情。(这种变化,她不是第一个,在我之前面试的很多应聘者,在听到面试题后,都和Sophia有一样的神情,觉得相比数据结构、设计模式等面试问题,这样的测试问题非常的简单,回答起来也应该十分轻松。不过,面试结束后,这些应聘者往往会非常沮丧,当然,这是后话,我们把话题拉回来)。
我继续说到:“这就是今天的面试问题,你如果有任何不清楚的地方,可以随时问我。”
Sophia听我说完后,考虑了些许时间,问到:“是不是要写测试用例?”
我心中顿感一凉,难道这名我寄予厚望的潜力股,就这么容易掉进陷阱?我心中非常不舍,于是,我提示到:“Sophia,在答题前,你想一下,作为一个项目的测试负责人,一开始就去设计具体的测试用例,是否太片面了?”
听完我的提示,Sophia思索了一下,回答道:“我所在的企业就是这么做的。”
眼看提示无效,我换一种方式引导,我又问:“那你觉得该怎么设计测试用例呢?”
Sophia热情洋溢地说道:“我要测加减乘除运算,开方运算,…”
我不忍再继续听下去,打断她,问道:“你设想一下,如果用例设计完成了,你准备怎么样执行这些用例呢?”
Sophia指了指手机,说道:“就在手机上去执行啊。”
我问到:“什么样的手机?”
Sophia说:“就这样的手机啊。”
我说:“是不是拿这部手机就可以了,换一款行不行?”
说道这里,Sophia停顿了一下,若有所思,忽然,她问道:“对啊,你还没有说我们这个计算器程序应该运行在什么手机上。”
我微笑一下,说到:“现在你是测试负责人啊,你是否应该在设计用例之前,弄清楚这件事啊?”
听到我的话,Sophia不住的点头,刚才的自信闲适开始消失,取而代之的,是她眼神中的紧张。
我安慰道:“放松,你循着这个思路,重新来制订面试计划。”我以为她会因此开窍,心中窃喜。
“我的计划是,在Nokia,摩托罗拉,iPhone上执行这些测试用例……”,我还没有在喜悦中沉浸几分钟,Sophia又开始滔滔不绝地发言,她的发言,彻底打破了我的美梦。我在心中摇了摇头,面带着僵硬的微笑,听她讲完。接下来,我例行公事的问了几个问题,然后很官方地结束了面试。回到座位上,我陷入了失望的苦恼中……
[点评] 这是一次经典的面试。面试的题目是各大IT企业面试招聘软件测试工程师必考题,我们称这类面试题叫项目测试设计。题目往往是要求面试对象测试一样大众化的产品,该产品不局限于软件产品。比如,问应聘者如何测试一直笔,一部电梯,一台电视机,一台银行ATM机等。题目看起来非常的简单和直观,但它能从多个维度全面的考察应聘者作为测试工程师的潜力。正如上面大家看到的真实面试案例,面试题目有诸多的陷阱,如果应聘者没有系统了解科学的项目测试理论,就很容易身陷囹圄,无法自拔。下面,我就从面试者的角度出发,一一为大家揭秘这些陷阱之所在,并且配以相应的应对策略。分析、解决这类问题,流程上,可以分为三个步骤:
1) 明确测试任务
2) 设计测试计划
3) 优化测试用例
我们会分三节,结合三个真实、生动的例子来详细说明如何做好每个环节,从而做好一个项目测试设计。本节中,结合上面的案例,展开分析明确测试任务的重要性,以及如何才能系统性的明确测试任务。Sophia在做手机计算器程序的测试设计时,在没有明确测试任务的情况下,就盲目的展开测试用例的设计,这样,会引发诸多的问题。首先,在面试题目中,并没有明确产品可以运行在什么手机平台上,对平台的支持需求不同,测试的设计的差异性是很大的,所以,在回答该问题之前,先应该向面试官发问,明确产品支持的手机平台,之后,才能有的放矢的开展具体的设计。其次,应该明确产品的研发周期等信息,只有了解了项目进度安排等信息,才能制订有效的测试策略,在测试的深度和项目开发时间要求上取得较好的平衡。比如,有的项目是时间驱动的(Date-Driven),这类项目的特点是预先制订发布时间,要求到了那天,产品就一定要发布,对这类项目,我们在设计测试计划时,就应该更多的考虑解决和项目发布相关的质量问题;另外有些项目,可能是质量驱动的(Quality-Driven),这类项目的特点是对发布时间没有强行的规定,但要求产品的质量必须达到一定的指标,并且需要在发布以后,实时监控产品质量,那么,在测试中,我们不仅要做好项目当下版本的测试工作,还需要考虑构建长期、高效地测试系统和平台,保障产品质量能够实时度量。另外,明确产品的功能设计,可用的测试资源等信息,对于接下来做产品测试都是至关重要的。下面的流程图,是对这一流程的直观描述,希望大家通过这个案例细细体味明确测试任务的重要性。
图一: 项目测试设计流程图——明确测试任务
注:该书已经与“清华大学出版社”签署出版合同,定于2011年初面市,敬请关注!
[ 本帖最后由 trunko 于 2010-6-13 18:19 编辑 ] |