刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

   某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。

   图 4-1 是该模块的类图,图中属性和操作前的“+”、“#”和“-”分别表示公有成员、保护成员和私有成员。

其中:

(1)类Engineer表示普通维修工。

(2)类 studentEngineer 和 seniorEngineer 都重新实现了类 Engineer 的方法 calReward()。

(3)方法calReward()根据每个维修工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。

(4)方法getReward ()调用方法calReward ()获取工时工资并打印显示。

(5)类System中的方法statReward()中首先调用了该类的方法load(),获取本系统工程师列表,然后调用了类Engineer中的方法calReward()。

现拟釆用面向对象的方法进行测试。

【问题1】(4分)

(1)图4-1所示的类图中,类System和Engineer之间是什么关系?

(2)类seniorEngineer重新实现了类Engineer的方法calReward(),这是面向对象的什么机制?

【问题2】(6分)

类 seniorEngineer 中的方法 calReward()和类 studentEngineer 中的方法 getReward() 是否需要重新测试?

【问题3】(10分)

(1)请结合题干说明中的描述,给出测试类Engineer方法calReward()时的测试序列。

(2)请给出图4-1中各个类的测试顺序。

(3)从面向对象特性考虑,测试类System中方法statReward()时应注意什么?

使用微信搜索喵呜刷题,轻松应对考试!

答案:






【问题1】
(1)   关联关系;

(2)  多态机制;

【问题2】

类 seniorEngineer 中的方法 calReward()重写了,需要重新测试;

类 studentEngineer 中的方法 getReward()调用改动过的成员函数,需要重新测试;

【问题3】

  • 测试序列:Engineer( )—setWorktime( )—calReward( ) —getReward( ) ;

  • (2) 先测试Engineer类,然后studentEnginer和seniorEngineer类(这两个谁在前都可以),最后测试System类。

    (3)只需要在原有的测试分析和基础上增加对测试用例中输入数据的类型的考虑;先测试基类,然后再分别依据输入数据设计不同的测试用例。

解析:

【问题1】解析:
(1)题考察类图的关联关系,表示类与类之间的连接,它使得一个类知道另外一个类的属性和方法。关联可以使用单箭头表示单向关联,使用双箭头或者不使用箭头表示双向关联。
(2)题考察面向对象里多态的知识,多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
【问题2】解析:对父类中已经测试过的成员函数,有两种情况需要在子类中重新测试:
(1)继承的成员函数在子类中做了改动;
(2)成员函数调用了改动过的成员函数的部分; 本题中seniorEngineer的calReward()重新修改了,所以需要重新测试,而题干中明确强调getReward ()调用方法calReward (),所以也需要重新测试。
【问题3】解析: 
(1)方法calReward()根据每个维修工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。
(2)各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。
(3)只需要在原有的测试分析和基础上增加对测试用例中输入数据的类型的考虑;先测试基类,然后再分别依据输入数据设计不同的测试用例。
创作类型:
原创

本文链接:阅读下列说明,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】    某汽车维修公司的工时

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share