逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
getit(intm)
{
inti,k;
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i=0)break;
if(i>=k+1)
printf("%disaselectednumber\n",m);
else
printf("%disnotaselectednumber\n",m);
}
7、请找出程序中所有的逻辑判断子语句。(5分)
8、请将满足100%DC(判定覆盖)所需的逻辑条件填入下表。(8分)
9、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。假设函数getit的参数m取值范围是150<m<160,请使用基本路径测试法设计测试用例,将参数m的取值填入下表,使之满足基本路径覆盖要求。(4分)
7、
本题考查对编程语言的理解,着重考查判断语句。
程序中的逻辑判断子语句如下:
i<=k
m%i==0
i>=k+1
8、
本题考查白盒测试用例设计方法:判定覆盖法。判定覆盖法又称为逻辑覆盖,是通过对程序逻辑结构的遍历实现程序的覆盖。
9、
本题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据代码绘制程序流图、计算环路复杂度以及设计测试用例。注意测试用例的数目本应和环路复杂度是一致的,但存在特殊情况。
控制流图:
环路复杂度:
V(G)=4
基本路径覆盖用例: