itgle.com

下列关于面向对象软件测试的说法中,正确的是______。A.在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试B.在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试C.假设类B是类A的子类,如果类A已进行了充分的测试,在测试类B时不必测试任何类B继承类A的成员方法D.对于一棵继承树上的多个类,只有处于叶结点的类需要测试

题目

下列关于面向对象软件测试的说法中,正确的是______。

A.在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试

B.在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试

C.假设类B是类A的子类,如果类A已进行了充分的测试,在测试类B时不必测试任何类B继承类A的成员方法

D.对于一棵继承树上的多个类,只有处于叶结点的类需要测试


相似考题
更多“下列关于面向对象软件测试的说法中,正确的是______。A.在测试一个类时,只要对该类的每个成员方法 ”相关问题
  • 第1题:

    下列关于面向对象软件测试的说法中,正确的是 (6) 。

    A.在测试一个类时,只要对该类的每个成员方式都进行充分的测试就完成了对该类充分的测试

    B.存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试

    C.假设类B是类A的子类,如果类A已经进行了充分的测试,那么在测试类B时不必测试任务类B继承自类A的成员方法

    D.对于一棵继承树上的多个类,只有处于叶子节点的类需要测试


    正确答案:B
    本题考试软件测试方面的知识。存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试。而其它选项都不正确。

  • 第2题:

    以下关于面向对象软件测试的说法中,正确的是______。

    A.面向对象软件的白盒测试不能不加改变地照搬传统软件的白盒测试准则

    B.对于一个类的测试,一个测试用例只能包含对该类的一个方法的一次调用

    C.面向对象软件测试不考虑对一个类中的单个方法的测试

    D.面向对象软件测试不必考虑对继承关系的测试


    正确答案:A
    解析:面向对象软件开发与传统的结构化软件开发在分析和设计的视角、系统开发的过程和工作制品的组织和表示等方面都有很大不同,因此在测试方面也有其自己的特点,所以面向对象软件的白盒测试不能简单的、不加改变的照搬传统软件的白盒测试准则,所以A正确。面向对象软件具有封装、继承和多态三个特点,这些特点都可能为面向对象软件测试带来困难,面向对象要考虑继承关系和对类中单个方法的测试这是显然的,由于多态的特点,对一个类的测试,一个测试用例包含对该类几个方法的多次调用都是可能的。

  • 第3题:

    下列关于面向对象软件测试的说法中,正确的是()。

    A. 在测试一个类时,只要对该类的每个成员方式都进行充分的测试就完成了对该类充分的测试
    B. 存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试
    C. 假设类 B 是类 A 的子类,如果类 A 已经进行了充分的测试,那么在测试类 B 时不必测试 任务类 B 继承自类 A 的成员方法
    D. 对于一棵继承树上的多个类,只有处于叶子节点的类需要测试

    答案:B
    解析:

  • 第4题:

    以下关于面向对象软件测试的叙述中,正确的是()。

    A.在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试

    B.存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试

    C.假设类B是类A的子类,如果类A已经进行了充分的测试,那么在测试类B时不必测试任何类B继承自类A的成员方法

    D.对于一棵继承树上的多个类,只有处于叶子节点的类需要测试


    正确答案:B
    本题考查面向对象的软件测试,与传统的结构化系统相比,面向对象系统具有三个明显特征,即封装、继承性与多态性。封装性决定了面向对象系统的测试必须考虑到信息隐蔽原则对测试的影响,以及对象状态与类的测试序列,因此在测试一个类时,仅对该类的每个方法进行测试是不够的;继承性决定了面向对象系统的测试必须考虑到继承对测试充分性的影响,以及误用引起的错误;多态性决定了面向对象系统的测试必须考虑到动态绑定对测试充分性的影响、抽象类的测试以及误用对测试的影响。

  • 第5题:

    以下关于面向对象软件测试的说法中,正确的是______。

    A.面向对象软件只能采用白盒测试,不能采用黑盒测试

    B.测试一个类时,该类成员方法的任何一个消息序列都是合理的测试用例

    C.若类B是类A的子类,针对类B的测试用例可以包含对类A的成员方法的调用

    D.等价类划分是一种类树层次的测试技术


    正确答案:C
    解析:在面向对象中,进行系统测试时,通常不关心软件各个实体的实现细节和实体间的连接细节。因此,系统测试主要是黑盒测试,A说法不对。
      在面向对象测试中,成员方法对成员变量有或多或少的依赖,成员方法的许多功能需要在特定的实例状态下才能执行。因此,在测试面向对象软件时,不能够简单地对每个类的成员方法进行测试,在调用任何一个成员方法之前必须保证相应的实例处于该成员方法的预期工作状态。也就是说,为了测试一个成员方法,需要在调用该方法前调用一系列其他方法以使得相应的实例达到合适的状态。换句话说,由于每个测试用例不仅仅调用一个成员方法,而是对整个类进行测试的一个方法调用序列。因此,在设计类的测试用例时,仅仅考虑成员方法的输入参数是不够的,还要考虑如何设计调用序列。有些测试序列会在某些成员方法执行时因为不能满足该方法正常执行的前提条件而导致此方法处于不正常的工作状态,这些测试序列是不合理的测试序列,因此选项B说法不正确。
      因为类B继承类A,合理的使用继承时类B的实例应该也是类A的实例,对类B的实例的测试应该已经包括其作为类A例的测试,C说法正确。
      等价类划分是一种方法层次的测试,而不是类树层次的测试技术,D错误。