聊聊测试开发中的虫剂悖论

发表于:2021-1-27 09:14

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Carl_奕然    来源:CSDN

  1 初识虫剂悖论
  提到 虫剂悖论(pesticide paradox),我相信很多人都没听说的,除非是生物学专业的同学或者砖家。
  虫剂悖论描述的是重复使用某种农药杀灭害虫,时间越久,杀虫的效果就越差。
  之所以这样,是因为出现抗药性,也就是说害虫发生了进化,对这种杀虫药免疫了。
  为了保证农药的杀虫效果,我们必须不断的研究新农药。
  这个理论,运用到软件测试中:
  bug类似于害虫,用例类似于农药,重复使用固定的一批测试用例,能发现的bug就越来越少,遗漏的bug就会越来越多。
  也就是说,测试的有效性会随着时间不断衰减。
  之所以存在这种现象,是因为软件在不断进化,新的bug在不断产生。同样一批用例,只能发现会引起已覆盖功能衰退的regression bug。很多新bug对这批用例是有免疫力的。
  那么,我们如何保持和长期保持测试的有效性呢?
  就像杀虫需要不断更新农药一样,发现bug需要不断更新测试策略和测试用例。
  2 应对虫剂悖论
  2.1 更新测试策略
  测试策略是高度依赖测试上下文的。
  当测试上下文发生变化时,测试策略应该随之动态调整。
  例如,在采用基于风险的测试策略时,哪个模块,哪个环节风险大,我们就应该将测试资源朝这个模块,这个环节倾斜。
  软件测试的类型,方法和工具是丰富多彩的。据不完全统计,存在有100种以上的测试类型。在制定测试策略时,可以考虑多样化,组合型的测试策略,例如自动化测试+探索测试,确定性测试+随机Fuzzing,从而实现优势互补和效益最大化。
  2.2 更新测试用例
  对于软件来说,三分开发,七分维护。对于测试用例,其实也类似。测试用例是需要长期维护的。我们需要密切跟踪遗漏出去的bug,及时校准用例,打上补丁。
  同时,我们需要密切跟踪被测软件的变化,评估变化对用户场景的影响。对于产生新用户场景的变化,要及时新增测试用例进行覆盖。
  “测试免疫"是一种客观存在的规律,不以人的意志为转移。对于"测试免疫”,我们不能无动于衷,而要有所作为。
  只有经常主动去更新测试策略和用例,堵住漏洞,提升覆盖,我们才能弥补用例有效性衰减的损失,让测试整体有效性保持在一定的水平。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号