【软考软件评测师】2017年下案例分析历年真题
2017下案例分析历年真题
-
- 【软考软件评测师】2017年下案例分析历年真题
-
- 2017下案例分析历年真题第一题(15分)
- 2017下案例分析历年真题第二题(20分)
- 2017下案例分析历年真题第三题(20分)
- 2017下案例分析历年真题第四题(20分)
- 2017下案例分析历年真题第二题(20分)
2017下案例分析历年真题第一题(15分)
阅读下列 C 程序,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【C程序】
Int DoString(char*string){
char *argv[100];
Int argc=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
}
return 0; //13
}
【问题1】
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】
请给出问题2中控制流图的线性无关路径。
【问题1我的解答】
*string等于¥0;
*string等于-;
*string等于空格;
*string等于¥n;
*string等于¥t;
1)*string不等于¥0且不等于-的时候;
2)*string等于-的时候;
3)等于¥0的时候;
4)*string不等于¥0且不等于空格,回车,制表符的时候;
5)*string等于¥0或者等于空格,回车,制表符的时候;
【问题1标准答案】
2017下案例分析历年真题第二题(20分)
某银行B和某公司C发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表2-1所示。此外,公司C的会员分为普通会员、超级会员和PASS会员三个级别,超级会员和PASS会员在刷卡时有额外积分奖励,奖励规则如表2-2所示。
【问题1我的解答】
1)P会员
2)12月12日
3)正浮点数
4)其他字母(三个字母以外)
5)负浮点数
【问题1标准答案】
1)P
2)12月12日
3)最多两位小数的正浮点数
4)除M/S/P之外的单个字母
5)非正的浮点数
【问题2我的解答】
1)1000??
2)857.14??
3)3,6,8??
4)其他日期??
5)非字母??
6)N/A??
7)三个字母外其他字母??
8)1,7,12??
9)多于两位小数的正浮点数??
【问题2标准答案】
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
【问题3我的解答】
1)S 2)S>20000??
3)19999??
4)1??
5)-1??
6)-20000??
【问题3标准答案】
1.S 2.S>20000
3.S=19999
4.S=20001
5.S=1
6.S=-1
【解析问题】
等价类划分法是将测试过程中的输入、输出、操作等相似内容分组,从每组中挑选具有代表性的内容作为测试用例测试,划分时分有效等价和无效等价来筛选。
边界值分析法是确认输入、输出的边界,然后取刚好等于、大于、小于边界的参数作为测试用例。
在编写等价类划分法的测试用例时,如果输入全部都来自有效等价类,则从每个有效等价类选取一个代表元素作为输入,如果要考虑无效等价类,则每次只选取一个无效等价类,其余输入都从有效等价类中选取。
等价类划分法的等价类表是把程序的输入域按规则划分为若干子集。
本题中L由多个输入值构成,并且需要对每个(或者每组)输入值分别处理,按规则可以划分为n个有效等价类(每个或者每组值确定一个有效等价类)和一个无效等价类(所有不允许输入值的集合)。
对L来说,分成3个有效等价类(L分别取M、S、P)和1个无效等价类(其他情况),而这个无效等价类又可以进一步细分为非字母、非单个字母以及除M/S/P之外其他字母。
对D来说,根据日期可以分为4个有效等价类,这个有效等价类可以进一步细分为每月9日、19日,11月11日,12月12日和其他日期。
本题中对A是规定了输入值集合必须满足的条件(即最多两位小数的正浮点数),根据规则可以划分为1个有效等价类(K是最多两位小数的正浮点数)和3个无效等价类(非浮点数,非正的浮点数,多于两位小数的正浮点数)。
2017下案例分析历年真题第三题(20分)
读下列说明,回答问题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指数,并说明本系统是否达到要求。
【问题2】(6分)
系统前端采用HTML5实现,已使用户可以通过不同的移动设备的浏览器进行访问。设计兼用行测试矩阵,对系统浏览器兼容性进行测试。
【问题3】(8分)
针对用户手机 码获取验证码进行注册的功能,设计4个测试用例。(假设合法手机 码为11位数字,验证码为4位数字)
【问题1我的解答】
Apdex = (小于T的样本数+T~4T 的样本数/2) /总样本数
(3000+1000)/2=3500;
3500/4500=78%
没有达到要求。
【问题1标准答案】
同上。
【问题2我的解答】
平台/浏览器 火狐 IE Edge
安卓手机
PC
黑莓手机
苹果手机
【问题2标准答案】
【问题1我的解答】
类Manager和类Employee之间的关系是继承,类Manager继承自类Employee。??
在测试类Manage的时候,需要测试继承自类Employee的方法和属性。??
【问题1标准答案】
继承关系。
若子类Manager重新实现父类Employee的方法或者子类的某方法中调用了自己实现的方法,需要重新进行测试。
题目给出三个类,类Employee、类Manager及类Department。本问题考查面向对象的基本概念。
类和类之间的关系主要有继承、关联和依赖三种关系,其中关联又包括一般关联、聚合和组合三种。其中,继承是指一个类直接使用另一个类的属性和方法,即子类具有父类的属性和方法。类Employee和类Manager之间是继承关系。
继承关系对面向对象测试的影响主要体现在两个方面:若子类的某方法继承了其父类,方法进行了修改,则需要进行测试;继承的方法没有修改,用父类的方法,但是该方法调用了子类修改过的其他方法时,也需要对该方法进行测试。
【问题2我的解答】
1)面向对象中的覆盖,需要重新测试该方法??
2)需要重新测试该方法??
【问题2标准答案】
1.多态;类Manager中的方法calSalaryO需要重新测试。
2.不需要。
【问题3我的解答】
1)先测试类Employee的方法在测试Manage类的方法
2)先测试类Employee再测试Manage类,最后测试Department类??
【问题3标准答案】
1.测试序列:
new Employee()—calWorkDays()—-setBonus()—calSalary()—querySalary()。
2.测试顺序:Employee—Manager—Department。
1.由题干说明,方法calSalary()根据个人的基本工资、当月工资天数(workDays)和奖金(bonus)等按特定规则计算工资,因此测试时需要先生成一个Employee对象,然后计算工作时间calWorkDays()和计算奖金setBonus(),才能计算工资calSalary(),最后查询工资queirySalary()以判断计算是否正确。其中,计算工作时间calWorkDays()和计算奖金setBonus()是顺序无关的。因此,测试序列:
new Employee()—calWorkDays()—setBonus()—calSalary()—querySalary()。或
new Employee()—setBonus()—calWorkDays()—calSalary()—query Salary()。
2.由类结构图可以容易看出,类Employee最先测试,因为测试类Manager和类Department都需要依赖该类;而测试类Department还需要依赖类Manager,因此类的测试顺序为Employee——Manager—Department。
【问题4标准答案】
测试方法statSalary()时,要同时考虑类Employee和类Manager的calSalary()。
2017下案例分析历年真题第二题(20分)
某飞行器供油阀控制软件通过控制左右两边的油箱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)4??
2)8??
3)16??
【问题1标准答案】
对于代码条件为:
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断油;}
是由(BL故障) (BR故障) ( ER故障) ( EL故障)四个条件组合而成的判断。
语句覆盖:
由于条件6约定,不可能同时4个条件都出现故障,所以,当一个出现故障的时候,会出现TT,TF,FT,FF的情况,所以需要4个语句才能完成语句覆盖。
条件覆盖:
由于条件6约定,不可能同时4个条件都出现故障,所以,当一个出现故障的时候,会出现TT,TF,FT,FF的情况,因此可以选项 TT,TF,FT,FF 和FF,FT,TF,TT两组测试用例。
判定的条件有两个,共四组:当一组中的条件都为真时,即 TT,TF,FT,FF,由于是逻辑与运算,要满足MCDC必须每一组都出现TT的情况,所以综合起来,一共需要4组测试用例

【问题2我的解答】
1)BR 右边油箱 ??
2)BL 左边油箱??
3)BR 右边油箱??
4)BL 左边油箱??
5)小于120整数??
6)90上下浮动60内??
7)断油??
8)BL左边油箱??
9)BL左边油箱??
10)BR右边油箱??
11)故障??
12)特级故障??
【问题2标准答案】
问题2的回答,要注意是的相差50L油的情况。即题干陈述中4和5的内容。
(4)当左发动机BL 故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于 50 升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱BL 还是右油箱 BR 向右发动机 ER 供油,并上 一级故障——左发动机故障;
(5)当右发动机ER故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于 50 升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱且还是右油箱 BR 向左发动机BL 供油,并上 一级故障——右发动机故障;
【问题3标准答案】
等价类划分。
软件测试人员在基于需求设计测试用例的过程中,通常需要使用一些黑盒测试方法,黑盒测试方法一般包括功能分解、等价类划分、边界值分析、判定表、因果图、随机测试、猜错法和正交试验法等。就本题而言,由于设计说明中是依据故障数目来进行说明的,从无故障、一个故障、两个故障到多个故障进行软件设计说明,所以采用以故障数目进行等价类划分来设计测试用例方法最恰当。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!