我2006年计算机专业硕士毕业至今,从事软件测试及质量保障领域已经十几个年头了,从白盒自动化测试到黑盒自动化测试,从功能测试到性能测试、安全测试,从测试流程、测试框架到后来的测试管理、质量体系建设,深爱着这个行业,经常为能和小伙伴们攻克了一个技术小山头而激动兴奋, 也为了加班加点使命必达的完成了一个艰巨任务而感到欣慰。
我负责测试技术管理、团队管理也已经有8年多了,期间面试过的人少说也有一两千了。从面试中常见的两个场景来聊一聊测试的基本功:
场景: 面试官:你最擅长的测试领域在哪里啊?有什么职业发展计划吗? 候选人:我比较多的经验在功能测试,以后希望能从事自动化测试方向。 对于这么常见的问题和答案,大家发现了什么问题没有? 我一般遇到这种答案的时候, 会启示候选人这个答案有什么问题吗?当然,有些同学在这个时候,会有点懵。 我继而会启发,那目前的经验和后续希望的方向,有哪些区别?同学们会回答功能测试主要是日常工作,自动化测试更能体现技术水平,也是很多公司喜欢的定位。 其实,候选人的这个答案,最大的问题在从不同的维度来划分了测试种类。
和功能测试同一维度,根据测试的软件内容和特性,可以分为功能测试、性能测试、安全测试、易用性测试、部署测试等等; 而自动化测试却是从不同的维度,根据测试主题分为了手工测试和自动化测试,也就是说功能测试本身就会有手工的手段和自动化的手段。我们可以通过手工测试来发现很多问题,也可以通过自动化测试提升测试效率,来批量定期执行大量的稳定的测试场景,来进行快速回归。 手工测试仍然是发现Bug最有效的手段,尤其是针对新功能点的测试,我们往往是等待手工测试通过后,版本稳定了,再进行自动化脚本的编写和后期的维护。 但是很多同学在谈到功能测试的时候,却习惯的理解成就是手工的。而本身自动化测试也是分层的,如下图,希望能更好的帮助大家理解自动化测试的成本投入和收益分析。
朋友们会问应该如何回答文章开头的那个问题呢?其实不同的候选人根据背景不同,应该有不同的答案,比如有些同学计划后期从事性能测试,那么方向肯定可以往性能测试上说;有些同学计划后期从事安全测试,那么肯定可以往安全测试方面上提;也有部分同学计划做技术管理甚至团队管理,那么答案肯定需要往管理方向上,并且需要体现已经在管理方向上的储备
针对这个手工功能测试背景的答复,笔者认为比较满意的答复可以这样:我已经有几年的手工功能测试经验…,但我注意到产品的快速迭代对测试人员自动化能力的要求,我们需要将更多的测试用例自动化,通过无人值守的自动化测试,来提升测试效率,所以我希望能提升自己的自动化测试的能力,将宝贵的测试资源更多的投入到新功能及bug验证上去,从而和开发、产品一起更有效的提升产品质量。
这样一个答案,既说出了自己的丰富的测试经验,也指出了自动化测试初衷和价值,体现出候选人的好学,对自动化测试有理解有准备,另外表达出了自己和产品、开发凝聚,注重Team Work的意愿,说不定你对面的面试官就是开发leader呢?
|