【软考软件评测师】2016年下案例分析历年真题

【软考软件评测师】2016年下案例分析历年真题

2016下案例分析历年真题第一题(15分)

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C程序】
在这里插入图片描述
【问题1】
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】
请给出问题2中控制流图的线性无关路径。

【问题1我的解答】
x大于0;x小于等于0;
x等于1;x不等于1;
x不等于1且y等于7或21;
x不等于1且y不等于7和21;
【问题1标准答案】
本题中的判定有x>0;x1;y=7||y=21;三个判定点,所以要符合100%判定覆盖的要求,就需要使得每个判定结果的真假值都出现1次,即:x>0;x<=0;x1;x!=1&&x>0 ;y7或者y21;y!=7&&y!=21&& x!=1&&x>0
【问题2标准答案】
在这里插入图片描述
控制流程图的环路复杂性 V(G)等于:
(1)控制流程图中的区域个数。
(2)边数-结点数+2。
(3)判定数+1。
V(g)=5
【问题3我的解答】
1,9;
1,2,3,8,1…9
1,2,4,5,6,7,8,1…9
1,2,4,5,6,8,1…9
1,2,4,5,8,1…9
【问题3标准答案】
线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:
1:1,9
2:1,2,3,8,1,9
3:1,2,4,5,7,8,1,9
4:1,2,4,5,6,7,8,1,9
5:1,2,4,5,6,8,1,9

2016下案例分析历年真题第二题(20分)

某航空公司的会员卡分为普卡、银卡、金卡和白金卡4个级别,会员每次搭乘该航空公司航班均可能获得积分,积分规则如表2-1所示。此外,银卡及以上级别会员有额外积分奖励,奖励规则如表2-2所示。
在这里插入图片描述
公司开发了一个程序来计算会员每次搭乘航班历累积的积分,程序的输入包括会员级别B、舱位代码C和飞行公里数K,程序的输出为本次积分S 。其中,B和C三字母且大小写不敏感,K为正整数,S为整数(小数部分四舍五入)
【问题1】
采用等价类型划分法对该程序进行测试,等价类表如2-3所示,请补充空(1)-(7)。
在这里插入图片描述
【问题2】
根据以上等价类表设计的测试用例如表2-4所示,请补充空(1)~(13)。
在这里插入图片描述

【问题1我的解答】
1)P✔️
2)Z,C✔️
3)A,Y,D/I✔️
4)整数
5)四个以外的单字母✔️
6)非单个字母✔️
7)负整数✔️
【问题1标准答案】
1.P
2.Z/C
3.A/D/I/Y
4.任意正整数
5.除F/S/G/P之外的单个字母
6.非单个字母
7.非正整数
【问题2我的解答】
1)1000✔️
2)1.5K1.1=825;K=500✔️
3)3,7,11✔️
4)1.5X500=750;B/H/K/L/M/W✔️
5)F✔️
6)500*200%*1.5=1500✖️
7)非字母✔️
8)非单个字母✔️
9)非字母✔️
10)非单个字母✔️
11)非整数✔️
12)N/A✔️
13)非正整数✔️
【问题2标准答案】
1.1000
2.500
3.3,7,11
4.R/B/H/K/L/M/W
5.F
6.0
7.任意非字母,如0
8.任意非单个字母,如FF
9.任意非字母,如0
10.任意非单个字母,如FF
11.任意非整数,如A
12.N/A
13.任意非正整数,如0
等价类划分法的等价类表是把程序的输入域按规则划分为若干子集。
本题中,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不是正整数)。
在编写等价类划分法的测试用例时,如果输入全部都来自有效等价类,则从每个有效等价类选取一个代表元素作为输入,如果要考虑无效等价类,则每次只选取一个无效等价类,其余输入都从有效等价类中选取。

2016下案例分析历年真题第三题(20分)

