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

陈哥聊测试
• 阅读 22

大家好,我是陈哥。

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

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

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

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

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

一、测试覆盖率有什么优势?

依然是以打扫房屋为例,测试覆盖率可以:

  • 度量打扫的质量;
  • 指示何时该停止打扫;
  • 提醒我们还有其他地方需要清理。

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

按照上述原则,清洁房屋就可以遵循以下标准:

  1. 打扫每个卧室;
  2. 打扫房子的每一部分(包括卧室、厨房、卫生间等);
  3. 打扫每一个小地方,甚至是角落,因为它们很可能会积聚灰尘。

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

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

二、测试自动化如何适用?

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

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

点赞
收藏
评论区
推荐文章
精准测试之覆盖
测试的覆盖通常是指需求范围的执行程度,如需求、测试用例、缺陷的正向与逆向的双向追溯。便于对其相关属性的度量,即使用了覆盖率。
云原生引擎单元测试实践
快速迭代的开发工作中如何提高代码质量一直是团队痛点,特别是没有测试支持的开发团队。合理的使用单元测试,并关注单元测试通过率、代码覆盖率可以有效提高代码质量。今天就来讲讲云原生引擎单元测试实践。
Wesley13 Wesley13
3年前
Jacoco在eclipse上的集成使用
随着敏捷开发的流行,编写单元测试已经成为业界共识。但如何来衡量单元测试的质量呢?有些管理者片面追求单元测试的数量,导致底下的开发人员投机取巧,编写出大量的重复测试,数量上去了,质量却依然原地踏步。相比单纯追求单元测试的数量,分析单元测试的代码覆盖率是一种更为可行的方式。JaCoCo(JavaCodeCoverage)就是一种分析单元测试覆盖率的工具,使
Stella981 Stella981
3年前
Parasoft cpptestcli 指令行参数配置
ParasoftCtest  是款功能非常强大的自动化测试工具,能有效提高软件开发效率和代码质量。功能特点如下:    静态代码分析和编码策略实施;  自动代码审查的图形界面和进度跟踪;  自动化的单元测试和回归测试;  代码覆盖率分析,集成通过应用层覆盖跟踪从单元级测试;  结合静态分析、单元测试、代码评审和其他
API 小达人 API 小达人
1年前
自动化测试|Eolink Apikit 如何保存、使用测试用例
测试用例是测试过程中很重要的一类文档,它是测试工作的核心,是一组在测试时输入和输出的标准,是软件需求的具体对照。测试用例可以帮助测试人员理清测试思路,确保测试覆盖率,发现需求漏洞,提高软件质量,提高测试效率,降低测试成本。EolinkApikit的API管理应用中,测试用例管理涉及到两个场景:单接口测试用例管理和多接口测试用例批量测试。
京东云开发者 京东云开发者
6个月前
在Bamboo上怎么使用iOS的单元测试
本教程将使用北汽登录模块为例,一步一步和大家一起搭建单元测试用例,并在Bamboo上跑起来,最终测试结果和代码覆盖率会Bamboo上汇总。模块名称:BQLoginModule,是通过iBiu创建的一个模块工程一建立单元测试BundleProductName
京东云开发者 京东云开发者
5个月前
探索Playwright:前端自动化测试的新纪元
作者:京东保险张新磊背景在前端开发中,自动化测试是确保软件质量和用户体验的关键环节。随着Web应用的复杂性不断增加,手动测试已经无法满足快速迭代和持续交付的需求。自动化测试通过模拟用户与应用的交互,能够高效地执行重复性测试任务,加快测试周期,提升测试覆盖率
精准测试之过程与实践 | 京东云技术团队
精准测试是一套计算机测试辅助分析系统。精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系。
在Bamboo上怎么使用iOS的单元测试 | 京东云技术团队
本教程将使用北汽登录模块为例,一步一步和大家一起搭建单元测试用例,并在Bamboo上跑起来,最终测试结果和代码覆盖率会Bamboo上汇总。
以数据思维和技能提升数据应用测试实践 | 京东云技术团队
作者:京东零售周雪梅以数据思维和技能提高测试覆盖率和效率。数据应用测试,功能测试主要聚焦在数据流向(输入和输出)。一、背景数据质量组当前主要承接黄金眼和商智中的供应链模块,商智包括PC(品牌版:商家端,运营端)和M端。各模块的产品特征和测试范围和策略的通用
陈哥聊测试
陈哥聊测试
Lv1
资深敏捷测试顾问,致力于测试自动化和DevOps等的实践和研究。
文章
59
粉丝
0
获赞
2