2017年11月 软件评测师 下午题之四
摘要:对于【软件评测师】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2017年11月 软件评测师 下午题】部分真题的详解,一起来看看吧~1、阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】下图是某企
1、阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】下图是某企业信息系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:(1)类Manager重新实现了类 Employee的方法 calSalary( ),类Manager中的方法querySalary( )继承了其父类Employee的方法querySalary( )。(2)创建类 Employee的对象时,给其设置职位(position)、基本工资(basicSalary)等信息。方法calSalary( ),根据个人的基本工资、当月工资天数(workDays)和奖金(bonus)等按特定规则计算员工工资。(3)类Department中的方法statSalary中首先调用了该类的方法load( ),获取本部门员工列表,然后调用了类 Employee中的方法calSalary( )。现拟采用面向对象的方法进行测试。【问题1】(5分)图4-1 所示的类图中,类manager 和类Employee之间是什么关系?该关系对测试的影响是什么?【问题2】(6分) 1.类Manager重新实现了类 Employee的方法calSalary( ),这是面向对象的什么机制?是否需要重新测试该方法?2.类Manager中的方法querySalary( )继承了其父类 Employee 的方法querySalary( ),是否需要重新测试该方法?【问题3】(6分)1.请结合题干说明中的描述,给出测试类Employee 方法calSalary( )时的测试序列。2.请给出类图中各个类的测试顺序。【问题4】(3分)从面向对象多态特性考虑,测试方法statSalary( )时应注意什么?
答案:
【问题1】答案:
1.泛化关系;
2.继承的成员函数是否需要测试;对父类的测试是否能用到子类上。
【问题2】答案:(1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;
(2)、不需要重新测试,因为子类继承了父类的方法,只要父类的该方法通过测试了即可。
【问题3】参考答案:1、测试序列:Employee-calWorkdays()-setBonus()-calSalary()-querySalary();
2、先测试Employee类,然后Manager类,最后测试Department类。
【问题4】参考答案:
在测试Department中的方法statSalary()时涉及到父类Employee、子类Manager中的方法calSalary( )方法,即需要分别对各类的calSalary()方法设计测试用例进行测试。
答题解析:
【问题1】解析:考察类图的泛化关系。
泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形的直线来表示。
对泛化关系有三个要求:
1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;
2、子类中除了与父类一致的信息以外,还包括额外的信息;
3、可以使用父类的实例的地方,也可以使用子类的实例;
【问题2】解析:该题考察面向对象的多态机制和继承机制。多态就是在使用父类的引用调用方法的时候,不是使用父类中的方法,而是父类指向的对象的方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般到特殊的过程。
【问题3】解析:第一问解析:题干中说明,方法calSalary()根据个人的基本工资,当月工资天数和奖金等按特定规则计算,因此需要先计算天数、奖金,才能计算工资,最后才能查询工资。
第二问解析:各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。题目中的继承关系,也就是泛化关系,Department类和基类是聚合关系。
只需要在原有的测试分析和基础上增加对测试用例中输入数据的类型的考虑;先测试基类,然后再分别依据输入数据设计不同的测试用例。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>