某证券交易所为了方便提供证券交易服务,欲开发一个基于Web的证券交易平台。其主要功能包括客户开户,记录查询、存取款、股票交易等。客户信息包括姓名、Email(必填且唯一)、地址等;股票交易信息包括股票代码(6位数字编码的字符串)、交易数量(100的整数倍)、买/卖价格(单位:元,精确到分)。
系统要支持:
(1)在特定时朝内3000个用户并发时,主要功能的处理能力至少要达到128个请求/秒,平均数据量2KB/请求;
(2)页面中采用表单实现客户信息、交易信息等的提交与交互,系统前端采用HTML5实现。
【问题1】
在对此平台进行非功能测试时,需要测试哪些方面?
【问题2】
在满足系统要支持的(1)时,计算系统的通信吞吐量。
【问题3】
表单输入测试需要测试哪几个方面?
【问题4】
(1)针对股票代码:111111、数量:10万、当前价格:6.00,设计4个股票交易的测试输入。
(2)设计2个客户开户的测试输入,以测试是否存在XSS、SQL注入。

【问题1我的解答】
并发性能测试,负载压力测试,可靠性测试,可用性测试,安全性测试,兼容性测试,
【问题1标准答案】
性能测试、负载测试、压力测试、并发测试、配置测试、可靠性测试、容量测试、失效恢复测试、链接速度测试等。
【问题2我的解答】
128*2=256KB / S
【问题2标准答案】
通信吞吐量:P=N(并发用户的数量=3000)×T(每单位时间的在线事务数量=128)×D(事务服务器每次处理的数据负载=2KB/s)=3000×128×2=768000KB/s=750MB/s。
【问题3标准答案】
表单测试结合本题来看应为:每个字段的验证;字段的缺省值;表单中的输入。
输入域、错误输入是否有错误提示、必填项和选填项
【问题4标准答案】
1.测试一:任一标准等价类测试输入,满足股票代码为111111,交易数量为100整数倍且小于等于10万,买/卖价格为包含两位小数的正数,如“111111,300,6.78”。
测试二至测试四:分别为任一健壮等价类测试输入,即每个输入有一个无效数据,其余输入为有效数据。如“11111A,300,6.78”“111111,301,6.78”“111111,300,6.789”
针对客户信息包括姓名、Email(必填且唯一)、地址,等输入,任意挑选一个输入文本框,在保障SQL能运行的前提下,输入带有注入式攻击和XSS攻击的特征内容即可
一字段为:任何包含SQL功能符号测试是否使SQL改变为不符合设计意图即可,如包含‘OR、’–‘OR‘1’=‘1’’等。

2016下案例分析历年真题第四题(20分)

阅读下列说明,回答问题1至问题5,将解答写在答题纸的对应栏内。
【说明】
图4-1是银行卡应用的部分类图,图中属性和操作前的“+”和“一”分别表示公有成员和私有成员。银行卡Account有两种类型,借记卡SavingAccount和信用卡CreditAccount
在这里插入图片描述
图4-1银行卡应用的部分类图
(1)借记卡和信用卡都有卡号account Number和余额balance两个属性。借记卡的余额是正常余额,信用卡的余额是目前未还的金额,如果没有未还的金额,则为0;有开户set Up、取款withdraw、查询余额get Balance和销户close四个方法。借记卡取钱时,要求取钱金额不能超过余额;而信用卡取钱金额不能超过信用额度,因此需要在子类中实现该方法。
(2)借记卡可以存钱deposit。
(3)信用卡有信用额度creditLimit属性,可以查询信用额度getCreditLimit、修改信用额度updateCreditLimit和还款retumCredit。
现拟采用面向对象的方法进行测试。
【问题1】(3分)
面向对象单元测试的主要对象是什么
【问题2】(4分)
在继承关系上,若某方法在测试父类时已经测试过,那么在什么情况下在子类中也需要测试?
【问题3】(4分)
要测试方法deposit()时,还需要调用什么方法?给出测试序列。
【问题4】(6分)
方法withdraw在基类Account中定义,但在两个子类中有不同的实现。这是面向对象的什么机制?这种情况在测试时如何进行?
【问题5】(3分)
给出类SavingAccount的最小测试序列。

