一、阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C程序】
问题:1.1 请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件
![]() 本问题考查白盒测试用例设计方法中的判定覆盖法。 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序有3个判定,所以满足判定覆盖一共需要6个逻辑条件。 |
问题:1.2 请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
控制流图
环路复杂度V(G)=5
本问题考查白盒测试用例设计方法中的基本路径测试法。涉及到的知识点包括根据代码绘制控制流图、计算环路复杂度。
控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点代表—个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为—系列单个条件的嵌套的判断。本题程序中,if(y==7||y==21)这条判断语句中的判定由两个条件组成,因此在画控制流图的时候需要拆开成两条判断语句。需要注意的是,复合条件之间是“&&”的关系还是“||”的关系反应在控制流图的画法是不同的。
程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为4,所以V(G)=5。
问题:1.3 请给出问题2中控制流图的线性无关路径。
线性无关路径:
1.1-9
2.1-2-3-8-1...
3.1-2-4-5-7-8-1...
4.1-2-4-5-6-7-8-1...
5.1-2-4-5-6-8-1...
考查白盒测试用例设计方法中的基本路径法。涉及到的知识点包括:根据控制流图和环路复杂度给出线性无关路径。
线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中应该有5条线性无关路径。
二、阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
某航空公司的会员卡分为普卡、银卡、金卡和白金卡4个级别,会员每次搭乘该航空公司航班均可能获得积分,积分规则如表2-1所示。此外,银卡及以上级别会员有额外积分奖励,奖励规则如表2-2所示。
公司开发了一个程序来计算会员每次搭乘航班历累积的积分,程序的输入包括会员级别B、舱位代码C和飞行公里数K,程序的输出为本次积分S 。其中,B和C三字母且大小写不敏感,K为正整数,S为整数(小数部分四舍五入)。
问题:2.1 采用等价类型划分法对该程序进行测试,等价类表如2-3所示,请补充空(1)-(7)。
(1)P
(2)Z/C
(3)A/D/I/Y
(4)任意正整数
(5)除F/S/G/P之外的单个字母
(6)非单个字母
(7)非正整数
本问题考查等价类划分法中等价类表的构造。
等价类划分法的等价类表是把程序的输入域按规则划分为若干子集。
本题中,B和C由多个输入值构成,并且需要对每个(或者每组)输入值分别处理,按规则可以划分为n个有效等价类(每个或者每组值确定一个有效等价类)和一个无效等价类(所有不允许输入值的集合)。
对B来说,分成4个有效等价类(B分别取F、S、G、P)和1个无效等价类(其他情况),而这个无效等价类又可以进一步细分为非字母、非单个字母以及除F/S/G/P之外其他字母。
对C来说,根据额外积分200%、150%、125%、100%、50%、0%可以分为6个有效等价类和1个无效等价类,而这个无效等价类可以进一步细分为非字母和非单个字母。(注意:这里26个字母已经全部使用,不存在其他字母这个无效等价类)
本题中对K是规定了输入值集合必须满足的条件(即正整数),根据规则可以划分为1个有效等价类(K是正整数)和1个无效等价类(K不是正整数)。
问题:2.2 根据以上等价类表设计的测试用例如表2-4所示,请补充空(1)~(13)。
(1)1000
(2)500
(3)3&#