第1章 软件测试及自动化 1
1.1 软件测试 1
1.2 软件测试的目的 3
1.3 软件测试方法 4
1.3.1 白盒测试 4
1.3.2 黑盒测试 5
1.3.3 ALAC测试 5
1.3.4 单元测试 5
1.3.5 集成测试 6
1.3.6 系统测试 8
1.4.1 自动化测试及分类 9
1.4 自动化测试 9
1.4.2 自动化测试过程 10
本章小结 21
习题 21
第2章 UML建模语言 22
2.1 UML简介 22
2.1.1 面向对象的开发方法 22
2.1.2 UML的发展 23
2.1.3 UML的含义 24
2.1.4 UML组成 25
2.2 测试使用的模型 27
2.2.1 用例图 27
2.2.2 顺序图 30
2.2.3 协作图 32
2.2.4 状态图 33
2.2.5 活动图 35
2.3 对象约束语言 37
2.3.1 初识OCL 37
2.3.2 OCL与UML模型元素 38
2.3.3 基本类型和值 41
2.3.4 对象及其属性 44
2.3.5 集合操作 45
本章小结 47
习题 47
2.3.6 消息 47
第3章 基于规格说明的测试和UML方法 48
3.1 基于代码与基于规格说明 48
3.2 基于规格说明的测试 49
3.2.1 方法分类 49
3.2.2 响应系统的测试 50
3.2.3 基于断言的方法 50
3.3 基于UML的测试方法 55
3.3.1 测试阶段与方法 56
3.3.2 测试过程 58
3.3.3 UML自动化测试架构 59
3.4.2 测试预言、期望结果的自动生成 60
3.4 基于UML测试中的若干问题 60
3.4.1 面向路径的测试数据自动生成 60
3.4.3 回归测试和测试选择 61
本章小结 61
习题 62
第4章 基于UML的单元测试 63
4.1 单元测试概述 63
4.1.1 单元测试 63
4.1.2 极限编程中的单元测试 64
4.2 传统的单元测试 64
4.2.1 路径测试 64
4.2.2 条件测试路径选择 69
4.3 面向对象的单元测试 71
4.3.1 类测试模型 71
4.3.2 构建类测试用例 71
4.3.3 根据类图和OCL生成测试用例 72
4.3.4 根据状态转换图构建测试用例 77
4.4 往返路径测试方法 79
4.4.1 基于状态的测试方法概述 79
4.4.2 往返路径测试 80
4.4.3 测试生成例子 81
4.5.1 状态转换测试序列 84
4.5.2 调用序列树 84
4.5 基于状态图的自动化单元测试 84
4.5.3 构造调用序列树 87
4.5.4 获得测试约束条件 90
4.5.5 OrderSet例子 90
本章小结 93
习题 93
第5章 基于UML的集成测试 94
5.1 集成测试概述 94
5.1.1 集成测试的目的和意义 94
5.1.2 集成测试的方案 95
5.2.1 方法概述 98
5.2 基于UML协作图的集成测试 98
5.2.2 UML协作图回顾 99
5.2.3 基于协作图的协作集成测试模式 103
5.2.4 使用UML协作图生成测试用例 104
5.2.5 基于协作图的集成测试方法相关工作 112
5.3 基于UML状态图的集成测试 113
5.3.1 UML建模组件 113
5.3.2 建立全局动作模型 115
5.3.3 测试的生成和执行 131
5.3.4 TnT的执行 134
本章小结 137
习题 137
6.1 系统测试与方法 138
第6章 基于UML的系统测试 138
6.2 判定表法 140
6.2.1 建立判定表 140
6.2.2 判定表法举例 141
6.3 场景测试法 143
6.3.1 从用例模型生成测试用例 143
6.3.2 ATM例子 144
6.4 基于用例图和活动图的测试方法 149
6.4.1 方法简介 149
6.4.2 在线书店例子 149
6.5.1 概述 157
6.5 TOTEM方法 157
6.5.2 产生用例序列 159
6.5.3 确定用例场景 166
6.5.4 变量序列的产生 172
6.5.5 自动化的实现 173
本章小结 177
习题 178
第7章 基于UML的Web应用系统测试 179
7.1 Web应用的测试 179
7.1.1 Web应用的特点和故障源 179
7.1.2 Web系统的测试内容 180
7.2 Web应用和UML建模 181
7.2.1 Web应用的框架 181
7.1.3 Web应用的测试方法 181
7.2.2 Web应用的组成 182
7.2.3 Web应用的建模 183
7.3 基于OOWTM的测试方法 189
7.3.1 对象模型和测试方法 189
7.3.2 行为模型和测试方法 190
7.3.3 结构模型和测试方法 194
7.4 Webcomp测试方法 194
7.4.1 Web Records实例介绍 194
7.4.2 系统建模 195
7.4.3 基于优先权的场景测试 198
7.4.4 Webcomp单元测试 199
本章小结 200
习题 201
第8章 基于UML的可靠性测试 202
8.1 软件的可靠性测试和方法 202
8.1.1 软件可靠性测试概念 202
8.1.2 软件可靠性测试过程 203
8.1.3 基于功能分解的软件可靠性测试方法 204
8.1.4 软件可靠性评估 206
8.2 基于使用模型的测试 206
8.2.1 使用模型和基于使用的测试 206
8.2.2 使用模型的创建过程 207
8.3.1 用例的精化 213
8.3 基于用例模型的测试方法 213
8.3.2 从用例到状态图 215
8.3.3 从状态图到使用图 217
8.3.4 从使用图到使用模型 217
8.3.5 从使用模型到测试用例 218
8.4 一种改进的测试方法 219
8.4.1 模型的定义 219
8.4.2 生成使用模型 220
8.4.3 测试举例 222
本章小结 226
习题 226
9.1.1 回归测试的策略 227
9.1 回归测试 227
第9章 回归测试和测试用例优选 227
9.1.2 回归测试的类型和一般步骤 229
9.1.3 选择性回归测试的3种标准 230
9.1.4 结构化软件回归测试技术 230
9.1.5 面向对象软件的回归测试 231
9.1.6 自动回归测试工具 232
9.2 跟踪性和测试选择 233
9.3 完全测试覆盖准则 236
9.3.1 白盒测试覆盖准则 237
9.3.2 基于UML的覆盖准则 237
9.4.2 基于缺陷探测率的优选技术 239
9.4 测试用例优选技术 239
9.4.1 测试用例的优选问题 239
9.4.3 基于风险的优选技术 246
本章小结 248
习题 248
第10章 基于UML的自动测试架构和工具 249
10.1 AGFDTS 249
10.1.1 AGEDIS的测试方法 250
10.1.2 AGEDIS的体系结构 250
10.1.3 AGEDIS的接口 252
10.1.4 AGEDIS的工具集 254
10.1.5 AGEDIS测试实例 255
10.2 PrUDE 257
10.2.1 PrUDE简介 257
10.2.2 PrUDE平台的体系结构和自动化 258
10.2.3 PrUDE应用举例 259
10.3 TDE/UML 269
10.3.1 TDE/UML软件测试环境框架 269
10.3.2 TDE/UML设计与执行 272
本章小结 276
习题 276
参考文献 277