问答题 试题二(共15分) 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 [说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
问答题 [问题1](5分) 请给出满足100%DC(判定覆盖)所需的逻辑条件。
【正确答案】[*]
【答案解析】 本题考查白盒测试方法中的判定覆盖法。 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。 本题中程序一共有5个判定,所以满足判定覆盖一共就需要10个逻辑条件,这些条件详见参考答案。
问答题 [问题2](7分) 请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【正确答案】 控制流图
【答案解析】 本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。 控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:
问答题 [问题3](3分) 请给出[问题2]中控制流图的线性无关路径。
【正确答案】
【答案解析】 本题考查白盒测试方法中的基本路径法。涉及到的知识点包括根据控制流图和环路复杂度确定线性无关路径。 线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径。对问题2中的控制流图,其线性无关路径的集合为: