软件测试读书笔记(佟伟光著)8

2021-01-22  本文已影响0人  NJUST江波

面向对象软件测试

面向对象软件的特点及其对测试的影响

面向对象程序三大特征:封装性、继承性、多态性。
封装是指将对象的数据和操作包装在一起,从而使对象具有包含和隐藏信息(如内部数据和代码)的能力。
继承性是指基于现有的类(称为父类或基类)创建新类(称为子类或派生类)的机制。
类为方法提供不同的实现方式,但能够以相同名称调用的功能。
面向对象软件对测试的影响:增加了软件测试的难度;带来了传统软件设计技术所不存在的错误;或者使得传统软件测试中的重点不再显得突出;或者使原来测试经验认为和实践证明的次要方面成为了主要问题。面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可能。

面向对象软件测试的不同层次及其特点

面向对象软件的测试分为4个层次:方法测试、类测试、类簇测试、系统测试。
类测试:

对象交互的测试根据类的类型可以分为原始类测试,汇集类测试和协作类测试。原始类:简单的、独立的类;汇集类:汇集类在其说明中使用对象,但是实际上从不请求这些对象的服务。汇集类往往存放这些对象的引用(或指针),实现这些对象的实例的创建或删除。协作类测试:不是汇集类的非原始类。
汇集类测试:使用测试原始类的方法来测试汇集类;汇集类的测试目的主要保证那些实例被正确加入集合和被正确的从集合中移出,以及测试用例说明的集合对其容量有所限制。
协作类测试。
面向对象的集成测试的步骤:先进行静态测试,再进行动态测试。静态测试一般利用测试软件的”可逆性工程“功能,通过源程序得到类关系图和函数功能调用关系图,检测程序结构和程序的实现是否有缺陷、是否达到了设计要求。动态测试步骤:(1)先选定检测的类,仔细给出类的状态和相应的行为、类或成员函数间传递的消息、输入或输出的界定等。(2)确定覆盖标准。(3)利用结构关系图确定待测类的所有关联。(4)根据程序中类的对象构造测试用例,确认使用什么输入激发类的状态、使用类的服务和期望产生什么行为等。
面向对象的集成测试常用的测试技术:抽样测试;正交阵列测试。

面向对象的系统测试

与传统的软件测试无区别。

面向对象软件测试模型

面向对象的开发模型将开发分为面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)3个阶段。因此面向对象的软件测试分为面向对象分析的测试、面向对象设计的测试和面向对象编程的测试。

面向对象分析的测试(OOA Test)

面向对象分析(OOA):把E-R图和语义网络模型(即信息造型中的概念)与面向对象程序设计语言中的重要概念结合在一起而形成的分析方法,最后得到问题空间的图表的形式描述。OOA的结果为后面阶段类的选定和实现、类层次结构的组织和实现提供平台。OOA的测试重点在其完整性和冗余性。
OOA阶段的测试分为五个方面:(1)对认定的对象的测试(2)对认定的结构的测试(3)对认定的主题的测试(4)对定义的属性和实例关联的测试(5) 对定义的服务和消息关联的测试。

面向对象设计的测试(OOD Test)

OOD是对OOA的进一步细化和更高层的抽象。OOD通过对类或结构的重新组合或适当的补充,以方便实现功能的重用和扩增,不断适应用户的要求。OOD阶段的的测试分为3个方面:(1) 对认定的类的测试(2)对构造的类层次结构的测试(3)对类库的支持的测试。

面向对象编程的测试(OOP Test)

面向对象编程的测试主要集中两个方面:数据成员是否满足数据封装的要求?类是否实现了要求的功能?

上一篇 下一篇

猜你喜欢

热点阅读