语句覆盖测试
语句覆盖测试
语句覆盖是广泛使用的软件测试之一。它经过白盒测试。
语句覆盖技术用于设计白盒测试用例。该技术涉及至少执行一次源代码的所有语句。它用于计算源代码中存在的总语句数中源代码中已执行语句的总数。
语句覆盖根据代码的结构推导出白盒测试过程下的测试用例场景。
在白盒测试中,测试人员的注意力集中在内部源代码和代码流程图或流程图的工作上。
一般来说,在内部源代码中,有各种各样的元素,如操作符、方法、数组、循环、控制语句、异常处理程序等。基于给程序的输入,一些代码语句被执行,有些可能不会被执行。语句覆盖技术的目标是覆盖代码中所有可能的执行语句和路径行。
我们通过一个例子来了解计算语句覆盖率的过程:
这里,我们以源代码根据输入值创建两个不同的场景来检查语句覆盖率的百分比
源代码结构:
输入两个值,例如 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 的值为-9,小于 0,并且根据条件,结果将是"这是一个否定结果。"的陈述以黄色突出显示的是此场景的执行语句。
计算第一种场景的语句覆盖率,取语句总数为7,使用语句数为6、
语句总数=7
执行语句数 = 6
Statement coverage = 6/7*100 <br>
= 600/7
= 85%
但是,我们可以看到这两种情况下所有的语句都被覆盖,我们可以考虑整体语句覆盖率为 100%。
所以,语句覆盖技术涵盖死代码、未使用的代码和分支。