1.3 是否能实现OOA中定义的服务。
1.4 是否对应着一个含义明确的数据抽象。
1.5 是否尽可能少的依赖其他类。
1.6 类中的方法(C++:类的成员函数)是否单用途。
2 对构造的类层次结构的测试
为能充分发挥面向对象的继承共享特性,OOD的类层次结构,通常基于OOA中产生的分类结构的原则来组织,着重体现父类和子类间一般性和特殊性。两者概念上的差异。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此,测试如下方面:
2.1 类层次结构是否含盖了所有定义的类。
2.2 是否能体现OOA中所定义的实例关联。
2.3 是否能实现OOA中所定义的消息关联。
2.4 子类是否具有父类没有的新特性。
2.5 子类间的共同特性是否完全在父类中得以体现。
3 对类库支持的测试
对类库的支持虽然也属于类层次结构的组织问题,但其强调的重点是再次软件开发的重用。由于它并不直接影响当前软件的开发和功能实现,因此,将其单独提出来测试,也可作为对高质量类层次结构的评估。拟订测试点如下:
3.1 一组子类中关于某种含义相同或基本相同的操作,是否有相同的接口(包括名字和参数表)。
3.2 类中方法(C++:类的成员函数)功能是否较单纯,相应的代码行是否较少。
3.3 类的层次结构是否是深度大,宽度小。
五 面向对象编程的测试(OOP Test)
典型的面向对象程序具有继承、封装和多态的新特性,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,外界只能通过被提供的操作来访问或修改数据,这样降低了数据被任意修改和读写的可能性,降低了传统程序中对数据非法操作的测试。继承是面向对象程序的重要特点,继承使得代码的重用率提高,同时也使错误传播的概率提高。继承使得传统测试遇见了这样一个难题:对继承的代码究竟应该怎样测试?(参见面向对象单元测试)。多态使得面向对象程序对外呈现出强大的处理能力,但同时却使得程序内"同一"函数的行为复杂化,测试时不得不考虑不同类型具体执行的代码和产生的行为。
文章来源于领测软件测试网 https://www.ltesting.net/