语句覆盖率是广泛使用的软件测试之一。它属于白盒测试。
语句覆盖技术用于设计白盒测试用例。此技术涉及至少执行一次源代码的所有语句。它用于计算源代码中存在的语句总数中的源代码中执行的语句总数。
语句覆盖率派生出基于代码结构的白盒测试流程下测试用例的场景。
在白盒测试中,测试人员的注意力集中在内部源代码和代码的流程图或流程图上。
通常,在内部源代码中,有各种各样的元素,如运算符、方法、数组、循环、控制语句、异常处理程序等。根据提供给程序的输入,执行一些代码语句,而某些代码语句可能不会执行。语句覆盖技术的目标是覆盖代码中所有可能的执行语句和路径行。
让我们通过一个例子来了解计算语句覆盖率的过程:
在这里,我们采用源代码根据输入值创建两个不同的场景,以检查每个场景的语句覆盖率百分比。
源代码结构: -
输入两个值,如 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%。
因此,语句覆盖技术涵盖死代码、未使用代码和分支。
|