来淘宝测试部三年了,也就是意味着我进入测试行业也快到六年的时间了。或多或少也有自己的一些感悟,而且不同阶段的感悟会一样。自己在淘宝的每一年的纪念日的时候都会写篇个人总结来慰问下自己。
关于这次在淘三年的内容,我自己也是思索了好久,不知道要写什么,测试感悟的、测试技术的、测试方法的各个方面都想写,又都不想写。
都想写的理由就是本身测试行业就是个比较工程和系统性的行业,自然有自己的一些领域知识,说太少了,怕有些人真的以为测试就是点点鼠标而已。
都不想写的理由就是怕说太多了,就复杂了,就更让人摸不着头脑了;而且很多观点和事情不是说说就能明白的,只有自己亲身经历了才有深刻的体会。也所谓如人饮水,冷暖自知。
最后还是决定好好回顾下这几年的测试想法,因为这几年测试行业发生了很大的变化,不仅仅是敏捷测试、新测试技术、开发自测等等,都会影响我自己个人在测试行业的发展和能力的提升。真的怕自己走过弯路,所以需要不停的反省自己,这个能力是不是必须的、这个技术是不是应该需要了解的等等。
介于北京的崔启亮的建议,还是确定了自己的部分写作思路,也大致分成几个部分吧。
遇到的困难以及解决办法
第一个三年:
在06年毕业后的测试三年中,遇到了一些基础困难,幸好自己在观察和学习的同时,很快就能解决这些问题。由于之前写过一个blog介绍了部分问题,大家可以参考下:http://blog.sina.com.cn/s/blog_6cf812be0100ngbw.html
但是这边我还想发表下自己的观点,是针对于黑盒测试方法来说的。 记得几天前讨论是否需要QA的时候,段念 写个一篇blog来说明一个正常的工程师 都能在一个下午学会和理解大部分的黑盒测试方法。对此观点,我是不敢苟同的,这就讨论到这些黑盒测试方法的深度的问题了。
(1)学会和理解测试方法的使用步骤是很简单的,但是真正的在项目需求中应用起来可不是一朝一夕的。这就好比给你一张扑克一样,高手就能拿它杀人,一般的人能做到什么程度呢。这个也很像有些人能发现你不能发现的bug一样。至于原因有很多,具体看在淘两年的blog。
(2)谈谈我自己的感想吧,我自己在工作前两年也是认为这个黑盒测试方法一下午就可以学会的,找几个例子试着使用下,感觉自己掌握到这些黑盒测试方法,但是后来我看过很多这些测试方法的背景以及应用的注意点后。我发现自己真的是了解了一些皮毛,没有深入的了解。对于个项目需求,如何快速且完整的应用这些黑盒测试方法设计出不多不少的测试用例,这个需要的经验的积累,也就是你测试价值的核心体现。
(3)去年在成都MPD时,很多学员说自己都说自己是工作2-3年的人,已经遇到瓶颈了,感觉测试很单调和无味。我给的建议其实很简单,那就是真正的理解和掌握所有的黑盒测试方法。怎么来验证呢,我自己就是这样:给你一个白板,你能把所有测试方法的5W2H(What、Why、When、Where、Who、How、How Much)都能非常清晰明了的演讲出来,记住是不需要参考ppt或其他资料的情况下。
就像火影里面的鸣人一样,他只会螺旋丸这个核心的攻击忍术,但是在扩展其他忍术之前,他会把这个忍术的深度发挥到机制,从而研究出威力更强的超大螺旋丸、超大玉螺旋丸、风遁螺旋丸等等。
第二个三年:
在淘宝的这几年也越到了很多的困惑,而且随着年龄的成长,考虑的问题就会越来越犹豫,需要权衡利益的去提升自己和学习。主要考虑的就是测试的深度和广度问题。自己毕竟在测试行业待了那么长时间了,周围其他测试同仁的发展、国外测试行业的发展、自身利益和环境的影响等等,这些都会影响自己对某些测试问题存在个人极端的想法。
个人认为了解一个人测试的水平,需要考虑其测试行业中的深度和广度的知识。
测试的广度:主要就是测试相关类型的了解。具体包括如下:需求分析、测试流程、测试管理、开发流程、开发技术、测试模型、基础测试方法和测试技术、功能测试、性能测试、自动化测试(页面自动化、API)、安全测试、可靠性测试、易用性测试、稳定性测试,探索式测试(ET)、基于风险的测试(RBT)、兼容性测试等等。
测试的深度:也就是对广度说到的某一项你了解到的深度。当然这个深度,每个人都有自己的定位和看法,关键还是看自己是如何来对待的,这边我说下自己对自动化测试的深度的看法吧。
基础:了解简单的测试脚本/代码的编写,了解不完整的测试框架架构。
进阶一:快速编写测试脚本/代码,解决部分代码编写的问题,了解完整的测试框架架构。
进阶二:理解和了解自动化测试设计,自动化测试在项目中的融入和实施策略问题,了解其他类似的测试工具,并能做出正确的判断。
进阶三:快速编写合理的测试脚本/代码(体现在测试设计和测试数据设计上),指导他人编写可维护性的测试脚本,深入了解测试框架的实现细节和开发技术。
高级:整体上来解决自动化测试效率和价值的问题,找到测试框架的问题或困难,并能解决它,或提出有效的建议,深入了解其他类似测试框架或工具,并了解其功能技术细节。提升测试框架的应用性和实效性和效率。
就我个人而言,我一直也在扩大自己的测试广度,也在提升自己的测试深度。在淘宝的这几年,淘宝测试部的发展非常的快速,自己也从中学到了很多,我也庆幸自己在来淘宝之前就把某些的深度问题给解决了,从而可以提高自己其他的广度。
一开始来淘宝,就选择 自动化测试这个广度,并在页面自动化测试和API接口测试方向提升自己的深度(这是个长期的过程)。另外也选择了兼容性测试这个 广度,不过这个进展笔记缓慢。接着根据自己的方向和优势,选择了探索式测试这个广度,从而在这个领域学习到了更多的知识,从而影响其他广度的选择。接着不停的提升自己在需求分析、测试流程、测试模型、性能测试方面的深度,也会接触安全测试这个广度等。最近选择了 前端测试和无线测试领域,这也是扩大自己的广度,不断的学习和了解该领域的测试特点和工具。
给大家的建议是根据公司测试技术的发展策略,有针对性的选择某几个测试广度,然后在其上提升自己的深度。你的测试能力就是 你的广度 * 你的深度。