51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3385|回复: 1
打印 上一主题 下一主题

[转贴] 什么是测试免疫?

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:34
  • 签到天数: 1052 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2020-8-12 10:32:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    生物学中,有一个著名的虫剂悖论(pesticide paradox),描述的是重复使用某种农药杀灭害虫,灭虫的效果会越来越差的现象。之所以如此,是因为害虫会发生进化,渐渐产生对农药的免疫力。  为了保持农药的杀虫效果,人们必须不断开发和使用新的农药。

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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 03:22 , Processed in 0.065036 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表