第13章、面向对象软件的集成测试(理论课)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3/40
面向对象的集成测试
没有功能分解树 层次关系比较复杂 类的行为与它的状态密切相关 类相互依赖紧密
4/40
集成测试方法
面向对象的集成测试特点
结构集成测试 功能集成测试
集成测试方法
继承关系的类集成测试 类交互的集成测试
集成测试的步骤和原则
5/40
结构集成测试
方法: 方法:静态测试 测试对象:类继承、类容器、 测试对象:类继承、类容器、组件的接口 目的: 目的:结构是否符合设计 可逆性工程: 公司的Panorama-2 、Rational公司 可逆性工程:ISA公司的 公司的 公司 的Rose C++ Analyzer 对照类关系图
17/40
其它类交互
参数交互 返回类对象 类方法中创建对象 类引用全局类对象
18/40
集成测试方法
面向对象的集成测试特点
结构集成测试 功能集成测试
继承关系的类集成测试 类交互的集成测试
集成测试的步骤和原则
19/40
集成测试步骤
选定检测的类,参考 分析结果, 选定检测的类,参考OOD分析结果,仔细分析类的状态和相应 分析结果 的行为,类或方法间传递消息,前置条件和后置条件的界定等; 的行为,类或方法间传递消息,前置条件和后置条件的界定等; 确定覆盖标准; 确定覆盖标准; 利用结构关系图确定待测类的所有关联; 利用结构关系图确定待测类的所有关联; 根据程序中类的对象构造测试用例, 根据程序中类的对象构造测试用例,确认使用什么输入激发类 状态的改变,使用类的服务和期望产生什么行为等; 状态的改变,使用类的服务和期望产生什么行为等; 进行集成测试,根据类的层次关系确定测试的先后顺序, 进行集成测试,根据类的层次关系确定测试的先后顺序,尽量 使测试用例能够复用。 使测试用例能够复用。
面向对象的集成测试特点
结构集成测试 功能集成测试
继承关系的类集成测试 类交互的集成测试
集成测试的步骤和原则
15/40
交互集成
对象交互通过消息传递实现 通过参数引用
16/40
Wood和Flooring集成 和 集成
Flooring类 类
Wood和Surface单元测试 和 单元测试
Flooring集成测试 集成测试
29/40
小结
面向对象的集成测试方法
结构集成测试 功能集成测试 持续集成测试和增量测试
面向对象的测试工具
测试驱动程序 Junit测试框架 测试框架 测试实施
30/40
在接口中添加了一个或多个操作,有可能一个新方法就实现了一个新操 在接口中添加了一个或多个操作, 作; 在子类中覆盖了父类中的操作; 在子类中覆盖了父类中的操作; 在子类中加入一个或多个新的实例变量来实现更多的状态或属性; 在子类中加入一个或多个新的实例变量来实现更多的状态或属性; 在子类中改变了类常量。 在子类中改变了类常量。
20/40
集成测试原则
首先测试公共类 测试仅调用公共类的类 有继承层次关系的先测试父类再测试子类 集成时尽量一次添加一个被测试的类或组件 形成组件的先单独测试组件再集成到子系统
21/40
持续集成
开发人员将所有的源代码Check in 到固定的地点,让所有相关 到固定的地点, 开发人员将所有的源代码 的人都可以在这里获取最新的版本和以前的版本; 的人都可以在这里获取最新的版本和以前的版本; 创建过程完全自动化, 创建过程完全自动化,任何相关人员只要输入命令就能完成对 系统的整个创建; 系统的整个创建; 测试完全自动化, 测试完全自动化,任何相关人员只要输入简单的命令就可以运 行一套完整的针对该系统的测试; 行一套完整的针对该系统的测试; 及时发布以确保所有相关人员都可以得到最新、 及时发布以确保所有相关人员都可以得到最新、最好的可执行 文件。 文件。
6/40
功能集成测试
方法:检查类间方法交互、组件间交互等; 方法:检查类间方法交互、组件间交互等; 信息来源:系统的规约、系统设计、代码。 信息来源:系统的规约、系统设计、代码。 其它信息:设计模型、功能调用结构图、 其它信息:设计模型、功能调用结构图、类关系图或者实 体关系图
7/40
集成测试方法
23/40
增量测试
借鉴了XP编程方式 借鉴了 编程方式 强调测试优先 强化单元测试 在单元测试的基础上进行增量测试 在不断集成中产生可执行版本,同时发现bug 在不断集成中产生可执行版本,同时发现
24/40
测试驱动程序框架
面向对象单元测试中使用 测试驱动程序框架的作用
25/40
手工编写测试框架过程
11/40
例子测试方法( ) 例子测试方法(1)
对于新操作,添加测试用例; 对于新操作,添加测试用例; 对于改变了的操作,则需要为操作添加新的测试用例。 对于改变了的操作,则需要为操作添加新的测试用例。添加的测试用 例提供了新的输入、则修改前置条件和/或后置条件 或后置条件。 例提供了新的输入、则修改前置条件和 或后置条件。 添加新的变量最有可能与新的操作和/或重载方法中代码有关 或重载方法中代码有关, 添加新的变量最有可能与新的操作和 或重载方法中代码有关,而且对 测试的处理也相关,则需要添加前置条件和/或后置条件 或后置条件。 测试的处理也相关,则需要添加前置条件和 或后置条件。 增加类常量, 增加类常量,可能形成新的后置条件测试用例的输出可能受类常量的 约束,验证常量对方法的影响。 约束,验证常量对方法的影响。
编写主程序类 编写测试用例 采集测试结果 测试结果比较
26/40
Junit介绍 介绍
编写和运行可重复的测试 安装 环境变量设置
27/40
Junit特性 特性
用于期望结果的断言 共享共同测试数据的测试工具 方便的组织和运行测试的测试套件 图形和文本的测试界面
28/40
应用场合
XP编程,迭代式的开发过程 编程, 编程 重构, 重构,需要修改测试代码 需要编写测试代码的其他情况
12/40
例子测试方法( ) 例子测试方法(2)
覆盖了父类中的操作,复用继承来的的测试用例。 覆盖了父类中的操作,复用继承来的的测试用例。因为新的 代码需要测试,进行修正和添加以符合覆盖率的测试标准。 代码需要测试,进行修正和添加以符合覆盖率的测试标准。
13/40
练习
木材Baidu Nhomakorabea 红木类
14/40
集成测试方法
22/40
持续集成测试
避免双方之间的交互或关联而产生的Bug 避免双方之间的交互或关联而产生的 Bug不出现在一方的代码中;出现在接口中 不出现在一方的代码中; 不出现在一方的代码中 在集成的当天被发现,影响最小, 在集成的当天被发现,影响最小,便于查找出错的位置 借助自动化工具,例如创建工具Ant 借助自动化工具,例如创建工具
白盒测试
第13章、面向对象软件的集成测试 章
本章学习目标
掌握面向对象的集成测试方法
结构集成测试 功能集成测试 持续集成测试和增量测试
了解面向对象的测试工具
测试驱动程序 Junit测试框架 测试框架 测试实施
2/40
集成测试方法
面向对象的集成测试特点
结构集成测试 功能集成测试
集成测试方法
继承关系的类集成测试 类交互的集成测试
面向对象的集成测试特点
结构集成测试 功能集成测试
继承关系的类集成测试 类交互的集成测试
集成测试的步骤和原则
8/40
类层次结构
继承-类交互-组件- 继承-类交互-组件-应用
类通过继承集成 类通过交互集成 类到组件的集成 组件到应用系统的集成
9/40
继承例子
例子
10/40
继承关系集成
软件复用机制,接口复用、测试用例方法也可以复用。 软件复用机制,接口复用、测试用例方法也可以复用。 可能具有下列变化: 可能具有下列变化: