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

简答题

阅读下列说明,回答问题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,关联关系在类图中表示两个类之间的连接,System类和Engineer类之间存在这种关系,因为System类通过继承Engineer类来实现其功能。多态性是面向对象的一个重要特性,允许父对象根据当前赋值的子对象的特性以不同的方式运作。

对于问题2,当父类中的成员函数在子类中重新实现或调用已经改变的成员函数时,需要在子类中重新进行测试。在本题中,seniorEngineer的calReward()已经重新实现,因此需要重新测试。同时,因为studentEngineer的getReward()调用了calReward(),也需要重新测试。

对于问题3,测试序列应该按照对象创建、设置属性、调用方法进行。测试顺序上,应先测试基础类,再测试派生类,最后测试组合使用的类。在测试System类的statReward()方法时,除了原有的测试分析和基础,还需要特别注意输入数据的类型,并根据输入数据设计不同的测试用例进行测试。

创作类型:
原创

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

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

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

分享考题
share