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

一、阅读下列C程序,回答问题1至问题3。

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

buf_c[i]<7||buf_c[i]>14;i>=32;
buf_len>512;buf_len<=512
buf_len==0;buf_len!=0
i<total_bytes;i>=total_bytes
buf_c[i]==’\0’;buf_c[i]!=’\0’
buf_c[i]<7||buf_c[i]>14;buf_c[i]>=7&&buf_c[i]<=14
i>=32;i<32判定覆盖:设计足够的测试用例,使得使程序中的每个判定至少都获得一次“真值”或“假值”。又称分支覆盖:使程序中的每一个取“真”分支和取“假”分支至少经历一次
本题中涉及到判定的点的条件项分别为:buf_len>512;buf_len==0;i<total_bytes;buf_c[i]==’\0’;buf_c[i]<7||buf_c[i]>14;i>=32;
buf_len>512;buf_len<=512
buf_len==0;buf_len!=0
i<total_bytes;i>=total_bytes
buf_c[i]==’\0’;buf_c[i]!=’\0’
buf_c[i]<7||buf_c[i]>14;buf_c[i]>=7&&buf_c[i]<=14
i>=32;i<32

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


V(g)=8

控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:

本题由于在//8 //12后都存在break语句,导致执行//8 //12后程序结构会发生改变。
控制流程图的环路复杂性 V(G)等于:
(1)控制流程图中的区域个数。
(2)边数-结点数+2。
(3)判定数+1。
V(g)=8

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


1)1、2、4、5、13
2)1、3、4、5、13
3)1、3、4、6、13 (1、2、4、6、13)
4)1、3、4、6、7、8、13 (1、2、4、6、7、8、13)
5)1、3、4、6、7、9、11、12、13 (1、2、4、6、7、9、11、12、13)
6)1、3、4、6、7、9、10、11、12、13 (1、2、4、6、7、9、10、11、12、13)
7)1、3、4、6、7、9、10、6… (1、2、4、6、7、9、10、6…)
8)1、3、4、6、7、9、10、11、6… (1、2、4、6、7、9、10、11、6…)
或者与之等价的答案

线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:
本题由于主干有分支,所以线性无关路径可能有多种组合。

二、阅读下列说明,回答问题1至问题3。
【说明】
某航空公司进行促销活动,会员在指定日明范围内搭乘航班将获得定奖励,奖励分为4个档次,由乘机次数和点数共同决定,如表2-1所示。其中点数果票面价格和购票渠道有关,规则如表2-2所示。

航空公司开发了一个程序来计算会员在该促销活动后的奖励,程序的输入包括会员在活动期间的乘机次数C、官网购票金额A (单位:元) 和手机客户端购票金额B (单位:元),程序的输出为本次活动奖励档次L。其中,C、A、B为非负整数,L为0~5之间的整数(0表示无奖励)。

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

(1)非负整数
(2)4
(3)0
(4)负整数

