深聊测开领域之:虫剂悖论

简介: 深聊测开领域之:虫剂悖论

1 初识虫剂悖论


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

虫剂悖论描述的是重复使用某种农药杀灭害虫,时间越久,杀虫的效果就越差。

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


为了保证农药的杀虫效果,我们必须不断的研究新农药。


这个理论,运用到软件测试中:

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


也就是说,测试的有效性会随着时间不断衰减。


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


那么,我们如何保持和长期保持测试的有效性呢?


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


2 应对虫剂悖论


2.1 更新测试策略

测试策略是高度依赖测试上下文的。

当测试上下文发生变化时,测试策略应该随之动态调整。


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


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


详细的测试策略,可以参考《[深聊测开领域之:测试策略模型有哪些?] (https://blog.csdn.net/wuyoudeyuer/article/details/112262327)》 这篇博文。


2.2 更新测试用例

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


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


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


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


目录
相关文章
|
4月前
|
JavaScript 前端开发 开发者
震撼揭秘!JS模块化进化史:从混沌到秩序,一场代码世界的华丽蜕变,你怎能错过这场编程盛宴?
【8月更文挑战第23天】在 Web 前端开发领域,JavaScript 模块化已成为处理日益复杂的 Web 应用程序的关键技术。通过将代码分解成独立且可重用的模块,开发者能够更有效地组织和管理代码,避免命名冲突和依赖混乱。从最早的全局函数模式到 IIFE,再到 CommonJS 和 AMD,最终进化到了 ES6 的原生模块支持以及 UMD 的跨环境兼容性。本文通过具体示例介绍了这些模块化规范的发展历程及其在实际开发中的应用。
56 0
|
7月前
|
程序员 开发者
打工人如何避免“内卷”?从《纳瓦尔宝典》中学到的避免内卷的方法
作者阅读《纳瓦尔宝典》后思考人为什么会内卷?以及从书中学到的避免内卷的方法分享给大家。
|
编译器 C++
重生之我要学C++第五天(上)
重生之我要学C++第五天(上)
78 0
|
程序员 C++
重生之我要学C++第五天(下)
重生之我要学C++第五天(下)
106 0
|
IDE 数据可视化 程序员
3款强大到离谱的电脑软件,个个提效神器,从此远离加班
3款强大到离谱的电脑软件,个个提效神器,从此远离加班
100 0
|
前端开发 数据可视化 测试技术
绩效从C到S,分享渣渣程序员逆袭秘诀!
绩效面谈结束,从会议室出来,有一种不真实的感觉——这个季度我竟然拿了S?! 要知道,上个季度和上上个季度,我的绩效是C。 C在我司意味着什么你们知道吗? 拿3次C就意味着严重不胜任,公司就会让我收拾收拾包袱滚蛋。
绩效从C到S,分享渣渣程序员逆袭秘诀!
|
Linux Shell 测试技术
希特勒生死之谜 loadrunner
前言 希特勒是我在军事统治中最佩服的一位英雄。 突然看见软件测试工程师在玩loadrunner工具所以很感兴趣,自己在linux上也搭建一个玩玩把. 系统信息:CentOS release 7.
1254 0
|
机器学习/深度学习
读《学习之道》— 放松点,有时候太勤奋也是一种病
(1)专注思维和发散思维 自21世纪以来,神经学家就已经对大脑中两种思维模式网络模式间的相互切换取得了研究上的长足进步,即注意力高度集中的状态和更加放松的休息状态;这两种思考状态基于不同的神经网络模型,我们将其分别称为专注模式和发散模式。
1307 0