而面向对象设计(OOD)采用"造型的观点",以OOA为基础归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象。OOD 归纳的类,可以是对象简单的延续,可以是不同对象的相同或相似的服务。由此可见,OOD不是在OOA上的另一思维方式的大动干戈,而是OOA的进一步细化和更高层的抽象。所以,OOD与OOA 的界限通常是难以严格区分的。OOD确定类和类结构不仅是满足当前需求分析的要求,更重要的是通过重新组合或加以适当的补充,能方便实现功能的重用和扩增,以不断适应用户的要求。因此,对OOD的测试,本文建议针对功能的实现和重用以及对OOA结果的拓展,从如下三方面考虑:
☆ 对认定的类的测试
☆ 对构造的类层次结构的测试
☆ 对类库的支持的测试
1 对认定的类的测试
OOD认定的类可以是OOA中认定的对象,也可以是对象所需要的服务的抽象,对象所具有的属性的抽象。认定的类原则上应该尽量基础性,这样才便于维护和重用。参考[4][5]中所提出的一些准则,测试认定的类:
1.1 是否含盖了OOA中所有认定的对象。
1.2 是否能体现OOA中定义的属性。
1.3 是否能实现OOA中定义的服务。
1.4 是否对应着一个含义明确的数据抽象。
1.5 是否尽可能少的依赖其他类。
1.6 类中的方法(C++:类的成员函数)是否单用途。
2 对构造的类层次结构的测试
为能充分发挥面向对象的继承共享特性,OOD的类层次结构,通常基于OOA中产生的分类结构的原则来组织,着重体现父类和子类间一般性和特殊性。两者概念上的差异,请参见[1]。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此,测试如下方面:
2.1 类层次结构是否含盖了所有定义的类。
2.2 是否能体现OOA中所定义的实例关联。
2.3 是否能实现OOA中所定义的消息关联。
2.4 子类是否具有父类没有的新特性。
文章来源于领测软件测试网 https://www.ltesting.net/