下半年下午 软件测评师 试题及答案与解析全国软考真题.docx
《下半年下午 软件测评师 试题及答案与解析全国软考真题.docx》由会员分享,可在线阅读,更多相关《下半年下午 软件测评师 试题及答案与解析全国软考真题.docx(11页珍藏版)》请在冰点文库上搜索。
下半年下午软件测评师试题及答案与解析全国软考真题
2017年下半年下午软件测评师考试试题-
案例分析-答案与解析
试题一(共15分)
【说明】
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C程序】
IntDoString(char*string){
char*argv[100];
Intargc=1;
while
(1){//1
while(*string&&*string!
='-')//2,3
String++;//4
if(!
*string)//5
break;//6
argv[argc]=string;
while(*string&&*string!
="&&*string!
='\n'&&*string!
='\t')//7,8,9,10
string++;//11
argc++;//12
}
return0;//13
}
【问题1】
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【参考答案】
*string&&*String!
=’-’T/F
!
*StringT/F
*string&&*String!
=’’&&*String!
=’\n’&&*String!
=’\t’T/F
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【参考答案】
V(g)=8
【问题3】
请给出问题2中控制流图的线性无关路径。
【参考答案】
1、2、5、6、13.
1、2、3、5、6、13
1、2、3、4、2、5、6、13
1、2、5、7、12、1...
1、2、5、7、8、12、1...
1、2、5、7、8、9、12、1...
1、2、5、7、8、9、10、12、1...
1、2、5、7、8、9、10、11、7、12、1...
试题二
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某银行B和某公司C发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表2-1所示。
此外,公司C的会员分为普通会员、超级会员和PASS会员三个级别,超级会员和PASS会员在刷卡时有额外积分奖励,奖励规则如表2-2所示。
银行B开发了一个程序来计算用户每次刷卡所累积的积分,程序的输入包括会员级别L、刷卡日期D和刷卡金额A,程序的输出为本次积分S。
其中,L为单个字母且大小写不敏感,D由程序直接获取系统日期,A为正浮点数最多保留两位小数,S为整数。
【问题1】(5分)
采用等价类划分法对该程序进行测试,等价类表如下表所示,请补充表2-3中空
(1)~(5)
【参考答案】
1:
P
2:
12月12日
3:
正浮点数带2位小数
4:
MSP以外的字母
5:
非正浮点数
【问题2】(9分)
根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空
(1)~(9)
【参考答案】
1:
1000
2:
500.25(500)
3:
3、6、8
4:
1月8日(其它日期)
5:
1(非字母)
6:
N/A
7:
K(MSP以外的单个字母)
8:
1、7、12
9:
500.12345(多于两位小数的正浮点数)
【问题3】(6分)
如果规定了单次刷卡的积分上限为20000(即S取值大于等于0且小于等于20000),则还需要针对S的取值补充一些测试用例。
假设采用等价类划分法和边界值分析法来补充用例,请补充表2-5、表2-6中的空
(1)~(6)。
【参考答案】
1:
S<0
2:
s>20000
3:
S=19999
4:
S=-1
5:
S=20001
6:
S=1
试题三
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某公司欲开发一套基于Web的通用共享单车系统。
该系统的主要功能如下:
1.商家注册、在线支付;后台业务员进行车辆管理与监控、查询统计、报表管理、价格设置、管理用户信息。
2.用户输入手机号并在取验证码后进行注册、点击用车后扫描并获取开锁密码、锁车(机械锁由用户点击结束用车)后3秒内显示计算的费用,用户确认后支付、查看显示时间与路线及其里程、预约用车、投诉。
【问题1】(6分)
采用性能测试工具在对系统性能测试时,用Apdex(应用性能指数)对用户使用共享单车的满意度进行量化,系统需要满足Apdex指数为0.90以上。
【参考答案】
Apdex量化时,对应用户满意度分为三个区间,通过响应时间数值T来划分,T值代表着用户对应用性能满意的响应时间界限或者说是"门槛"(Threshold)。
针对用户请求的响应时间,Apdex的用户满意度区间如下:
满意:
(0,T]让用户感到很愉快
容忍:
(T,4T]慢了一点,但还可以接受,继续这一应用过程
失望:
>4T,太慢了,受不了了,用户决定放弃这个应用
Apdex的计算如下:
Apdex=(小于T的样本数+T~4T的样本数/2)/总样本数
针对用户功能,本系统设定T=2秒,记录响应时间,统计样本数量,2秒以下记录数3000,2~8秒记录数1000,大于8秒500。
请计算本系统的Apdex指数,并说明本系统是否达到要求。
未达到要求。
因为Apdex=(3000+1000/2)/(3000+1000+500)=3500/4500=0.78<0.90.,所以未达到要求。
【问题2】(6分)
系统前端采用HTML5实现,已使用户可以通过不同的移动设备的浏览器进行访问。
设计兼用行测试矩阵,对系统浏览器兼容性进行测试。
【参考答案】
【问题3】(8分)
针对用户手机号码获取验证码进行注册的功能,设计4个测试用例。
(假设合法手机号码为11位数字,验证码为4位数字)
【参考答案】
用例1:
11位数字的手机号码,得到4位数字验证码
用例2:
小于11位数字的手机号码,无验证码
用例3:
大于11位数字的手机号码,无验证码
用例4:
11位有非数字的手机号码,无验证码
试题四
阅读下列问题,回答问题1到问题4,将解答写在答题纸的对应栏内。
【说明】
图4-1是某企业信息系统的一个类图,图中属性和方法前的"+"、"#"和"-"分别表示公有成员、保护成员和私有成员。
其中:
图4-1类图
(1)类Manager重新实现了类Employee的方法calSalary(),类Manager中的方法querySalary()继承了其父类Employee的方法querySalary()。
(2)创建类Employee的对象时,给其设置职位(position)、基本工资(basicSalary)等信息。
方法calSalary()根据个人的基本工资、当月工资天数(workDays)和奖金(bonus)等按特定规则计算员工工资。
(3)类Department中的方法statSalary中首先调用了该类的方法load(),获取本部门员工列表,然后调用了类Employee中的方法calSalary()。
现拟采用面向对象的方法进行测试。
【问题1】
图4-1所示的类图中,类manager和类Employee之间是什么关系?
该关系对测试的影响是什么?
【参考答案】
1、泛化关系;
2、继承的成员函数是否需要测试;对父类的测试是否能搬到子类上
【问题2】
(1)类Manager重新实现了类Employee的方法calSalary(),这是面向对象的什么机制?
是否需要重新测试该方法?
(2)类Manager中的方法querySalary()继承了其父类Employee的方法querySalary(),是否需要重新测试该方法?
【参考答案】
1、继承
2、需要重新测试,在子类中重新进行了定义,需要重新测试
3、不需要重新测试
【问题3】
(1)请结合题干说明中的描述,给出测试类Employee方法calSalary()时的测试序列。
(2)请给出类图4-1中各个类的测试顺序。
【参考答案】
先测试Employee类,再测试Manager类的calSalary函数
先测试Employeet类、然后Departmen类,最后测试Manager类
【问题4】
从面向对象多态特性考虑,测试方法statSalary()时应注意什么?
【参考答案】
只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑
试题五
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某飞行器供油阀控制软件通过控制左右两边的油箱BL、BR向左右发动机EL、ER供油,既要保证飞行器的安全飞行,又要保证飞行器的平衡,该软件主要完成的功能如下:
(1)无故障情况下,控制左油箱BL向左发动机EL供油,右油箱BR向右发动机ER供油,不上报故障;
(2)当左油箱BL故障时,控制右油箱BR分别向左、右发动机EL和ER供油,并上报二级故障一一左油箱故障;
(3)当右油箱BR故障时,控制左油箱BL分别向左、右发动机EL和ER供油,并上报二级故障——右油箱故障;
(4)当左发动机BL故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于50升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱BL还是右油箱BR向右发动机ER供油,并上报一级故障——左发动机故障;
(5)当右发动机ER故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于50升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱且还是右油箱BR向左发动机BL供油,井上报一级故障——右发动机故障;
(6)当一个油箱和一个发动机同时故障时,则无故障的油箱为无故障发动机供油,并上报一级故障——故障油箱和发动机所处位置;
(7)当两个油箱或两个发动机同时故障或存在更多故障时,则应进行双发断油控制,并上报特级故障——两侧油箱或两侧发动机故障;
(8)故障级别从低级到高级依次为二级故障、一级故障和特级故障,如果低级故障和高级故障同时发生,则只上报最高级别故障。
【问题1】(6分)
覆盖率是度量拥试完整性的一个手段,也是度量测试有效性的一个手段。
在嵌入式软件白盒测试过程中,通常以语句覆盖率、条件覆盖率和MC/DC覆盖率作为度量指标。
在实现第6条功能时,设计人员采用了下列算法:
if((BL==故障)&&(EL==故障))
{BR供油ER;BL断油;EL断油;}
if((BL==故障)&&(ER==故障))
{BR供油EL;BL断油;ER断油;}
if((BR==故障)&&(EL==故障))
{BL供油ER;BR断油;EL断油;}
if((BR=故障)&&(ER==故障))
{BL供油EL;BR断油;ER断油;}
请指出对上述算法达到100%语句覆盖、100%条件覆盖和100%MC/DC覆盖所需的最少测试用例数目,填写表5-1中的空
(1)~(3).
【参考答案】
(1)1
(2)2
(3)16
【问题2】(12分)
为了测试此软件功能,测试人员设计了表5-2所示的测试用例,请填写该表中的空
(1)~(12)。
【参考答案】
(1)BR
(2)BL
(3)BR
(4)BL
(5)100
(6)90
(7)断油
(8)BR
(9)BL
(10)BR
(11)故障
(12)特级故障
【问题3】
常见的黑盒测试的测试用例设计方法包括等价类划分、决策表、因果图、边界值分析等。
测试人员在针对本题设计测试时,使用哪种测试用例设计方法最恰当?
【参考答案】
决策表