回归测试:优先级(Coverage 的适应度函数)

文章探讨了在回归测试中如何确定测试用例的优先级,强调了早期发现失败的重要性。通过考虑历史缺陷、覆盖率和可能的故障预测,使用贪心算法和适应度函数来优化测试顺序。目标包括最大化覆盖率、优先测试故障多发区域,并利用多目标优化方法处理复杂的决策因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回归测试:优先级

介绍
在确定优先级时,我们的目标是为测试用例找到一个好的顺序。理想情况下,我们希望尽早发生任何故障。这可以加快整体开发过程,例如:
有时,一旦发现失败,我们就会停止测试。
即使我们计划执行所有测试用例,我们越早发现失败,我们就可以越早开始尝试修复代码。
问题:我们事先不知道哪些测试用例会导致失败。
因此,我们无法在测试前知道“最佳”顺序。
相反,我们使用相关的指标和历史信息有缺陷:
我们优先考虑被认为更有可能导致失败的测试。
我们还致力于快速扩大覆盖范围。
希望:通过这样做,我们更有可能早点发现错误

使用覆盖
我们可能只看覆盖率。
我们的目标可能是:
尽快达到 100% 的覆盖率。
最大化给定预算的覆盖范围(例如测试用例的数量)。
无论何时停靠,“快速”实现覆盖以获得“良好”覆盖

贪心算法可能是次优的suboptimal
在这里插入图片描述
Coverage 的适应度函数Fitness function
考虑分支覆盖率(许多其他指标类似)。
我们如何为特定的测试顺序给出“分数”/适应度
案件?
我们想要奖励对所有前缀都有利的订单。
标准方法:使用加权平均百分比
覆盖测试用例序列。
如果我们有 n 个测试用例,m 个分支,TBi 是第一个执行分支 i 的测试用例的编号,那么适应度为:
在这里插入图片描述
优化
类似于最小化,我们可能有多个目标
例如:
(1)覆盖形式不同。
(2) 对历史故障部件进行优先测试。
(3)基于故障预测技术对元器件进行优先测试。
有可能再次使用多目标优化。

概括
在某些情况下,将使用给定的测试套件:
回归测试; 持续集成
最小化和优先化都有好处。
两者都可以表示为优化问题。有许多不同的优化方法,从
多目标进化的简单贪心算法算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值