测试开发中的虫剂悖论

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

免责声明:文章转载自《测试开发中的虫剂悖论》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AlarmManagerHashMap实现缓存下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

使用docker安装宝塔面板

列出所有容器ID dockers aq停止所有容器dockers Stop$(dockers ps aq)删除所有容器docker$(docker aq)移除所有图像dockeri$(docgerimages-q)dockerimagesprune--force--all或dockerimageprune f-a:删除所有未使用的图像dockerimage...

nacos产生大量日志处理

/我们发现nacos产生大量日志,浪费磁盘空间资源将配置文件nacos/conf/application.properties的生产日志功能关闭--进入配置文件vim./nacos/conf/application.properties--将true改为falseserver.tomcat.accesslog.enabled=true--重启nacos./n...

CAD中批量打印

同事在网上找各种软件来实现CAD图的批量打印,总是问题多多。"进行查看4.先在CAD测试一次,结果帮助文档写好lisp代码,然后用批量处理工具来实现批量打印即可。...

使用AutoHotKey提升工作效率

打开网站并按TAB键,直到到达输入字段并计算点击次数。使用以下代码将“名字”、“中间名”、“姓氏”和其他两个ID放入Web表单。...

Android 帧动画使用

本文介绍使用AnimationDrawable类来实现动画效果。oneshot="false",表示让动画一直循环播放下去。.backgroundasAnimationDrawableani.start()当动画正在播放时,调用start()方法是不会影响当前播放的。˃android:oneshot="true",动画播放1次后就会自行停止并保持在最后一帧。...

.NET5 ABP框架(一)

授权-ABP可以以声明的方式检查权限。如果发生异常,ABP将自动记录并向客户机返回适当的结果。默认情况下,ABP使用Log4Net写入日志。当然,我们也可以通过修改配置来使用其他日志框架。除了本示例中显示的ABP的优点之外,ABP还提供了一个健壮的基础架构和应用程序模型。...