软件测试之-测试覆盖率
软件测试覆盖率简介
1、定义:覆盖率是⽤来度量测试完整性的⼀个⼿段,同时也是测试技术有效性的⼀个度量。
2、计算:覆盖率=(⾄少被执⾏⼀次的item数)/item的总数
3、特点积极的情绪
1)通过覆盖率数据,可以检测我们的测试是否充分激励的名言
2)分析出测试的弱点在哪⽅⾯
3)指导我们设计能够增加覆盖率的测试⽤例,有效提⾼测试质量,但是测试⽤例设计不能⼀味追求覆盖率,因为测试成本随覆盖率的增加⽽增加。
软件测试覆盖率分类
覆盖率按照测试⽅法⼤体上可以划分为三⼤类,即⽩盒覆盖(white-Box Coverage)、灰盒覆盖(Gray-Box coverage)和⿊盒覆盖(Black-Box Coverage)。
⽩盒覆盖率(white-Box Coverage)
⽩盒覆盖率中使⽤的最常见的就是逻辑覆盖率(Logical Coverage ),也叫代码覆盖率(Code Coverage)或者结构化覆盖率(Structural Coverage),我们常见的
逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
1、语句覆盖(Statement Coverage)
1)定义:在测试时,运⾏被测程序后,程序中被执⾏的可执⾏语句的⽐率。
2)计算公式:语句覆盖率=(⾄少被执⾏⼀次的语句数量)/(可执⾏的语句总数)
3)100%语句覆盖率含义:在测试时,⾸先设计若⼲个测试⽤例,然后运⾏被测程序,使程序中的每个可执⾏语句⾄少执⾏⼀次。
4)特点:语句覆盖可以检验每个可执⾏语句,但是即使语句覆盖率达到了100%,也会有缺陷发现不了,所以覆盖率只是我们度量的⼿段。
2、判定覆盖(Decision Coverage)/分⽀覆盖率(Branch Coverage)
1)定义:在测试时,运⾏被测程序后,程序中所有判断语句的取真分⽀和取假分⽀被执⾏到的⽐率。
2)计算公式:判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)
3)100%条件覆盖率含义:在测试时,⾸先设计若⼲个测试⽤例,然后运⾏测试程序,使得程序中每个判断的取真分⽀和取假分⽀⾄少经历⼀次,即判断的真假值均曾被满⾜。
4)特点
(1)若判定覆盖达到100%,则语句覆盖必为100%。
(2)即使判定覆盖率达到了100%,也会有缺陷发现不了。
3、条件覆盖(Condition Coverage)
1)定义:在测试时,运⾏被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)出现过的⽐率。
2)计算公式:条件覆盖率=(条件操作数值⾄少被评价⼀次的数量)/(条件操作数值的总数)作文700字初中
3)100%条件覆盖率含义:在测试时,⾸先设计若⼲个测试⽤例,然后运⾏被测试程序,要使每个判断中每个条件的可能取值⾄少满⾜⼀次。
4)特点:覆盖条件的测试⽤例不⼀定覆盖判定。
4、判定-条件覆盖(Decision Condition Coverage)/分⽀条件覆盖(Branch Condition Coverage)
武汉户口1)定义:在测试时,运⾏被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)和每个判断本⾝的判定结果(为真为假)出现的⽐率。
2)计算公式:判定-条件覆盖率=(条件操作数值或判定结果⾄少被评价⼀次的数量)/(条件操作数值的总数+判定结果的总数)
玫瑰马普龙3)100%判定-条件覆盖率含义:设计⾜够的测试⽤例,使得判断中每个条件的所有可能取值⾄少执⾏⼀次,同时每个判断本⾝的所有可能结果⾄少执⾏⼀次。换⾔之,即是要求各个判断的所有的可能的取值组合⾄少执⾏⼀次。 4)特点
(1)判定-条件覆盖率实际上就是判定覆盖率和条件覆盖率的组合。
(2)采⽤判定-条件覆盖,逻辑表达式中的错误不⼀定能够查得出来。
5、条件组合覆盖(Condition combination coverage)
1)定义:在测试时,运⾏被测程序后,所有语句中原⼦条件所有的可能的取值结果组合出现过的⽐率。
2)计算公式:条件组合覆盖率=(⾄少被执⾏⼀次的条件组合)/(总的可能的条件组合数)
3)100%条件组合覆盖率含义:设计⾜够的测试⽤例,使得判断中条件的各种可能组合⾄少出现过⼀次。
4)特点:若条件组合覆盖率为100%,则语句覆盖率、判定覆盖率、条件覆盖率和判定-条件覆盖率必为100%。
6、路径覆盖(Path Coverage)
家长会主题
1)定义:在测试时,运⾏被测程序后,程序中所有可能的路径被执⾏的⽐率。
2)计算公式:路径覆盖率=(⾄少被执⾏⼀次的路径数)/(总的路径数)
3)100%路径覆盖率含义:设计⾜够的测试⽤例,要求覆盖程序中所有可能的路径。
4)特点
(1)路径覆盖⽐判定条件覆盖更强,但是不能包含判定条件覆盖。
(2)若路径覆盖率为100%,则语句覆盖率、判定覆盖率必为100%。
⼩结:逻辑覆盖率可以作为软件测试的⼀个度量,但是,即使达到了100%的逻辑覆盖率,仍然⽆法保证程序的正确性。
灰盒覆盖率(Gray-Box Coverage)
函数覆盖和接⼝覆盖可以归为灰盒测试的范畴。
1、函数覆盖
1)定义:它表⽰在测试中,有哪些函数被测试到了,其被测试到的频率有多⼤,这些函数在系统所有函数中占的⽐例有多⼤。开学第一课安全教育
2)计算公式:函数覆盖=(⾄少被执⾏⼀次的函数数量)/(系统中函数的总数)
3)特点:是针对⼀个系统或者⼦系统测试的。
2、接⼝覆盖(Interface Coverage)/⼊⼝点覆盖(Entry-Point Coverage)
1)定义:要求通过设计⼀定的⽤例使得系统的每个接⼝被测试到。
2)计算公式:接⼝覆盖=(⾄少被执⾏⼀次的接⼝数量)/(系统中接⼝的总数)
⿊盒覆盖率(Black-Box Coverage)
在实际测试中,与⿊盒相关的覆盖率⽐较少,主要是功能覆盖率(Function Coverage),其中最常见的是需求覆盖。
需求覆盖
如何写记叙文1)定义:它表⽰在测试中,有哪些函数被测试到了,其被测试到的频率有多⼤,这些函数在系统所有函数中占的⽐例有多⼤通过设计⼀定的测试⽤例,要求每个需求点都被测试到。
2)计算公式:需求覆盖=(被验证到的需求数量)/(总的需求总数)