您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 2017下半年软件评测师下午题答案
试题1(2017年下半年试题1)阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【C程序】IntDoString(char*string){char*argv[100];Intargc=1;while(1){//1while(*string&&*string!='-')//2,3String++;//4if(!*string)//5break;//6argv[argc]=string;while(*string&&*string!=&&*string!='\n'&&*string!='\t')//7,8,9,10string++;//11argc++;//12}return0;//13}【问题1】请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2】请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。【问题3】请给出问题2中控制流图的线性无关路径。试题分析问题解析:问题1需要找出判定覆盖所需的逻辑条件,这种主要从两种结构中查找,即条件结构和循环结构。题干代码中有条件为:while(*string&&*string!='-');if(!*string);while(*string&&*string!=&&*string!='\n'&&*string!='\t')满足问题1要求的条件为括号中的代码。即参考答案中的代码段。问题2需要绘制控制流图,此题代码中有多个循环,所以在绘制控制流图的时候,要注意走向,对于循环来说,真假都是从开始结点出发,只是若循环条件为真,则执行循环体,若循环条件为假,则结束循环,执行循环后面的代码。控制流图的效果图为参考答案中的图例。环路复杂度为8,可以数结点数和边数,通过公式边数-结点数+2求得;也可以数区域数,数区域数记得是封闭的区域数+1。问题3列出线性无关路径:此题能回答正确的关键在于问题2的控制流图是否画对。线性无关路径即不走与之前完全重复的路径。也就是走之前至少有一条没有走过的路径。试题答案(1)【问题1】(3分)*string&&*String!=’-’T/F!*StringT/F*string&&*String!=’’&&*String!=’\n’&&*String!=’\t’T/F【问题2】(8分)V(g)=8【问题3】(4分)1、2、5、6、13.1、2、3、5、6、131、2、3、4、2、5、6、131、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...试题2(2017年下半年试题2)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某银行B和某公司C发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表2-1所示。此外,公司C的会员分为普通会员、超级会员和PASS会员三个级别,超级会员和PASS会员在刷卡时有额外积分奖励,奖励规则如表2-2所示。表2-1积分规则刷卡日期积分每月9日、19日刷卡金额小数部分四舍五入后的2倍11月11日刷卡金额小数部分四舍五入后的6倍12月12日刷卡金额小数部分四舍五入后的4倍其他日期刷卡金额小数部分四舍五入表2-2额外积分奖励规则会员级别普通会员超级会员PASS会员级别代码MSP额外积分奖励0%100%200%银行B开发了一个程序来计算用户每次刷卡所累积的积分,程序的输入包括会员级别L、刷卡日期D和刷卡金额A,程序的输出为本次积分S。其中,L为单个字母且大小写不敏感,D由程序直接获取系统日期,A为正浮点数最多保留两位小数,S为整数。【问题1】(5分)采用等价类划分法对该程序进行测试,等价类表如下表所示,请补充表2-3中空(1)~(5)表2-3等价表输入条件有效等价类编号无效等价类编号会员等级LM1非字母9S2非单个字母10(1)3(4)11刷卡日期D每月9日、19日411月11日5(2)6其他日期7刷卡金额A(3)8非浮点数12(5)13多于两位小数的正浮点数14【问题2】(9分)根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空(1)~(9)表2-4测试用例编号输入覆盖等价类(编号)预期输出SLDA1M1月9日500.251,4,8(1)2S11月11日(2)2,5,860003P12月12日500(3)60004P(4)5003,7,815005(5)其他日期5009,7,8N/A6非单个字母其他日期50010,7,8(6)7(7)其他日期50011,7,8N/A8M其他日期非浮点数(8)N/A9M其他日期非正浮点数1,7,13N/A10M其他日期(9)1,7,14N/A【问题3】(6分)如果规定了单次刷卡的积分上限为20000(即S取值大于等于0且小于等于20000),则还需要针对S的取值补充一些测试用例。假设采用等价类划分法和边界值分析法来补充用例,请补充表2-5、表2-6中的空(1)~(6)。表2-5补充等价类编号等价类10=S=200002(1)3(2)表2-6边界值编号边界值1S=200002(3)3(4)4S=05(5)6(6)试题分析此题只提醒大家:倍数。要注意一下。不然,在回答问题2中的1,2小问,很麻烦。特定的值,是可以不同于参考答案的。只要符合题意,满足要求的都可以作为测试数据。只是在能写测试等价类的时候,尽量写这些,因为没有争议。而测试数据多种多类。试题答案(2)【问题1】(5分)1:P2:12月12日3:正浮点数带2位小数4:MSP以外的字母5:非正浮点数【问题2】(9分)1:10002:500.25(500)3:3、6、84:1月8日(其它日期)5:1(非字母)6:N/A7:K(MSP以外的单个字母)8:1、7、129:500.12345(多于两位小数的正浮点数)【问题3】(6分)1:S02:s200003:S=199994:S=-15:S=200016:S=1试题3(2017年下半年试题3)阅读下列说明,回答问题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】(6分)针对用户手机号码获取验证码进行注册的功能,设计4个测试用例。(假设合法手机号码为11位数字,验证码为4位数字)试题分析问题1需要注意:大于8秒500。这也是样本数量总数中的一部分。不能落掉。其它解析略。试题答案(3)问题1(6分)未达到要求。因为Apdex=(3000+1000/2)/(3000+1000+500)=3500/4500=0.780.90.,所以未达到要求。问题2(分)问题3(8分)用例1:11位数字的手机号码,得到4位数字验证码用例2:小于11位数字的手机号码,无验证码用例3:大于11位数字的手机号码,无验证码用例4:11位有非数字的手机号码,无验证码试题4(2017年下半年试题4)阅读下列问题,回答问题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之间是什么关系?该关系对测试的影响是什么?【问题2】(1)类Manager重新实现了类Employee的方法calSalary(),这是面向对象的什么机制?是否需要重新测试该方法?(2)类Manager中的方法querySalary()继承了其父类Employee的方法querySalary(),是否需要重新测试该方法?【问题3】(1)请结合题干说明中的描述,给出测试类Employee方法calSalary()时的测试序列。(2)请给出类图4-1中各个类的测试顺序。【问题4】从面向对象多态特性考虑,测试方法statSalary()时应注意什么?试题分析这一题是一道面向对象测试的题,跟往年的面向对象测试真题基本相同。故不作解析。试题答案(4)【问题1】(5分)泛化关系;继承的成员函数是否需要测试;对父类的测试是否能搬到子类上【问题2】(6分)继承需要重新测试,在子类中重新进行了定义,需要重新测试不需要重新测试【问题3】(6分)先测试Employee类,再测试Manager类的calSalary函数先测试Employeet类、然后Departmen类,最后测试Manager类【问题4】(3分)只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑试题5(2017年下半年试题5)阅读下列说明,回答问题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)当一个油箱和一个
本文标题:2017下半年软件评测师下午题答案
链接地址:https://www.777doc.com/doc-6109270 .html