白盒覆盖率,灰盒覆盖率,接口覆盖率和黑盒覆盖率
发布时间:2024-02-23

什么是覆盖率?

 

覆盖率是用来度量测试完整性的一个指标。现在越来越多的测试工具能够支持覆盖率测试,但是它们本身并不包含测试技术,只是测试技术有效性的一个度量。


覆盖率按照测试方法大体上可以划分为三大类,即白盒覆盖率 (white box coverage)、灰盒覆盖率(gray box  coverage)和黑盒覆盖率 (black box coverage )。


假设我们要对项的覆盖情况进行计算,那么覆盖率可以通过一个公式来表示。


覆盖率=(至少执行一次的项数/总项数)×100%


覆盖率对软件测试有着非常重要的作用。通过覆盖率,我们可以知道测试是否充分,测试的缺点是哪些方面,进而指导我们设计能够增大覆盖率的测试用例,有效提高测试质量。但是测试用例设计也不能一味追求覆盖率,因为测试成本随覆盖率的增加而增加。

 

白盒覆盖率


实际工作中使用次数最多的覆盖率是白盒覆盖率。可以通过各种白盒覆盖率来度量单元测试的充分性。


逻辑覆盖率


度量


白盒测试是基于程序结构的逻辑驱动测试,其原则如下:

 

● 保证一个模块中的所有独立路径至少覆盖一次。

●对所有逻辑值均要测试 True和 Flase。

● 在上下边界及可操作范围内运行所有循环。

● 检查内部数据结构,以确保其有效性。

 

通过对程序逻辑结构的遍历实现程序的逻辑覆盖。白盒覆盖率中使用次数最多的覆盖率就是逻辑覆盖率 (logical coverage),也称代码覆盖率(code coverage)或结构化覆盖率(structural coverage)。从覆盖源程序语句的详尽程度分析,逻辑覆盖率包括语句覆盖率(Statement Coverage, Sc),判定覆盖率(Decision Coverage, DC),条件覆盖率(Condition Coverage, CC), 判定条件覆盖率(Decision Condition Coverage, DeC),条件组合覆盖率(Condition Combination Coverage, CCC),以及路径覆盖率(Path Coverage,PC)。

 

灰盒覆盖率

 

函数覆盖率和接口覆盖率可以归为灰盒覆盖率的范畴。

 

函数覆盖率


很多测试工具(如TrueCoverage、 Purecoverage等),提供了函数覆盖率的概念。函数覆盖率是针对系统或子系统的测试的,它表示在测试中有哪些函数测试了,其被测试的概率有多大,这些函数在系统所有函数中占的比例有多大。计算函数覆盖率的公式如下。


函数覆盖率=(至少执行一次的函数数量/系统中函数的总数)x100%


接口覆盖率


接口覆盖率 (interface coverage)也称人口点覆盖 (entry-point coverage ),要求通过设计一定的用例使得系统的每个接口被测试到。其计算公式如下。


接口覆盖率=(至少执行一次的接口数量/系统中接口的总数)×100%

 

黑盒覆盖率


在实际测试中,与黑盒相关的覆盖率比较少,主要是功能覆盖率(function coverage )。


功能覆盖率中最常见的是需求覆盖率,其含义是通过设计一定的测试用例,要求每个需求点都被测试。计算需求覆盖率的公式如下。


需求覆盖率=(被验证的需求数量/总的需求数量)×100%


由于黑盒测试把被测系统理解为一个黑盒,测试时,输人测试数据,然后判定输出结果是否与期望结果一致。根据这个可以得到输入数据的覆盖情況,即通过设计一定的用例,要求每种情况都被测试。功能测试覆盖方面的自动化工具比较少。



更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/