单元测试不再孤立的测试单个操作(这是传统的单元 测试的视角),而是将操作作为类的一部分。例如: execute由基类定义并被 命令 组子类继承,每个子类的 execute( △ execute被应用于每个子类定义 的私有属性和操作的语境内, 拷贝命令粘贴命令]因此,仅在基类内测试 execute execute( teo是无效的,应该在每个子类的 语境内测试 execute 单元测试若用于测试不发生请求的类(如“栈”类,其 中操作有:pop(, push, empty()时,同样要设计驱动程 序,封装在一个测试类(包)中,测试类负责运行测试用例 并给出结果,每个测试用例用一个操作名表示;单元测试如 果测试发生请求的类,则需要设计桩程序,封装在桩类中 安交通大学刘海岩
西安交通大学 刘海岩 6 单元测试不再孤立的测试单个操作(这是传统的单元 测试的视角),而是将操作作为类的一部分。例如: 命令 execute() 粘贴命令 execute() 拷贝命令 execute() execute由基类定义并被一 组子类继承,每个子类的 execute被应用于每个子类定义 的私有属性和操作的语境内, 因此,仅在基类内测试execute 是无效的,应该在每个子类的 语境内测试execute。 单元测试若用于测试不发生请求的类(如“栈”类,其 中操作有:pop(),push(),empty())时,同样要设计驱动程 序,封装在一个测试类(包)中,测试类负责运行测试用例 并给出结果,每个测试用例用一个操作名表示;单元测试如 果测试发生请求的类,则需要设计桩程序,封装在桩类中
单元测试主要使用的图模型是:类图、类的状态图、活 动图 2、集成测试(大簇、构件、子系统) 这里的构件或子系统应该与系统的体系结构相对应。集 成测试主要以检查这些构件、子系统的接口为目的。对于类 之间的集成, Roger S. Pressman认为传统的自顶向下和自底 向上集成的测试策略没有意义。他提出了两种集成测试策略: (1)基于线程的测试( thread- based testing) 集成一组相互协作的对某个输入或事件作出响应的类, 每个线程被分别测试,并使用回归测试以保证没有副作用 生 (2)基于使用的测试( use-based testing) 按层次测试系统。先测试不依赖服务器的独立类,如管 理和显示数据的类,然后测试依赖独立类的其他类。逐步增 加依赖类,直到测试完整个系统 安交通大学刘海岩
西安交通大学 刘海岩 7 单元测试主要使用的图模型是:类图、类的状态图、活 动图。 2、集成测试(大簇、构件、子系统) 这里的构件或子系统应该与系统的体系结构相对应。集 成测试主要以检查这些构件、子系统的接口为目的。对于类 之间的集成,Roger S. Pressman认为传统的自顶向下和自底 向上集成的测试策略没有意义。他提出了两种集成测试策略: (1)基于线程的测试(thread-based testing) 集成一组相互协作的对某个输入或事件作出响应的类, 每个线程被分别测试,并使用回归测试以保证没有副作用产 生。 (2)基于使用的测试(use-based testing) 按层次测试系统。先测试不依赖服务器的独立类,如管 理和显示数据的类,然后测试依赖独立类的其他类。逐步增 加依赖类,直到测试完整个系统
对于子系统之间的集成,如果系统划分为层次结构 则可以按自顶向下或自底向上集成,同时也需设计驱动 类和桩类。如:一个O0系统的结构为 用户界面(A) 应用逻辑(B) 访问数 网络通信 据库C)(D) 应用系统的一个结构 该系统可以采用自顶向下、自底向上或三明治式进 行集成测试。见下图 安交通大学刘海岩
西安交通大学 刘海岩 8 对于子系统之间的集成,如果系统划分为层次结构, 则可以按自顶向下或自底向上集成,同时也需设计驱动 类和桩类。如:一个OO系统的结构为: 用户界面(A) 应用逻辑(B) 访问数 据库(C) 网络通信 (D) 应用系统的一个结构 该系统可以采用自顶向下、自底向上或三明治式进 行集成测试。见下图
自顶向下 自底向上 明治式 UI层 驱动」驱动 UI层 桩「桩 数据库层网络层 桩|桩 UI层 驱动驱动 驱动驱动 应用层 数据库网 络 数据库层网络层 桩|桩 应用层 UI层 应用层 数据库网络 安交通大学刘海岩
西安交通大学 刘海岩 9 UI层 桩 桩 UI层 应用层 桩 桩 UI层 应用层 数据库 网络 数据库层 网络层 驱动 驱动 数据库 网 络 应用层 驱动 驱动 UI层 桩 桩 数据库层 网络层 驱动 驱动 自顶向下 自底向上 三明治式
单元测试 集成测试 集成测试 Test A Test a、B Test B Test h、 ( Test A、B、C、D Test C Test B、D Test D 测试过程(UML活动图) 集成测试使用的图模型是:顺序图、协作图、活动图(概念层) 安交通大学刘海岩
西安交通大学 刘海岩 10 Test A Test B Test C Test D Test A、B Test B、C Test B、D Test A、B、C、D 单元测试 集成测试 集成测试 测试过程(UML活动图) 集成测试使用的图模型是:顺序图、协作图、活动图(概念层)