阅读(52) (0)

软件测试 语句覆盖测试

2020-07-17 15:07:54 更新

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

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

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

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

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

下面通过一个例子来理解计算语句覆盖率的过程:

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

源代码结构:

  • 输入两个值,如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 ("这是正结果")   
    } else    
    {   
        Print ("这是负结果")   
    }   
}

所以,这是程序的基本结构,这是它将要完成的任务。

现在,让我们看一下两种不同的场景,并计算给定源代码的语句覆盖的百分比。

场景1:如果a = 5,则b = 4

print (int a, int b) {   
    int sum = a+b;   
    if (sum>0) {   
        Print ("这是正结果")   
    } else    
    {   
        Print ("这是负结果")   
    }   
}

在场景1中,可以看到sum的值是9,并且根据条件结果将是“这是正结果”。以黄色突出显示的语句是此方案的已执行语句。要计算第一个场景的语句覆盖率,假设取语句总数为7和执行语句数为5。

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

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

类似地,在场景2中,

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

print (int a, int b) {   
int sum = a+b;   
if (sum>0)   
    print ("这是正的结果")   
else   
    print ("这是负的结果")   
}

在场景2中,可以看到sum的值将是-9(小于0),并且根据条件,结果将是“这是负的结果”。以黄色突出显示的语句是此方案的已执行语句。

要计算第一个场景的语句覆盖率,请使用语句总数为7的和已使用语句数为6。

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

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

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

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

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/software_testing/statement-coverage-testing-in-white-box-testing.html