自动化会提高测试覆盖率,那测试覆盖率是什么?

原创
Erin520
2021-08-12 13:12:34
3409
摘要:测试覆盖率是测试质量的度量标准之一,告诉我们测试了多少代码。

测试覆盖率是什么?

测试覆盖率(test coverage)是2018年公布的计算机科学技术名词,它是测试质量的度量标准之一,告诉我们测试了多少代码。它定义了系统的某些实体,目的是用测试覆盖它们。这是一种用来指示我们什么时候进行了充分的测试,并告诉我们还需要测试什么(从而扩大了覆盖范围)的方法。

如果把测试比喻为打扫房子,那些不常用的房间总会被遗漏,我们总会忘记诸如次卧卫生间这样的区域,所以打扫的覆盖范围不包括就那个卫生间。

想象一下,如果我们的打扫标准只包括打扫卧室。按照这个标准,如果打扫了所有的卧室,就意味着整个房子都是干净的吗?


并非如此,因为我们完全忽略了厨房、餐厅、卫生间等房子内的其他部分!因此,务必要细致精准地度量测试覆盖率。具有一定程度的覆盖率是测试质量的一项指标,但它从来不是系统质量的指标,也不能保证所有内容都经过测试。测试覆盖率告诉我们测试代码的百分比,但这并不意味着它在每种情况下都被测试过。

测试覆盖率有什么优势?

依然是以打扫房屋为例,测试覆盖率可以:
● 度量打扫的质量;
● 指示何时该停止打扫;
● 提醒我们还有其他地方需要清理。

某些标准可能比其他标准更强大。了解它们可以让我们知道测试的深度以及何时应用某个或其他标准。例如,如果涵盖标准A的任何测试用例集TS也涵盖标准B,则可以说标准A包括另一个标准B。

按照上述原则,清洁房屋就可以遵循以下标准:
1. 打扫每个卧室;
2. 打扫房子的每一部分(包括卧室、厨房、卫生间等);
3. 打扫每一个小地方,甚至是角落,因为它们很可能会积聚灰尘。

显而易见,标准3包括2,而2又包括1,关系是传递的,即3包括1。如果我们为标准3设计一个测试用例,它也应该包括前两个标准。对于测试软件,标准通常包括程序中的各种路径、条件、语句、函数等。

另一个真实的例子可能是等价类划分,先划分若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,这样就覆盖了所有类。如果考虑白盒测试,又有语句覆盖率、分支覆盖率、路径覆盖率等,特别是对于状态机,我们有指示覆盖所有节点、所有转换等的标准。

测试自动化如何适用?

现在就可以想象一下扔掉扫帚,换成一个超高速的机器人。它可以解放双手、更快地清理地板、减少被遗漏的区域,还可以让自己在工作中专注于更重要的事情。

至此,我们可以得出结论:测试自动化=更高的测试覆盖率。



*该文为翻译文章,原文链接:https://abstracta.us/blog/test-automation/say-automation-increases-test-coverage-test-coverage-exactly/



Q: 测试覆盖率在项目管理中扮演什么角色?

A: 在项目管理中,测试覆盖率用于衡量和确保项目中代码的质量和完整性,通过识别未测试的区域来优化测试计划


Q: 自动化测试如何提高测试覆盖率?

A: 自动化测试通过快速执行大量测试用例,减少人为遗漏,提高测试效率,从而扩大了测试覆盖率范围。


Q: 在禅道等项目管理软件中,如何利用测试覆盖率指标?

A: 在禅道等项目管理软件中,测试覆盖率指标可以帮助识别代码缺陷,指导测试资源分配和优先级设定,提升项目管理的整体质量。

  • ai_thumbnail_81414_1759109910.png
评论列表
📒
卖萌的橙子2025-11-21 13:07:05回复
自动化提高测试覆盖率真的可靠?有相关数据支持吗?

推荐阅读

这款自研底层框架,你说不定已经用上了

“国产替代不是简单的替换产品,而是要构建起一个从底层技术到顶层解决方案完全自主可控的产业链。这不仅是一场技术较量,更是一场民族工业崛起的马拉松。”
🌻
陈哥聊测试
2025-04-17

质量安全管控如何实现事前预防?

只有将事前预防的理念贯穿于编码、测试、评审的每个环节,才能从根本上提升代码质量安全水平,为系统稳定运行提供坚实保障。
🌻
陈哥聊测试
2025-08-18

GitOps—用于基础设施自动化的DevOps

GitOps可以为工程团队提供许多优势,包括更好的协调、透明度、稳定性和系统的耐用性。
李晓琳 2020-11-30

老板:你来弄个团队代码提交规范

老板想要的团队代码提交规范都在这里!
🌻
陈哥聊测试
2024-10-11
返回顶部
客服头像
魏中显
高级客户经理
客服微信
18561939726
1746749398
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。