【问题1我的解答】
面向对象单元测试的主要对象是类中的属性和方法。
【问题1标准答案】
类,类的成员函数(是针对程序的函数,过程或者以完成某些特定功能的程序块)。
【问题2我的解答】
子类有父类一样的成员函数,且子类的成员函数和父类有着不同的实现方式。也就是在有重载的情况下。
【问题2标准答案】
对父类中已经测试过的成员函数,有两种情况需要在子类中重新测试:
1)继承的成员函数在子类中做了改动;2)成员函数调用了改动过的成员函数的部分。
【问题3我的解答】
开户setUp、查询余额get Balance,deposit();
【问题3标准答案】
getBalance();先测试getBalance() 再测试deposit()
【问题4我的解答】
方法withdraw在基类Account中定义,但在两个子类中有不同的实现。这是面向对象的多态机制?这种情况在测试时应该先测试父类的withdraw,然后再测试两个子类的withdraw。
【问题4标准答案】
方法withdraw在基类Account中定义,但在两个子类中有不同的实现,这是多态机制;
测试时,只需要在原有的测试分析和基础上增加对测试用例中输入数据的类型的考虑;先测试基类,然后再分别依据输入数据设计不同的测试用例
【问题5标准答案】
先测试Account类,然后测试SavingAccount类
setup()(account类)–getBalance()(account类)–deposit()(Savingaccount类)–getBalance()(account类)–withdraw()(account类)–getBalance()(account类)–close()(account类)

2016下案例分析历年真题第五题(20分)

某嵌入式控制软件通过采集传感器数值来计算输出控制率,为了提高数据采集的可靠性,使用三余度采集方法进行三个通道的数据采集。
1.三余度通道数据采集及处理要求:
(1)三通道采集值In_U[0]、In_U[1]、In_U[2]的正常范围为[-3.0,3.0]V,且任意两通道间差值不大于0.5V;
(2)如果某通道采集值超过正常范围或者因为通道采集值造成与其它通道差值大于0.5V,则该通道数据不满足要求;
(3)如果三通道值均满足要求,则取三通道中差值较小的两通道数据的平均值;
(4)如果仅有一个通道数据不满足采集要求,取满足要求的两个通道数据的平均值;
(5)如果多于一个通道数据不满足采集要求,取安全值0V。
2.对采集数值计算控制率的具体处理算法如下:
(1)如果依据采集数据计算的控制率C1与目前实际控制率C0差值不大于0.01则使用本周期计算控制率C1进行输出控制,否则使用目前实际控制率C0输出控制.不上报传感器故障;
(2)如果连续3个周期计算的控制率C1与目前实际控制率C0差值大于0.01,则上报传感器三级故障,连续超差计数清零,使用目前实际控制率C0输出控制;如果已经连续3个周期控制率超差,并上报三级故障,但第4个周期计算的控制率C1与目前实际控制率C0差值不大于0.01,则清除三级故障上报;
(3)如果累计大于等于10个周期计算的控制率C1与目前实际控制率C0差值大于0.01,则上报传感器二级故障,使用目前实际控制率输出控制;
(4)如果累计大于等于100个周期计算的控制率C1与目前实际控制率C0差大于0.01,则上报传感器一级故障,并清除二级故障,并切断输出控制(输出安全值0)
(5)如果低级故障和高级故障同时发生,则按高级故障处理。
【问题1】
为了测试采集算法,在不考虑测量误差的情况下,设计了表5-1所示的测试用例,请填写该表中的空(1)~(6)。
)。
在这里插入图片描述
【问题2】
为了测试控制率计算算法,在不考虑测量误差的情况下,设计了表5-2所示的用例,请完善其中的空(1)~(6)。
在这里插入图片描述
【问题3】
测试人员在设计测试用例进行采集算法测试时,发现本项目的三余度采集值的具体处理算法存在一处缺陷,请指出此处缺陷。

【问题1我的解答】
1)1.9✔️
2)1.55✔️
3)2.7✔️
4)-2.9✔️
5)不满足要求✖️
6)0✔️
【问题1标准答案】
1)1.9✔️
2)1.55✔️
3)2.7✔️
4)-2.9✔️
5)0✔️
6)0✔️
【问题2我的解答】
1)1.454✔️
2)3✖️
3)10✖️
4)三级故障✖️
5)1.822✖️
6)一级故障✔️
【问题2标准答案】
1)1.454
2)2
3)9
4)二级故障
5)0
6)一级故障
【问题3标准答案】
缺陷:当三个通道的数据只差不超过0.5,而且两两之间的差值有两个相等时,存在取值问题。 如:测试数据为:2.0 2.2 2.4 这时,存在取值问题,是取2.1还是2.3?

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值