语句覆盖测试
精华
小牛编辑
103浏览
2023-03-14
语句覆盖是广泛使用的软件测试之一。它来自白盒测试。
语句覆盖技术用于设计白盒测试用例。该技术涉及至少执行一次源代码的所有语句。它用于计算源代码中源代码中执行的语句总数。
语句覆盖在白盒测试过程中得出测试用例的场景,该过程基于代码的结构。
在白盒测试中,测试人员的专注点是内部源代码和流程图或代码流程图的工作。
通常,在内部源代码中,有各种各样的元素,如运算符,方法,数组,循环,控制语句,异常处理程序等。根据给程序的输入,执行一些代码语句,有些可能不执行 被执行。语句覆盖技术的目标是覆盖代码中所有可能的执行语句和路径行。
下面通过一个例子来理解计算语句覆盖率的过程:
在这里,我们采用源代码根据输入值创建两个不同的场景,以检查每个场景的语句覆盖百分比。
源代码结构:
- 输入两个值,如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%。
因此,语句覆盖技术涵盖了死代码,未使用的代码和分支。