加入收藏 | 设为首页 | 会员中心 | 我要投稿 唐山站长网 (https://www.0315zz.com.cn/)- 数据安全、数据开发、文字识别、图像处理、媒体智能!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

CI做到90%的行覆盖率

发布时间:2021-03-16 13:56:45 所属栏目:外闻 来源:互联网
导读:希望一组测试用例不仅能够触发被测代码的各种分支,还能够做好结果校验。 当业务代码出现问题的时候,测试用例可以发现这个问题,我们就认为这一组测试用例是有效的。 当业务代码出现问题的时候,测试用例没能发现这个问题,我们就认为这一组测试用例是无效

希望一组测试用例不仅能够“触发被测代码的各种分支”,还能够做好结果校验。

  • 当业务代码出现问题的时候,测试用例可以发现这个问题,我们就认为这一组测试用例是有效的。
  • 当业务代码出现问题的时候,测试用例没能发现这个问题,我们就认为这一组测试用例是无效的。

我们对测试用例有效性的理论建模是:

>> 测试有效性 = 被发现的问题数 / 出现问题的总数

为什么要评估测试用例的有效性?

用例有效性评估的方法?

基于故障复盘的模式成本太高,我们希望能够主动创造问题来评估测试用例的有效性。

我们找到了一种衡量“测试有效性”的方法,变异测试(mutation testing):

异测试的例子

我们用了一组测试用例(3个),去测试一个判断分支。而为了证明这一组测试用例的有效性,我们向业务代码中注入变异。我们把b<100的条件改成了b<=100。 我们认为:

  • 一组Success的测试用例,在其被测对象发生变化后(注入变异后),应该至少有一个失败。
  • 如果这组测试用例仍然全部Success,则这组测试用例的有效性不足。

通过变异测试的方式:让注入变异后的业务代码作为“测试用例”,来测试“测试代码”。

我们实现了多种规则,可以主动的注入下面这些变异:何优雅的评估测试有效性?

为了全自动的进行测试有效性评估,我们做了一个变异机器人,其主要运作是:

  1. 往被测代码中写入一个BUG(即:变异);
  2. 执行测试;
  3. 把测试结果和无变异时的测试结果做比对,判断是否有新的用例失败;
  4. 重复1-3若干次,每次注入一个不同的Bug;

(编辑:唐山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读