测试策略
在软件公司里,人们喜欢强调测试,强调质量。但是如果你在一个传统的软件项目上呆过一段时间的话,就会知道,人们只是喜欢强调而已。人们其实并不知道如何去关心软件质量。
当你问一个项目经理,为了赶进度,你愿意舍弃哪些东西?几乎毫无意外的,项目经理会选择舍弃自动化测试。他们会说,我们需要在deadline之前让领导看到结果!为了赶进度而造出来的软件,脆弱,不堪一击,在生产环境中会为公司带来损失,但是这些都是“系统中另一部分”的事情了。
有些公司会为开发人员配置对应的测试人员,开发部门和测试部门的人数几乎能达到1:1。一般而言,开发人员在开发新的版本,测试人员在测试上一个版本。开发人员和测试人员的输入都是软件设计
部门提供的文档。
我的第一家公司里,测试人员和开发人员的比例基本上是1:1。开发在交付一个版本到开始下一个版本的开发之间,会有一个所谓bug fixing
的阶段,大约4周到6周,专门等待测试提单,然后从一个bug跟踪系统中获取bug
,然后修复。
开发在修复完成之后,修改bug状态,测试人员会得到通知,然后再测一次,这个过程可能会往复多次。开发没有测试所拥有的完整环境(我们的软件需要安装到Redhat Linux上,而开发机器都是Windows,并且不允许安装虚拟机),所以每次修复之后保证本地可以运行。
整个过程都是手工的,测试人员好像是有一些简单的UI测试脚本,不过由于我们的界面经常变化,她们需要重新录制脚本,过程非常麻烦。
我的第二家公司则是另外一个极端,我们10个开发人员,对应的只有1名QA工程师,每到我们需要给客户showcase的时候,所有人都手忙脚乱的帮助QA做测试,相信你可以想象那种人心惶惶的场景。
在日常的工作中,如果肯花时间来为自己的代码编写自动化测试(单元测试,集成测试,UI测试),无疑人们会对自己的软件有更大的信心。而且事实上软件质量是需要整个团队来保证的,不要把希望寄托在只做黑盒测试的QA身上。