杀菌剂

测试开发中的虫剂悖论

  提到 虫剂悖论(pesticide paradox),我相信很多人都没听说的,除非是生物学专业的同学或者老师。

  之所以这样,是因为出现抗药性,也就是说害虫发生了进化,对这种杀虫药免疫了。

  bug类似于害虫,用例类似于农药,重复使用固定的一批测试用例,能发现的bug就慢慢的变少,遗漏的bug就会慢慢的多。

  之所以存在此现状,是因为软件在不断进化,新的bug在不断产生。同样一批用例,只能发现会引起已覆盖功能衰退的regression bug。很多新bug对这批用例是有免疫力的。

  就像杀虫要一直更新农药一样,发现bug需要一直更新测试策略和测试用例。

  例如,在采用基于风险的测试策略时,哪个模块,哪个环节风险大,我们就应该将测试资源朝这个模块,这个环节倾斜。

  软件测试的类型,方法和工具是丰富多彩的。据不完全统计,存在有100种以上的测试类型。在制定测试策略时,可优先考虑多样化,组合型的测试策略,例如自动化测试+探索测试,确定性测试+随机Fuzzing,以此来实现优势互补和效益最大化。

  对于软件来说,三分开发,七分维护。对于测试用例,其实也类似。测试用例是需要长期维护的。我们应该密切跟踪遗漏出去的bug,及时校准用例,打上补丁。

  同时,我们应该密切跟踪被测软件的变化,评估变化对用户场景的影响。对于产生新用户场景的变化,要及时新增测试用例进行覆盖。

  “测试免疫是一种客观存在的规律,不以人的意志为转移。对于测试免疫”,咱们不可以无动于衷,而要有所作为。

  只有经常主动去更新测试策略和用例,堵住漏洞,提升覆盖,我们才可以弥补用例有效性衰减的损失,让测试整体有效性保持在一定的水平。

  如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司返回搜狐,查看更加多