问答题 试题四(共20分) 阅读下列说明,回答问题1至问题5,将解答写在答题纸的对应栏内。 【说明】 图4-1是银行卡应用的部分类图,图中属性和操作前的“+”和“一”分别表示公有成员和私有成员。银行卡Account有两种类型,借记卡SavingAccount和信用卡CreditAccount 。
问答题 【问题1】(3分) 面向对象单元测试的主要对象是什么?
【正确答案】是针对程序的函数、过程或完成某以特定功能的程序块。
【答案解析】
问答题 【问题2】(4分) 在继承关系上,若某方法在测试父类时已经测试过,那么在什么情况下在子类中也需要测试?
【正确答案】1:继承类的成员函数在子类中做了改动 2:成员函数调用了改动过的成员函数的部分
【答案解析】
问答题 【问题3】(4分) 要测试方法deposit0时,还需要调用什么方法?给出测试序列。
【正确答案】getBalance() 先测试getBalance() 再测试deposit()
【答案解析】
问答题 【问题4】(6分) 方法withdraw在基类Account中定义,但在两个子类中有不同的实现。这是面向对象的什么机制?这种情况在测试时如何进行?
【正确答案】多态 只需要在原有的测试分析和基础上增加对测试用例中输入数据的类型的考虑;先测试基类,然后再分别依据输入数据设计不同的测试用例。
【答案解析】
问答题 【问题5】(3分) 给出类SavingAccount的最小测试序列。
【正确答案】先测试Account类,然后测试SavingAccount类
【答案解析】