开发者测试覆盖率是不是越高越好?

举报
Jet Ding 发表于 2021/07/22 18:20:12 2021/07/22
【摘要】 问题: 为什么开发者测试看起来很美好,实际做的效果却很鸡肋,经常发现不了什么问题? 回复: 总的来说,在可以掌控的范围内,开发者测试的覆盖率当然是越高越好。这里我们需要了解的是,覆盖率指的是什么。我们平时看到的覆盖率的指标,比如说85%以上,100%以上这些都是代码行一级的覆盖率。比如100%的覆盖率呢,就是要求代码的每一行都要跑到。我们举个例子,我们现在有这么一段函数代码,有两个if el...

问题:

 为什么开发者测试看起来很美好,实际做的效果却很鸡肋,经常发现不了什么问题?

 回复:

 总的来说,在可以掌控的范围内,开发者测试的覆盖率当然是越高越好。

这里我们需要了解的是,覆盖率指的是什么。

我们平时看到的覆盖率的指标,比如说85%以上,100%以上这些都是代码行一级的覆盖率。比如100%的覆盖率呢,就是要求代码的每一行都要跑到。

我们举个例子,我们现在有这么一段函数代码,有两个if else分支是线性排列的。要达到100%的代码覆盖率,我们只需要创建两个测试案例,一个是让两个if同时成立,另一个是让两个else同时成立就可以了。

但是从分支上来说,上面的两个分支我们可以产生4种路径:

两个if同时成立,两个else同时成立,第1if和第2else成立,另一个else和另一个if成立。

从上面的分析中我们可以看出,为什么100%的代码覆盖率不能完全发现问题。

这主要是因为尽管代码行覆盖率已经达到了很高的指标,但是分支这一级的路径覆盖率还有遗漏。

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。