快世界末日了,不知道这软件测试在传说中的末日来临之前还能总结完不,不管末日来不来,软件测试的总结还得进行下去。好了今天开始总结逻辑覆盖中的语句覆盖。
什么是语句覆盖呢?从字面上理解,就是把程序代码每条语句都覆盖了,至少都要执行一遍,其实意思也差不多。语句覆盖是一个比较弱的测试标准,意在选择足够的测试用例,使得程序中每条语句至少都能被执行一次,下面举一个小程序作为实例,希望大家能够在这个例子中领会其中的思想。
程序的代码:
#include <iostream.h>
void main()
{
//声明变量
int A,B,C,a,b,c;
//提示并存储用户输入
cout<<"请输入一个整数A:";
cin>>A;
cout<<"请输入一个整数B:";
cin>>B;
cout<<"请输入一个整数C:";
cin>>C;
//条件选择
if(A>5)
{
a=A*A;
cout<<"A>5,所以a=A*A="<<a<<endl;
}
else
{
a=A;
cout<<"A<=5,所以a=A="<<a<<endl;
}
if(B>10)
{
b=B*B;
cout<<"B>10,所以b=B*B="<<b<<endl;
}
else
{
b=B;
cout<<"B<=10,所以b=B="<<b<<endl;
}
if(C>15)
{
c=C*C;
cout<<"C>15,所以c=C*C="<<c<<endl;
}
else
{
c=C;
cout<<"C<=15,所以c=C="<<c<<endl;
}
}
程序流程图如下:
这段代码很简单,思路也很清晰,看到程序流程图后,思路就更清晰了,两幅图中用红色标出的路径表示E、H、K三个条件均取真时,程序执行的路径;土黄色的路径表示E、H、K三个条件均取假时,程序执行的路径。那么根据图可以看出只要走了这两条路径就可以把这段代码的所有语句执行一遍,所以测试用例也就可以相应的设计了,在这里给出了一对测试样例:
测试用例1:A=6,B=11, C=16
测试结果:
测试用例2:A=5, B=10, C=15
测试结果:
可以看出,测试结果符合题意。
好了,语句覆盖就总结到这,过多了就不多说了,因为说多可能会和以后的覆盖分析混淆,学一种覆盖就牢牢掌握一种。