100%测试覆盖率真的有用吗?
背景
最近看到一篇博客,作者是一名ThoughtWorker,文中提到要在他的项目中贯彻100%单元测试覆盖率。我在留言中对100%测试覆盖提出了一些质疑。看到“透明"的回复并且阅读了他的《Why is 100% test coverage easier to achieve》(需FQ)。有些想法,但是Blogbus的评论有字数限制。因此,贴在自己博客里面,希望和dreamhead和透明继续讨论
@透明
拜读了你的博文。FQ确实很辛苦。对ThoughtWorks的敬仰又进一层。
但是,对你的观点依然有一些质疑。你认为没有测试覆盖的代码就是不必要的(MUDA)。例如:getter, setter。我想还有一个例外,是健壮性代码(包括必要的断言检查和容错处理)。
我认为这里存在两类问题:1. 保持接口的语义清晰。2.保持模块健壮。
对于接口的语义清晰,我认为对于产品的可维护性会很有帮助。毕竟你写的模块,应该让使用者更易用。既然我们在产品的外部接口上应该精雕细琢。没理由在内部接口上如此惜墨如金啊。
对于模块的健壮性,理论上可以通过添加最够的单元测试后达到你所说的程度(没有单元测试覆盖的代码都是MUDA)。但是,添加单元测试也是成本,很多时候,我们添加这样的容错代码仅仅是两行代码。但是,为了证明这行容错是必要的,却要花费更多的时间和精力。这样真的值得吗?我们新写的这些单元测试是不是MUDA呢?
转载于:https://www.cnblogs.com/Cajon/archive/2011/05/15/2046871.html
100%测试覆盖率真的有用吗?相关推荐
- 软件分支测试覆盖率 100%,测试覆盖率之三——测试覆盖率100%相关的话题
上一篇文章中,介绍了测试覆盖率的意义之类的东西.测试覆盖率可以帮助我们检查测试质量,检查测试用例的有效率.如果有兴趣的话,可以阅读测试覆盖率之二--测试覆盖率有什么用? 关于测试覆盖率,我个人的感觉是 ...
- Diango博客--25.使用Coverage统计测试覆盖率
文章目录 1. 前言 2. 安装 Coverage 3. 简单配置 Coverage 4. 运行 Coverage 5. 完善 Coverage 配置 6. 生成 HTML 报告 7. 完善单元测试 ...
- 配置 jacoco 以提供更合理的测试覆盖率
最近在做一些代码的重构和基础库的迁移,这样的工作绝大部分时候不产生新的功能点,每次更换了类库后也都会将原来对应的测试同步迁移过来,保证新的代码和原来的代码一样工作.不过在迁移的过程中我发现 jacoc ...
- 用Cobertura 测量测试覆盖率
Cobertura 是一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率.除了找出未测试到的代码并发现 bug 外,Cobertura 还可以通 ...
- sonar覆盖率怎么统计的_实战|Java 测试覆盖率 Jacoco插桩的不同形式总结和踩坑记录(上)...
本文为霍格沃兹测试学院优秀学员关于 Jacoco 的小结和踩坑记录.测试开发进阶学习,文末加群. 一.概述 测试覆盖率是老生常谈的话题.因为我测试理论基础不是很好,这里就不提需求.覆盖率等内容,直奔主 ...
- 如何理解软件的测试覆盖率?
测试覆盖率通常用来衡量测试的充分性和完整性. 从广义来讲,大致分为业务层面的需求覆盖率和技术层面的代码覆盖率. 一.需求覆盖率 通常通过需求管理工具,来建立需求和测试用例的对应关系,并以此来计算测试覆 ...
- 测试覆盖率是软件测试的重要组成部分?当然是,必须是啊!
摘要: 就软件质量而言,测试覆盖率是软件测试中的重要指标.接下来一起了解测试范围.测试技术,测试标准以及如何改进它.由于软件中普遍存在的错误,全世界都见证了一些灾难性事件.2008年在英国希思罗机场5 ...
- 测试覆盖率之一——测试覆盖率分类(转)
转一篇,别人写的关于覆盖率的文章,没事常看看琢磨琢磨 测试覆盖率之一--测试覆盖率分类(转) 关于覆盖率,网络上最常见的两个词应该是"测试覆盖率"(Test Coverage)和& ...
- Jest 学习04 - DOM 测试、快照测试、测试覆盖率
DOM 测试 官方文档:DOM Manipulation 直接操作 DOM 的代码通常被认为难以测试,因为操作 DOM 就要使用浏览器环境的 DOM Api,而 Jest 是运行在 Node 环境中的 ...
最新文章
- 深入浅出Spring Security(一):三句话解释框架原理
- C# Lambda表达式 基础
- GetWindowText和GetDlgItemText的区别
- 科普:什么是IPV4?什么是IPV6?
- 如何免费申请博客 用WordPress建设网站
- 小凯的疑惑(Noip 提高组 2017 d1 1)+[USACO4.1]麦香牛块Beef McNuggets
- Win10设置每天定时运行某程序(关注不迷路,加星不糊涂哦~)
- 计算机浏览器无法上网怎么办,电脑有网络,但是浏览器不能上网怎么办
- 条形码的正确使用方法和技巧
- 变速器--中英文翻译
- submit()和onsubmit()的区别
- android nfc公交,安卓手机怎么刷公交、地铁 移动NFC手机交通业务介绍
- android 手电筒开发,Android之实现手电筒实例
- 第十六届全国大学生智能车竞赛浙江赛区选拔赛成绩汇总
- 计算机硬件技术基础课程主要内容,计算机硬件技术基础课程设计.doc
- 计算机操作系统-操作系统概述
- 可以定制专属的外卖跑腿配送系统吗?OEM定制是什么?
- 【Python】根据地名获取经纬度
- c语言将图像转换成字符画,25行Java代码将普通图片转换为字符画图片和文本的实现...
- 计算机组成原理-中央处理器-控制器功能和原理