4. 有计划测试和随机测试
在测试执行前,我们一般都进行测试的策划、计划,分析测试的重点和范围,精心设计测试用例,来做好测试执行前的准备,通过测试计划和测试用例进行的测试是有计划的测试,而不通过事先计划或不借助测试用例,完全凭感觉、猜测而进行自由、灵活的测试,被称作随机的测试或ad-hoc test。有计划的测试效率高、针对性强,可以很好地达到测试目标,但由于用户使用软件的情景很多、千变万化,测试用例很难覆盖各种情况,特别是一些边界和特殊的操作。根据经验和历史数据统计,对于大型系统软件测试用例的覆盖度一般在90%到95%之间。所以,必须借助一些自由的ad-hoc test,充分发挥测试人员最大的灵动性、创造性,进行各种猜测和试探,去发现一些相对隐藏比较深或偏僻的软件缺陷。ad-hoc test另外一个作用是帮助测试人员尽早地熟悉产品,改进测试用例。
5. 新功能测试和回归测试
即使在开发一个新软件(第一个版本),在进行系统测试还是功能测试时,总会发现一些严重的缺陷而需要修正,这时就要构造一个新的软件包(Full Build)或新的软件补丁包(Patch),然后进行测试。这时的测试不仅要验证被修复的软件缺陷是否真正被解决了,而且要保证以前所有运行正常的功能依旧保持正常,而没有受到这次修改的影响。对于检验原有正常功能没有出现回归的缺陷而进行的测试,称为回归测试。对于开发第二、三个版本或以后的版本,这种回归测试所占的比重越来越大。所以,一个完整的测试,可以看作新功能或新修改的测试,加上回归测试的组合。
在软件产品实现过程中,新功能的实现固然重要,可以增强产品的亮点和竞争力,增加市场份额,但是不能正常工作的已有功能所引起的客户抱怨可能更大,因为客户已经习惯地使用已有功能了,而对于新功能,客户还没怎么使用(没尝到甜头)或者客户可能不知道这个新功能,甚至我们可以在客户知道前去掉这个功能。所以,从这个意义上说,回归测试显得更为重要。