案例分析题

试题一
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。

【说明】

问答题

请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。

【正确答案】

判定覆盖法:设计足够的测试用例,使得被测程序中每个判定表达式至少获得一 次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。
本题目中共有3个判定,所以满足判定覆盖一共需要6个逻辑条件。如下所示:
1、i
2、i>= ncycle;                               
3、j
4、j>=cyclelen;
5、pos>=panonopt_en;
6、pos

【答案解析】
问答题

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【正确答案】

控制流图:描述程序控制流的一种图示方式,由节点和定向边构成。节点代表一个基本块,定向边代表控制流的方向。如图所示:
环路复杂度等于控制流图中判定节点的个数加1,本题目中控制流图的判定节点是3,所以环路复杂度V(G)=3+1=4。

【答案解析】
问答题

请给出问题2中控制流图的线性无关路径。

【正确答案】

线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看, 一条线性无关路径是至少包含在其他中线性无关路径中从未有过的边的路径。
程序的环路复杂度等于线性无关路径的条数 ,所以本题中有4条线性无关路径。 如下所示:
(1)1、2、8
(2)1、2、3、4、2… 
(3)1、2、3、4、5、6、4… 
(4)1、2、3、4、5、7、4…

【答案解析】