今天在51testing看到一篇转载的文章,很有共鸣。为此结合我的经历和体会,对文中的一些观点点评一把,给大家分享:
“最近受邀请要给微软的一个团队讲解我个人的一些测试小秘密和常用的测试技术。其实,测试没有什么太多的秘密可言。如果说如何能发现更多的bug的话,那么我认为最最重要的是passion和experience. 但是,由于他们期望听到的是测试的techniques,我就列了一个我认为最重要的几个方面。现在发出来和大家共享一下吧。
——Jack点评:我也认为激情和经验最重要。同样的测试思想和方法好比不同的武器,给不同经验和心态的工程师绝对效果是不一样的。测试管理者们不要指望用工厂生产管理的方式用机器代替人,所有工作都通过工具把对人的依赖弱化掉。测试工程师怎么说也还是知识工作者,不是富士康的操作工。从未听说过设计工作被自动化,实现工作被自动化倒是可行的。类比现在有工具可以自动生成代码,自动生成自动化测试脚本,测试用例,但是这些工具的输入还是由设计者经过人脑分析设计而产生的。
·Passion, Experience
我觉得experience和passion最重要。有一个周六的半夜我突然有种想法应该给我测试的feature去做code review,就去了office一直工作到5:00am, 结果就发现了两个security bug. 之所以能有这个idea就是因为经验的积累造成,而能在周末凌晨工作几个小时则是因为passion. 我现在完全地享受能发现各种各样bug的生活了,已经对开发没有什么兴趣了。破坏软件真的是很有趣。
·Understand features deeply
o Design
o Architecture
o Implementation
o Customer requirements
理解这些非常的重要。你理解的越深,你就可能发现更多,更好的bug。
——Jack点评:我所做过的每一个项目都会深入学习和理解该项目的design、Architecture、Customer requirement,这是我这么多年来做测试的习惯。所以说完全黑盒的测试是不存在的,做好系统测试可以不看代码(时间成本很高,老板不高兴),但一定要和开发人员一样了解design、Architecture、Customer requirement。并且只有你能在这3类文档中发现了其中的缺陷,才能说明你真正的看懂了,并可基于这些资料开始测试用例的系统分析和设计。我甚至认为做一个合格的测试分析和设计人员是必须具备快速学习和理解项目design、Architecture、Customer requirement的能力的。
·Tools
o App verifier
o Driver verifier
o Fuzzing tools
o Etc.