在测试界,有两种非常极端的情况:一种是过早充分地测试,包括过早地介入测试,文档,测试计划,用例以及脚本等准备的非常充分;一种是随机测试,无文档无计划,完全靠测试人员的个人能力。这两种情况都会出现测试的健忘症。
首先,第一种情况会出现什么问题呢?刚刚做好的测试计划或者测试用例又要重新制定和编写,原因是介入太早需求还没有完全确定下来,反复的工作浪费很多的人力和时间。而且在如今互联网需求多变的情况下,如此充分的工作说不好在2个月后的重构中又要重新开始,这时候,健忘症体现在:
1、之前花了很多时间设计的测试用例又要被遗弃或者做大量修改,用例的生命周期很短,测试用例并不是解决健忘症的最好方法,当然,对于一个新涉入此功能的测试人员可以通过用例了解到大概的测试点,快速熟悉。
2、看过一本书上介绍的杀虫剂悖论:当你向一块农田喷药时,将杀死很多的虫子,但是存活下来的抵抗性将增强。用在软件测试上也不例外,之前所有的用例执行过后能发现的缺陷已经全部暴露,之后的回归测试只是为了确保原来的功能正常,而原本未被暴露的缺陷已经具有抵抗力了。大家已经忘记当时使用的什么测试技巧,而现在又该使用什么别的技巧来找出这些隐藏很深的bug呢?
其次,对于第二种情况,经常出现的事情是,测试的内容不够明确,对于已经测试的部分和未测试的部分都不能明确标记,甚者不知道发现的bug如何复现,为了再次重现此bug都需要时间,这就是最大的健忘症,毫无准备的测试工作,不能保证测试的质量。
如何避免呢?首先要折中一下这两种情况,对于项目生命周期很长的,可以较为充分地开展测试工作,准备充分的文档以及用例,除此之外,需要文档化的就是测试策略和测试规范。对于生命周期不长需求多变的项目,如web项目,除了有计划的开展工作外,还需要把测试策略和技巧记录下来,并且标记哪种最有效,发现的bug最多,哪种效果稍差,这将有利于日后策略的调整。不同的测试过程采用不同的测试策略,以发现更多的缺陷,同时可以引入交叉测试和探索性测试,来找出隐藏很深的缺陷。而且这些策略可以被日后类似项目复用,解决了测试的健忘症。