语句覆盖测试


语句覆盖测试(Statement Coverage Testing)

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

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

语句覆盖率是根据代码结构推导出白盒测试过程下的测试用例场景。

报表覆盖

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

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

在这里,我们使用源代码根据输入值创建两个不同的场景,以检查每个场景的语句覆盖百分比。

源代码结构:

  • 输入两个值,如 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

声明范围链接

Statement coverage = 6/7*100 <br>  
= 600/7  
= 85%

声明范围链接

但是,我们可以看到两个场景中的所有语句都被覆盖,我们可以认为整体语句覆盖率为 100%。

声明范围链接

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