测试覆盖率

Posted 小狮子zzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试覆盖率相关的知识,希望对你有一定的参考价值。

测试覆盖率

测试覆盖率

覆盖率 测试过程中,对测试对象进行了测试,就叫覆盖了该测试对象。覆盖率是测试过程中测试完整性的一个指标。 计算覆盖率:被执行过的测试对象数量/测试对象总数量

覆盖率分为白盒覆盖   灰盒覆盖    黑盒覆盖

白盒覆盖

又叫结构化覆盖率或代码覆盖率,分为语句覆盖,条件覆盖,路径覆盖,判定覆盖,判定条件覆盖,条件组合覆盖,指令块覆盖,判定路径覆盖等
逻辑覆盖:   语句覆盖     将每条语句当作一个逻辑,衡量测试过程中语句被覆盖的比例。     语句覆盖率=测试用例经过的方框和菱形的总数 / 方框和菱形的总数     一个判断是否算一条语句?都可以


语句覆盖测试时,运行被测试程序后,程序中被执行到的可执行语句的比例
公式:语句覆盖=(至少被执行一次的语句数量)/(可执行的语句总数)

判定覆盖也叫分支覆盖,在测试时,运行被测程序,程序中所有判断语句的取真分支和取假分支被执行到的比率

判定覆盖     将每个判定语句中判定的分支当作一个逻辑,衡量测试过程中判定分支被覆盖的比例。     判定覆盖率=测试用例经过菱形的总数 / 菱形的总数 * 2
公式:判定覆盖=(判定结果被评价的次数)/(判定结果的总数)

条件覆盖在测试时,运行被测程序,所有判断语句中每个条件的可能取值(真值和假值)出现过的比率

 条件覆盖     什么是条件?两个数字/一个数字一个变量/两个变量,通过大于>、大于等于>=、小于<、小于等于<=、等于==、不等于!=     连接起来就是一个条件。     一般来说有一个条件有两个分支,T表示真True,F表示假False。     将每个判定语句中的每个条件的分支当作一个逻辑,衡量测试过程中条件分支被覆盖的比例。     条件覆盖率=测试用例经过条件的总数 / 菱形中所有条件的总数 * 2
公式:条件覆盖=(条件操作数至少被评价一次的数量)/(条件操作数值得总数)每一个判定本身的判定结果

判定条件覆盖也叫条件分支覆盖,在测试时,运行被测程序,所有判断语句中每一个条件的所有可能值(真值和假值)和(真值和假值)出现的比率

 判定-条件覆盖     将每个判定语句中判定的分支和条件的分支都当作一个逻辑,衡量测试过程中判定分支和条件分支被覆盖的比例。     判定-条件覆盖率=(判定覆盖的分子+条件覆盖的分子) / (判定覆盖的分母+条件覆盖的分母)
公式:判定条件覆盖=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值总数和判定结果总数)


条件组合覆盖在测试时,运行被测试程序,所有语句中的原子条件所有可能的取值结果组合出现过的比率。

 条件组合覆盖     将一个判定语句中的所有条件的所有分支的可能组合方式当作逻辑,衡量测试过程中条件分支组合方式被覆盖到的比例   条件组合的算法,一个菱形有两个条件: 2 * 2;一个菱形有三个条件: 2 * 2 * 2      条件组合覆盖=测试用例经过条件组合的总数(测试用例经过菱形的总数) / 每个菱形的所有条件组合的总和
公式:条件组合覆盖=(至少被执行到一次的条件组合)/(总的可能条件组合总数)

路径覆盖在测试时,运行被测程序后,程序中所有可能的路径被执行过的比率。

路径覆盖     将每一个从开始到结束的路径当作一个逻辑,衡量测试过程中路径被覆盖到的比例     路径覆盖率=被执行过的路径的数量(一般来说就是1)/ 总的路径的数量

流程图 圆圈:表示开始和结束 方框:表示一条语句(一般来说就是赋值语句) 菱形:表示一个判断语句(一般来说有两个判断分支,T表示真True,F表示假False) 箭线:用来连接两个语句
公式:路径覆盖=(至少被执行到一次的路径数)/(总的路径数)

指令块覆盖是语句覆盖的一个变体,指令块指的是函数内部的一个序列语句。
公式:指令块覆盖=(至少被执行一次的指令块数量)/(系统中的指令块总数)

判定路径覆盖是判定覆盖的一个变体,这里的判定指的是一个序列语句,其起始位置是函数入口或一个判定的开始,结束位置是下一个判定的开始。
公式:判定路径覆盖=(至少被执行到一次的判定路径的数量)/(程序中判定路径的总数)

 

灰盒覆盖

接口覆盖和函数覆盖
函数覆盖针对系统或子系统的测试的,他表示在测试中,有哪些函数被测试到了,其被测试的频率有多大,这些函数在系统中占所有函数的
比例有多大。测试工具:turecoverage    purecoverage等。
公式:函数覆盖=(至少被执行一次的函数数量)/(系统中函数的总数)

接口覆盖也叫入口点覆盖,要求通过设计一定的测试用例是的系统中的每一个接口都被测试到。
公式:接口覆盖=(至少被执行一次的接口数量)/(系统中所拥有的所有接口数量)

 

黑盒覆盖

功能覆盖(需求覆盖)

需求覆盖要求通过设计一定的测试用例是的系统中的每一个需求点都被测试到。
公式:需求覆盖=(被验证到的需求数量)/(总的需求数量)

 

以上是关于测试覆盖率的主要内容,如果未能解决你的问题,请参考以下文章

测试覆盖率

Jacoco和SonarQube的测试覆盖率不一样

覆盖率啥意思

测试覆盖率有哪几种统计方式

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

不是常见的覆盖率标准