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

一、什么是软件测试覆盖率

1.软件测试覆盖率是软件测试技术有效性的一个度量手段,用来度量测试完整性。意思概括的说,软件测试的工作中会有非常非常多的item(任务),执行过的任务和总任务数的一个比值,这就是覆盖率。

计算公式:覆盖率=(至少被执行一次的item数)/item的总数

2.大的角度来说,我的一个需求现在有一万个功能点,那这一次测试了9000个功能点。用9000除以1万,证明这轮测试的功能点覆盖率达到了90%,这就是一个最简单的计算模式。

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

二、测试覆盖率是什么?

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

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

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

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

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

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

● 度量打扫的质量

● 指示何时该停止打扫

● 提醒我们还有其他地方需要清理

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

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

● 打扫每个卧室

● 打扫房子的每一部分(包括卧室、厨房、卫生间等)

● 打扫每一个小地方,甚至是角落,因为它们很可能会积聚灰尘

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

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

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

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

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

最后如果你对特斯汀感兴趣,搜索“特斯汀软件测试腾讯课堂”或关注公众号“特斯汀软件测试”,里面涵盖很多精彩免费视频或干货知识。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
上一篇 2022年8月21日 21:13
下一篇 2022年8月21日 22:00

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息