语句覆盖率是广泛使用的软件测试之一。它经过白盒测试。
语句覆盖技术用于设计白盒测试用例。该技术涉及至少一次执行源代码的所有语句。它用于计算源代码中存在的全部语句中源代码中已执行的语句总数。
语句覆盖率基于代码的结构得出白盒测试过程中的测试用例场景。
在白盒测试中, 测试人员专注于内部源代码和代码流程图或流程图的工作。
通常, 在内部源代码中, 有各种各样的元素, 例如运算符, 方法, 数组, 循环, 控制语句, 异常处理程序等。根据提供给程序的输入, 某些代码语句会执行, 而某些代码语句可能不会执行。被执行。语句覆盖技术的目标是覆盖代码中所有可能的执行语句和路径行。
让我们通过一个示例来了解计算语句覆盖率的过程:
在这里, 我们采用源代码根据输入值创建两个不同的方案, 以检查每种方案的语句覆盖率。
源代码结构
接受两个值的输入, 例如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
= 600/7
= 85%
但是, 我们可以看到两种情况都覆盖了所有语句, 并且可以认为整个语句覆盖率为100%。
因此, 语句覆盖技术涵盖了无效代码, 未使用的代码和分支。