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

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

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,及时校准用例,打上补丁。


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


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


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


目录
相关文章
|
5月前
|
关系型数据库 MySQL 数据安全/隐私保护
老程序员分享:K8SSecrete详解
老程序员分享:K8SSecrete详解
43 0
|
6月前
|
传感器 算法 机器人
斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
【2月更文挑战第26天】斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
79 5
斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
|
缓存 NoSQL 前端开发
|
自然语言处理 JavaScript 前端开发
看了涡流大佬的面试文章的总结(框架通识, 看代码说结果)
看了涡流大佬的面试文章的总结(框架通识, 看代码说结果)
|
机器学习/深度学习 数据可视化 算法
太强了!这个建模神器可以玩一辈子
玩过建模的朋友都知道,在建立模型之前有很长的一段特征工程工作要做,而在特征工程的过程中,探索性数据分析又是必不可少的一部分,因为如果我们要对各个特征进行细致的分析,那么必然会进行一些可视化以辅助我们来做选择和判断。
太强了!这个建模神器可以玩一辈子
|
安全 程序员
人月神话札记:未雨绸缪
人月神话札记:未雨绸缪
145 0
|
程序员 测试技术
人月神话札记:效率
人月神话札记:效率
120 0
|
开发者
人件札记:产品质量
人件札记:产品质量
108 0
|
敏捷开发 Java BI
人月神话札记:系统设计
人月神话札记:系统设计
102 0
|
算法
国奖过来人分享电赛经验(一)
目录 前言 备战期 比赛期 睡眠 选题与审题 第一天 硬件 软件 第二天 第三天 第四天 封闭测试 后记 前言 不是只有获得国奖才有资格分享经验,但是加上这种标签可能会吸引更多人来交流。
1978 0