📜  白盒测试中的语句覆盖率测试

📅  最后修改于: 2021-01-10 15:51:42             🧑  作者: Mango

声明覆盖率测试

语句覆盖率是广泛使用的软件测试之一。它经过白盒测试。

语句覆盖技术用于设计白盒测试用例。该技术涉及至少一次执行源代码的所有语句。它用于计算源代码中存在的全部语句中源代码中已执行的语句总数。

语句覆盖率基于代码的结构得出白盒测试过程下的测试用例场景。

在白盒测试中,测试人员专注于内部源代码和代码流程图或流程图的工作。

通常,在内部源代码中,有各种各样的元素,例如运算符,方法,数组,循环,控制语句,异常处理程序等。根据提供给程序的输入,某些代码语句将被执行,而某些可能不会被执行。语句覆盖技术的目标是覆盖代码中所有可能的执行语句和路径行。

让我们通过一个例子来了解计算语句覆盖率的过程:

在这里,我们采用源代码根据输入值创建两个不同的方案,以检查每种方案的语句覆盖率。

源代码结构:

  • 输入两个值,例如a = 0和b = 1。
  • 找到这两个值的总和。
  • 如果总和大于0,则打印“这是肯定的结果”。
  • 如果总和小于0,则打印“这是阴性结果”。
input (int a, int b) 
{ 
Function to print sum of these integer values (sum = a+b) 
If (sum>0) 
{ 
Print (This is positive result) 
} else  
{ 
Print (This is negative result) 
} 
} 

因此,这是程序的基本结构,即它将要完成的任务。

现在,让我们看看两种不同的情况以及给定源代码的语句覆盖率百分比的计算。

方案1:
如果a = 5,b = 4

print (int a, int b) { 
int sum = a+b; 
if (sum>0) 
print ("This is a positive result") 
else 
print ("This is negative result") 
} 

在方案1中,我们可以看到sum的值将是大于0的9,并且根据条件结果将是“这是一个正结果。 ”以黄色突出显示的语句是该方案的执行语句。

要计算第一种情况的语句覆盖率,请取语句总数为7,使用的语句总数为5。

Total number of statements = 7
Number of executed statements = 5

Statement coverage = 5/7*100 
= 500/7
= 71% 

同样,在方案2中,

方案2:
如果A = -2,B = -7

print (int a, int b) { 
int sum = a+b; 
if (sum>0) 
print ("This is a positive result") 
else 
print ("This is negative result") 
} 

在方案2中,我们可以看到sum的值将是小于0的-9,并且根据条件,结果将是“这是一个负结果。 ”以黄色突出显示的语句是该方案的执行语句。

要计算第一种情况的语句覆盖率,请取语句总数为7和已使用语句总数为6。

语句总数= 7
执行语句数= 6<="" p="">

Statement coverage = 6/7*100 
= 600/7 = 85%

但是,我们可以看到两种情况都覆盖了所有语句,并且可以认为整个语句覆盖率为100%。

因此,语句覆盖技术涵盖了无效代码,未使用的代码和分支。


执行语句数=>