2017年下半年《软件评测师》下午试卷及答案

一、【C程序】问题:1.1 (3分)请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。本题考查白盒测试法及应用。本问题考查白盒测试用例设计方法中的判定覆盖法。判定覆盖指...
摘要由CSDN通过智能技术生成

一、【C程序】

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

本题考查白盒测试法及应用。
本问题考查白盒测试用例设计方法中的判定覆盖法。
判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序有3个判定,所以满足判定覆盖一共需要6个逻辑条件。

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

控制流图

环路复杂度V(G)=8

本问题考查白盒测试用例设计方法中的基本路径测试法。涉及的知识点包括根据代码绘制控制流图、计算环路复杂度。
控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列单个条件的嵌套的判断。本题程序中,while(*string&&*string!=和while(*string&&*string!= '&&*string!='\n'&&*string!=‘\t’)这两条判断语句中的判定由多个条件组成,因此在画控制流图的时候需要拆开成多条判断语句。需要注意的是,复合条件之间是“||”的关系还是“&&”的关系反应在控制流图的画法是不同的。
程序的环路复杂度等于控制流图中判定节点的个数加1,本题控制流图中判定节点个数为7,所以V(G)=8。

问题:1.3   (4分)
请给出问题2中控制流图的线性无关路径。

线性无关路径:
1. 1-2-3-4-2...5-6-13
2. 1-2-5-6-13
3. 1-2-3-5-6-13
4. 1-2...5-7-8-9-10-11-7...12-1...5-6-13
5. 1-2...5-7-12-1...5-6-13
6. 1-2...5-7-8-12-1...5-6-13
7. 1-2...5-7-8-9-12-1...5-6-13
8. 1-2...5-7-8-9-10-12-1...5-6-13

本问题考查白盒测试用例设计方法中的基本路径法。涉及的知识点包括根据控制流图和环路复杂度给出线性无关路径。
线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中应该有8条线性无关路径。

二、【说明】
某银行B和某公司C发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表2-1所示。此外,公司C的会员分为普通会员、超级会员和PASS会员三个级别,超级会员和PASS会员在刷卡时有额外积分奖励,奖励规则如表2-2所示。

银行B开发了一个程序来计算用户每次刷卡所累积的积分,程序的输入包括会员级别L、刷卡日期D和刷卡金额A,程序的输出为本次积分S。其中,L为单个字母且大小写不敏感,D由程序直接获取系统日期,A为正浮点数最多保留两位小数,S为整数。

问题:2.1   (5分)
采用等价类划分法对该程序进行测试,等价类表如下表所示,请补充表2-3中空(1)~(5)。

(1) P
(2) 12月12日
(3)最多两位小数的正浮点数
(4) 除M/S/P之外的单个字母
(5)非正的浮点数

本问题考查等价类划分法中等价类表的构造。
等价类划分法的等价类表是把程序的输入域按规则划分为若干子集。
本题中L由多个输入值构成,并且需要对每个(或者每组)输入值分别处理,按规则可以划分为n个有效等价类(每个或者每组值确定一个有效等价类)和一个无效等价类(所有不允许输入值的集合)。
对L来说,分成3个有效等价类(L分别取M、S、P)和1个无效等价类(其他情况),而这个无效等价类又可以进一步细分为非字母、非单个字母以及除M/S/P之外其他字母。
对D来说,根据日期可以分为4个有效等价类,这个有效等价类可以进一步细分为每月9日、19日,11月11日,12月12日和其他日期。
本题中对A是规定了输入值集合必须满足的条件(即最多两位小数的正浮点数),根据规则可以划分为1个有效等价类(K是最多两位小数的正浮点数)和3个无效等价类(非浮点数,非正的浮点数,多于两位小数的正浮点数)。

问题:2.2   (9分)
根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空(1)~(9)。

(1) 1000
(2)大于等于499.50小于等于500.49之间的最多两位小数的浮点数
(3) 3,6,8
(4)其他日期(除每月9日、19日,11月11日,12月12日)
(5) 非字母
(6) N/A
(7)除M/S/P之外的单个字母,如A
(8) 1,7,12
(9)多于两位小数的正浮点数,如500.123

本问题考查等价类划分法中根据等价类表编写测试用例能力。
在编写等价类划分法的测试用例时,如果输入全部都来自有效等价类,则从每个有效等价类选取一个代表元素作为输入,如果要考虑无效等价类,则每次只选取一个无效等价类,其余输入都从有效等价类中选取

问题:2.3   (6分)
如果规定了单次刷卡的积分上限为20000( 即S取值大于等于0且小于等于20000),则还需要针对S的取值补充一些测试用例。假设采用等价类划分法和边界值分析法来补充用例,请补充表2-5、表2-6中的空(1)~(6)。

(1) S<0
(2) S>20000
(3) S=19999
(4) S=20001
(5) S=1
(6) S=-1

本问题

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大力测试进阶之路

打赏博主喝瓶水吧!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值