划分等价类的6条原则:
(1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
(3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
(4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
(5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
(6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则再将该等价类进一步地划分为更小的等价类
题干中明确:C、A、B为非负整数,结合乘机次数的无效等价了,A、B的有效等价类(1)处应该填写非负整数
题干中明确:C、A、B为非负整数,L为0~5之间的整数(结合题干分析,应该是0~4之间整数),而且每一种是单独处理的,再结合问题【2】的测试用例表的测试编号1和4,所以,(2)(3)应该填写4、0
题干中明确:C、A、B为非负整数,结合前面两个无效等价,(4)处应该填写负整数

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

(1)1、2、3、8
(2)0
(3)20(大于等于20的等价答案)
(4)15000(大于等于15000的等价答案)
(5)10(大于等于10且小于15的等价答案)
(6)7000(大于等于15000的等价答案)
(7)1、2、3、7
(8)1.1(非整数的等价答案)
(9)N/A

测试编号1:依据题干含义,当C、A、B全为零的时候,应该输出为0,也就是覆盖1,2,3,8等有效等价类
测试编号2:覆盖1、2、3、4等价类输出为1,且A为20000/100=200点,所以乘机次数应该大于等于20次
测试编号3:覆盖1、2、3、5等价类输出为2,且乘机次数为15,所以点数应该为大于等于150点的数值,所A应该大于等于15000的数值
测试编号4:覆盖1、2、3、6等价类输出为3,且A为10000/100=100点,所以乘机次数应该大于等于10且小于15
测试编号5:C为7、B为0、预期输出为4,所以乘机点数应该大于等于70点,所以A应为大于等于7000的数值,覆盖 1、2、3、7等价类
测试编号6:覆盖9、2、3,即C为非整数
测试编号7:覆盖10、2、3,即应为无效输入,没有对应的输出 即N/A

问题:2.3   (2分)
对于本案例的黑盒测试来说,以上测试方法有哪些不足?

1)无法体现出C、A/B之间的制约关系,比如当满足A/B(转换后对应的点数满足),但不满足C(乘机次数)的情况
2)没有考虑手机端的情况,题干中B的数值都为0

本题中由于存在多条件的制约情况,如输出1时,需要乘机次数C和点数A/B都符合特定的要求,无法很好的体现出条件之间的制约情况,比如点数符合对应档次要求,但乘机次数未达到要求的情况;另外测试时没有对手机端进行测试

三、阅读下列说明,回答问题1至问题3。
【说明】
某公司欲开发一款二手车物流系统,以有效提升物流成交效率。该系统的主要功能是:
(1) 订单管理:帮买顾问看到有买车线索后,会打电话询问买家是不是需要物流,若需要,帮买顾问就将这个线索发起为订单,帮助买家来找承运商。
(2)线路管理与推荐:对承运商的线路进行管理。根据运输方式的不同,线路分为三种,即包车线路、固定线路、竞价体系,其中包车线路和固定线路是合约制。接入订单系统会根据订单的内容选择合适的承运商。即:有新订单时,若符合固定线路和包车线路,系统自动分配给合约承运商;若不符合合约,系统将订单需求信息推送给各承运商,承运商对订单进行竞拍出价。
(3)合约管理:根据公司与承运商确定的合约,对合约内容进行设置。
(4)基础信息管理:包括帮买顾问(这部分缺失)

问题:3.1   (6分)
系统前端APP需支持不同品牌的不同系统平台,设计兼容性测试矩阵,以对系统的兼容性进行测试。

题干中明确要求APP是针对不同品牌的不同系统,也就是一个品牌会涉及多种不同的系统,同时需要测试多种品牌,所以在设计兼容矩阵的时候,应该为:

问题:3.2   (8分)
承运商进行竞价时,前端需提交竞拍价格(整数, 单位:元)数和可接受浮动比例(整数),针对这一功能设计4个测试用例。

要求设计 竞拍价(整数)、可接受的浮动比例(整数)设计4个测试用例,
50000,1(功能正常)
50000.1,1(竞拍价输入异常,非整数)
50000,1.1(可接受的浮动比例异常,非整数)
50000,--(SQL注入式攻击,或Xss攻击测试用例任选一个)

问题:3.3   (6分)
承运商竞拍部分的性能要求最高。采用性能测试工具在以系统竞拍功能为主进行性能测试时,采用Apdex (应用性能指数)对用户使用该系统的性能满意度进行度量,系统需要满足Apdex指数为0.9以上。测试数据如表3-1所示,请计算本系统的Apdex指数,并说明本系统是否达到要求。

Apdex 定义了应用响应时间的最优门槛为 T,另外根据应用响应时间结合 T 定义了三种不同的性能表现:
Satisfied(满意):应用响应时间低于或等于 T(T 由性能评估人员根据预期性能要求确定),比如 T 为 1.5s,则一个耗时 1s 的响应结果则可以认为是 satisfied 的。
Tolerating(可容忍):应用响应时间大于 T,但同时小于或等于 4T。假设应用设定的 T 值为 1s,则 4 * 1 = 4 秒极为应用响应时间的容忍上限。
Frustrated(烦躁期):应用响应时间大于 4T
Apdext= (Satisfied Count + Tolerating Count / 2) / Total Samples
本题为:(185+20/2)/(185+20+10)=0.9070 >=0.9 所以符合要求

四、阅读下列说明,回答问题1至问题3。
【说明】
某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。
图4-1是该模块的类图,图中属性和操作前的“+”、“#”和“-”分别表示公有成员、保护成员和私有成员。

其中:
(1) 类Engineer表示普通维修工。
(2)类studentEngineer和seniorEngineer都重新实现了类Engineer的方法calReward () 。
(3)方法calReward () 根据每个维修工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。
(4)方法getReward () 调用方法calReward () 获取工时工资并打印显示。
(5) 类Svstem中的方法statReward () 中首先调用了该类的方法load (),获取本系统工程师列表,然后调用了类Engineer中的方法calReward () 。现拟采用面向对象的方法进行测试。

问题:4.1   (4分)
(1)图4-1所示的类图中,类System和Engineer之间是什么关系?
(2)类seniorEngineer重 新实现了类Engineer的方法calReward (),这是面向对象的什么机制?

(1)关联关系
(2)多态机制

问题:4.2   (6分)
类seniorEngineer中的方法calReward () 和类stud entEngineer中的方法getReward ()是否需要重新测试?

对父类中已经测试过的成员函数,有两种情况需要在子类中重新测试:(1)继承的成员函数在子类中做了改动;(2)成员函数调用了改动过的成员函数的部分。
本题中seniorEngineer中的方法calReWard()重写了,需要重新测试;
题干中(说明4)明确了getReward()方法要调用calReward()方法,而calReward()是重写了的,所以studentEngineer中的方法getReward()属于调用了改动过的成员函数,需要重新测试

问题:4.3   (10分)
(1)请结合题干说明中的描述,给出测试类Engineer方法calReward () 时的测试序列。
(2)请给出图4-1中各个类的测试顺序。
(3)从面向对象特性考虑,测试类System中方法statReward () 时应注意什么?

(1)依据说明3中的描述,再结合本题中时薪(hourSalary)是属性,所测试序列如下:
Engineer()-setWorkTime()-calReward()-getReward()(注意本题时薪属于属性,不是方法/函数,后面getReward()可以不写)
(2)由于senioEngineer和studentEngineer是Engineer的子类,sysytem要调用Engineer中的方法,所以类的测试顺序为:Engineer-seniorEngineer-studentEngineer-system(或者Engineer-studentEngineer -seniorEngineer -system)
(3)在测试System中statReward()方法时需要基类Engineer、子类studentEngineer、seniorEngineer中的calReward()方法,即需要分别对各类的calReward()方法设计测试用例进行测试。

五、阅读下列说明,回答问题1至问题3。
【说明】
在某嵌入式智能服务机器人的软件设计中,为了更好地记录机器人的个体信息和机器人的工作信息,为智能服务机器人设计了信息数据库。数据库主要完成收集智能服务机器人反馈信息的作用,记录所有机器人的所有工作记录,以方便使用者对机器人的管理和对机器人状态的掌握,并且在机器人发生运行故障时,可以根据数据库存储的信息分析产生故障的原因。数据库收集智能服务机器人反馈信息的流程如下:
服务器端接收反馈信息。
(1)第一次解析判断反馈信息类型是否正确,若正确执行(2),否则执行(3);
(2)第二次解析判断反馈信息内容是否正确,若正确执行(4),否则执行(3);
(3)调用错误信息处理函数后执行(4) ;
(4)将反馈信息存入数据库。

问题:5.1    (6分)
在本软件测试过程中,测试人员为了设计测试用例,根据题目中的说明,画出了机器人反馈信息收集软件流程图,如图5.1所示

请在下列选项中,为图5.1中的空(1) ~ (3)选择正确的描述内容。(1) 处对应_____ (2)处对应_____,(3)处对应_____
(1) A.反馈格式是否正确 B.反馈长度是否正确
C.反馈类型是否正确 D.反馈内容是否正确
(2) A.标记错误信息 B.错误信息处理
C.错误信息纠正 D.错误信息报告
(3) A.信息存入内存 B.信息存入文件
C.信息存入数据库 D.倍息存入软件

(1)D
(2)B
(3)C

依据题干说明(1)(2)(3)(4)的描述,(1)处应该为:判定反馈内容是否正确;(2)处应该为:执行错误信息处理函数;(3)信息存入数据库

问题:5.2    (6分)
软件的结构覆盖率是度量测试完整性的一种手段。也是度量测试有效性的一种手段,在帐入式软件白盒测试过程中。通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。
在实现题目说明中第(1) 、(2) 条功能时,设计人员采用了下列算法:

请指出对上述算法达到100%语句覆盖、100%分支覆盖和100%MC/DC覆盖所需的最少测试用例数目

(1)3
(2)3
(3)4

语句覆盖(SC):设计足够的测试用例,使得使被测试程序中每条语句至少执行一次。
判定覆盖(DC):设计足够的测试用例,使得使程序中的每个判定至少都获得一次“真值”或“假值”;又称分支覆盖:使程序中的每一个取“真”分支和取“假”分支至少经历一次。
修正判定条件覆盖(MCDC):设计足够的测试用例,使得每一程序模块的入口和出口点都要考虑至少被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;程序的判定被分解为通过逻辑操作符(and or)连接的bool条件,每个条件判定的结果值是独立的。
本题中是两个if…else…的嵌套结构,
语句覆盖和判定覆盖:当第1层if为真时就不会覆盖假,,所以假部分需要一个测试用例覆盖,,,当第1层if判定为真时可以覆盖第2层if判定为真的结构或者第2层if判定为假的结构,所以当要覆盖第2层判定,需要2个测试用例,,所以综合起来至少需要3个测试用例来达到语句覆盖的要求和判定覆盖的要求
MC/DC覆盖:
由于是嵌套结构,满足第一个判定的测试用例为:(TT)(FT)(TF);第2个判定为T,F,,由于第一个判定为T后会涉及到第2个判定,所以综合起来需要4个测试用例,如下图:

问题:5.3   (8分)
为了测试软件功能,测试人员设计了表5- -2所示的测试用例,请填写该表中的空(1) ~ (4)。

(1)报告反馈类型不同
(2)报告信息内容不正确
(3)错误的
(4)典型类型3信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

&#xff08;共15分&#xff09;一、阅读下列C程序&#xff0c;回答问题1至问题3,将解答填入答题纸的对应栏内。问题&#xff1a;1.1 &#xff08;3分&#xff09;请针对上述C程序给出满足100%DC&#xff08;判定覆盖&#xff09;所需的逻辑条件。本问题考查白盒测试用例设计…

opencv3-Mat对象

我的实践&#xff1a; #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; int main() {//加载图像Mat src imread("E:\\vs2015\\opencvstudy\\2.jpg", 1);if (!src.data){cout <&…

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

一、【C程序】问题&#xff1a;1.1 &#xff08;3分&#xff09;请针对上述C程序给出满足100%DC&#xff08;判定覆盖&#xff09;所需的逻辑条件。本题考查白盒测试法及应用。本问题考查白盒测试用例设计方法中的判定覆盖法。判定覆盖指设计足够的测试用例&#xff0c;使得被…

opencv4-图像操作

这里Vex3f 也可以是Vec3b #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std;//读写图像&#xff0c; //读写像素&#xff0c; //修改像素值 int main() {Mat src imread("E:\\vs2015\\open…

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

一、阅读下列C程序&#xff0c;回答问题1至问题3&#xff0c;将解答填入答题纸的对应栏内。【C程序】问题&#xff1a;1.1 请针对上述C程序给出满足100%DC&#xff08;判定覆盖&#xff09;所需的逻辑条件本问题考查白盒测试用例设计方法中的判定覆盖法。判定覆盖指设计足够的…

opencv5-图像混合

代表一幅图像。代表权重&#xff0c;取值范围为0~1。代表另一幅图像 对图像的每一个像素进行此操作。得到混合后图像 我的实践&#xff1a; #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; …

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

1、以下关于信息和数据的描述中,错误的是( B)。 A. 通常从数据中可以提取信息 B. 信息和数据都由数字组成 C. 信息是抽象的、数据是具体的 D. 客观事物中都蕴涵着信息信息反映了客观事物的运动状态和方式&#xff0c;数据是信息的物理形式。信息是抽象的&#xff0c;数…

opencv6-调整图像亮度和对比度

一、理论 亮度&#xff1a;0~255之间取大一些的值 对比度&#xff1a;即让R G B 分量的差值增大 二、代码演示 #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; int main() {Mat src imread…

Jmeter之测试片段和模块控制器应用

一、测试片段是什么&#xff1f;应用在控制器上的一个特殊线程组&#xff0c;与线程组处于同一层级&#xff0c;必须与Include Controller或模块控制器一起使用才被执行。被引用的逻辑控制器、测试片段可以为禁用状态&#xff0c;被引用后仍然会被执行二、应用场景1、当jmeter脚…

opencv7-绘制形状和文字

一、理论 二、代码演示 #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace cv; using namespace std; Mat bgImage; const char* drawdemo_win "draw shapes and text demo"; void MyLines(); void MyRectang…

上海居住证积分办理攻略,太容易了,快来收藏!!!

历时1个月零2天&#xff0c;上海居住证积分终于办下来了&#xff0c;太激动了&#xff0c;我整理了积分办理攻略&#xff0c;准备办积分的朋友&#xff0c;大家快来围观参考交流&#xff01;&#xff01;&#xff01;一、办理居住证二、模拟打分根据自己真实情况填写并打分&…

opencv8-图像模糊

为掩膜 表示图像在&#xff08;i,j&#xff09;位置的像素 代表图像经过掩膜操作 双边模糊&#xff1a;&#xff08;基于高斯模糊&#xff09; #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace std; using namespace c…

上海人社APP历年社保查询攻略

随时随地查社保&#xff0c;太方便了&#xff0c;快来收藏起来&#xff01;&#xff01;&#xff01;1、苹果商店或安卓商店下载【上海人社app】2、账号登录&#xff0c;账号&#xff1a;身份证号码 密码&#xff1a;去社保中心开通3、首页&#xff0c;点击CA证书管理4、点击【…

opencv9-膨胀和腐蚀

膨胀是求最大值。即白色增多 腐蚀是求最小值&#xff0c;即黑色增多 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; //模糊原理 Mat src; Mat…

上海个人所得税缴费明细查询攻略

途径一&#xff1a;带本人身份证至上海市各区税务局拉取本人纳税清单明细&#xff1b;途径二&#xff1a;查2018年及之前&#xff1a;1、登录上海市电子税务局&#xff1a;http://shanghai.chinatax.gov.cn/2、>我要办税&#xff0c;自然人登录3、>证明开具4、>个人所…

opencv10-形态学操作

主要针对二值图像和灰度图 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {Mat src imread("E:\\vs2015\\opencvstudy\\1.jp…

8年测试经验,用例设计竟然不知道状态图法?

作为测试人&#xff0c;我们平时比较常用的软件测试测试方法有边界值、等价类划分、错误推测法、因果图、场景法等&#xff0c;如果提到状态图法&#xff0c;可能很多人都很陌生&#xff0c;今天我们就来一起认识下状态图法。状态图通常在被测试软件状态比较多的情况下使用&…

opencv12-图像金字塔

上采样&#xff1a;图像分辨率增加 下采样&#xff1a;图像分辨率降低 #include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {Mat src …

Fiddler Everywhere全平台抓包调试工具安装和使用(一)

Fiddler Everywhere是可以运行在任何浏览器&#xff0c;任何系统、跨平台&#xff08;Windows、Mac、Linux&#xff09;的一款Web调试代理工具。它记录了计算机和Internet之间的所有HTTP&#xff08;S&#xff09;通信&#xff0c;可以检查和编辑通信&#xff0c;并Mock请求以及…

移动端iphone抓包调试神器—Stream安装和使用(一)

之前已经给大家分享了很多抓包工具的文章了&#xff0c;如果觉得有用&#xff0c;记得分享&#xff01;&#xff01;&#xff01;Fiddler抓取APP请求&#xff08;环境搭建&#xff09;之mama再也不用担心抓不到包了Fiddler抓包神器带你遨游网络&#xff0c;叱咤风云&#xff0c…