最近读了James大叔的一篇总结Tester类型的文章,获益良多。原文叫做Seven Kinds of Testers(链接:http://www.satisfice.com/blog/archives/893)。
可爱的James大叔还对每种类型的Tester给出了忠告。其实后最三种并非专职的Tester,而是做着和Tester相关工作的其他工种。
- Administrative Tester-管理型Tester
该类型的Tester主要是做task或者做卡(敏捷项目中的Story卡),目标就是把手上的工作完成。
低水平的管理型Tester主要就是跑case这类的手工测试。
高水平的管理型Tester是协调者,例如测试经理,测试lead,主要工作是获取资源,更新Dashboard等。
来自James大叔的忠告:不要只关注测试流程而忽略了测试本身。
本人拙见:这种类型的Tester在外包公司很常见,外包公司的测试会有很多沟通交流的工作,真正用在测试上的时间并不多,且测试的东西大多很简单。。。
- Technical Tester - 技术型Tester
该类型的Tester擅长构建和使用工具,喜欢从代码角度考虑问题。因为他们说着程序员的语言,所以很倡导可测试性。在Google和Microsoft,这类人叫做SDET。
来自James大叔的忠告:太着迷于工具,从而会避免测试那些不容易使用工具测试的东西,更倾向学习工具而不是测试。
本人拙见:可测试性对于TDD来说很重要。合适的工具也很有用,自动化测试不都是使用工具么。。。很多公司还会开发自己的测试工具。虽然James大叔有点极端,但是,工具只是辅助手段,工具服务于测试,核心还是测试本身。就像很多人会觉得自动化测试比手工测试高级,就测试本身来说,自动化可以代替重复的工作,提高效率,构建安全网。手工测试能充分发挥测试人员的主观能动性,能在自动化节省出的那些时间里,更加深入,全面的探索。好的手工测试人员是很有价值的。
- Analytical Tester -分析型Tester
该类型的Tester喜欢使用模型,数学成绩很好。很会运用各种图,矩阵,表等,喜欢做组合测试。
来自James大叔的忠告:倾向于规划瘫痪(我:过于追求计划的意思么?)常常梦想最优而不是最合适的测试集(我:太追求完美么?)
本人拙见:测试是需要经过思考和设计的,不是有些人想的那样,测试只是上来就点点点。我们有很多帮助测试设计的方法和模型(如边界值,判定表,组合测试等)。Tester都知道,测试用例是无法穷举的,那些方法和模型能帮助我们在无尽的测试用例中挑选出覆盖率最优的测试集。
- Social Tester - 社交型Tester
社交型Tester需要你(来自James大叔的呐喊)!社交型Tester擅长发现所有能帮助他们的人,并且更愿意在一个团队而不是单独工作。他们明白并不是所有人都需要想一个整体解决方案,其他人通常已经完成了需要完成的工作。他们也知道测试不一定需要编程,但编程肯定有帮助。一个好的社交型测试会培养社交资本,为他人提供可信赖的服务。
来自James大叔的忠告:他们可以偷懒,看上去老是游手好闲。并且牺牲工作时间过度社交。
本人拙见:话说我们公司貌似很欢迎这类型的Tester啊~Tester确实需要很好的沟通交流能力。需求不明确,要和BA和客户沟通;发现Bug了,要和Dev沟通;自己不会写代码,要发动Dev们来写。。。作为一个Tester,需要充分利用团队可利用的资源,来协助自己更好的完成测试工作,而不是一个人闷头在那默默的把所有事都做了。。。
- Empathic Tester - 投入型Tester
很有同理心,很能体会用户的需要。他们和用户专家不太一样。因为做一个模拟用户的测试和做测试的用户是不一样的。没有技术背景的测试通常采用这种方式。James大叔表示他之前一直没有承认也没有尊重过这种方式。
来自James大叔的忠告:投入型Tester通常很难描述清楚他们做了什么以及怎么做的。
本人拙见:听起来很像易用性和可用性测试这类非功能测试范畴,确实不好描述和度量。。。
- User Expert -用户专家
也称为领域专家或者主题专家。他们不认为自己是测试,但是却作为潜在的帮助测试的用户。
来自James大叔的忠告:没有被定义为Tester,没有趋向学习和开发测试技能。
本人拙见:人家本来就不是Tester,但Tester也需要这种Sense。
- Developer - 开发
开发也经常测试。他们的理想位置是单元测试,同时也设计可测试的产品。技术型测试可以同时作为开发,当开发进入测试,也通常作为技术型测试。
来自James大叔的忠告:没有被定义为Tester,没有趋向学习和开发测试技能。
本人拙见:懂测试的开发绝对比不懂测试的开发受欢迎~如James大叔所说,产品代码都是开发写的,如果开发在写代码的时候能考虑产品的可测性,将大大减轻测试工作的难度。
我也一直在思考Tester的发展方向的问题,最常见的就是Tester-》Senior Tester-》Test lead-》Test Manager这条路。James大叔从另一个角度给出了另一种选择。我不认为,一辈子写代码(不做PM)或者一辈子做一个Tester(不做Manager)是一件羞耻的事情,试想一个Tester集成了以上七种技能,或者在任何一方面做的非常精深,还怕找不到自身价值么。