第1章 组合测试概论 1
1.1 软件测试在软件工程中的位置 1
1.2 组合测试在软件测试中的位置 2
1.3 组合测试的应用场景 3
1.4 组合测试的概念 6
1.4.1 组合测试的定义 6
1.4.2 组合测试的目标 6
1.4.3 组合测试的原理 6
1.4.4 组合测试的模型 7
1.4.5 组合测试的方法与实例 7
1.4.6 组合测试的关键问题 10
1.4.7 组合测试的优缺点 10
1.5 组合测试的历史 11
1.6 组合测试的演变 12
1.6.1 正交表 13
1.6.2 覆盖表 14
1.6.3 可变力度覆盖表 15
1.6.4 增量覆盖表 16
1.6.5 试验设计 18
1.7 组合测试的度量 19
1.7.1 组合覆盖率 19
1.7.2 分散度 20
1.8 组合测试的过程 20
1.8.1 建立组合测试模型 21
1.8.2 生成测试用例集 21
1.8.3 测试用例执行 21
1.8.4 故障诊断 22
1.8.5 测试评估 22
1.9 本章小结 22
参考文献 22
第2章 组合测试的测试用例生成 24
2.1 贪心算法 24
2.1.1 AETG系统与TCG算法 24
2.1.2 PAIRTEST工具:按参数顺序产生组合覆盖测试数据的方法 26
2.1.3 基于解空间树模型的两两组合覆盖测试用例生成方法 28
2.1.4 基于网络图模型的两两组合覆盖测试用例生成方法 32
2.1.5 贪心算法框架优化 37
2.2 数学方法 52
2.2.1 Kobayashi等的两两组合覆盖测试用例生成的代数方法 52
2.2.2 Williams的代数方法 56
2.2.3 改进的两两组合覆盖测试用例生成的代数方法 57
2.2.4 二水平多因素系统的测试数据生成 59
2.3 演化算法 66
2.3.1 覆盖表生成的遗传算法配置参数优化 66
2.3.2 覆盖表生成的粒子群算法 86
2.4 几种特殊的覆盖表生成 101
2.4.1 单因素覆盖方法 101
2.4.2 多因素覆盖方法 103
2.4.3 相邻因素两两组合覆盖测试数据生成 110
2.5 带约束的组合测试用例生成 116
2.6 本章小结 119
参考文献 120
第3章 组合测试的优化与约简 123
3.1 回归测试 123
3.2 组合测试的基本优化规则 125
3.3 测试配置改变成本优化 127
3.4 密度算法优化 131
3.5 综合优化 133
3.5.1 参数取值的权值分配 133
3.5.2 偏序覆盖表的生成 134
3.6 组合测试用例集的约简 137
3.6.1 基本的约简方法 137
3.6.2 改进的约简方法 139
3.7 本章小结 142
参考文献 143
第4章 组合测试的故障定位 144
4.1 排除法 144
4.1.1 基本概念和术语 145
4.1.2 基本模型和方法 146
4.1.3 实例分析 149
4.2 最小故障模式的理论及应用 152
4.2.1 最小故障模式理论 152
4.2.2 基于最小故障模式的组合测试方法学 157
4.2.3 基于最小故障模式的组合测试方法学实例 168
4.2.4 基于最小故障模式的组合测试方法学实证 175
4.2.5 一种基于最小故障模式的故障定位方法 180
4.3 差异定位算法 184
4.3.1 基本概念 184
4.3.2 差异定位算法应用于组合测试的故障定位 186
4.3.3 算法改进 192
4.3.4 试验设计与结果分析 194
4.4 关系树模型法 196
4.5 故障定位的其他方法 201
4.5.1 谱分析方法 201
4.5.2 分类树方法 204
4.6 本章小结 206
参考文献 207
第5章 自适应组合测试 208
5.1 自适应测试 208
5.1.1 自适应测试的概念 208
5.1.2 自适应测试的目标 208
5.1.3 自适应测试的原理 209
5.1.4 自适应测试的方法 209
5.1.5 自适应测试的优缺点 210
5.2 自适应组合测试 210
5.2.1 传统组合测试所面临的问题 210
5.2.2 自适应测试框架 211
5.2.3 相关研究工作介绍 212
5.2.4 自适应组合测试 214
5.3 自适应组合测试的实例研究 216
5.3.1 测试软件介绍 216
5.3.2 初始模型设计及测试 217
5.3.3 改进模型M2及测试 220
5.3.4 参数扩展——新模型及其改进、测试过程 222
5.3.5 模型M3的修改模型——M4 224
5.3.6 试验结果分析和评价 226
5.4 本章小结 227
参考文献 228
第6章 组合测试的应用 229
6.1 浏览器功能测试 229
6.1.1 浏览器测试 230
6.1.2 浏览器自适应组合测试的实证研究 231
6.1.3 测试结果及分析 240
6.2 手机功能测试 241
6.2.1 测试设计 242
6.2.2 测试结果与分析 245
6.3 机顶盒测试 247
6.3.1 时移电视系统及其组合测试模型 248
6.3.2 时移电视系统的组合测试 251
6.4 配置测试 255
6.4.1 研究背景 255
6.4.2 试验设计方法在配置测试中的应用 256
6.5 软件系统兼容性测试 261
6.5.1 测试对象及测试目的 262
6.5.2 测试过程 263
6.6 本章小结 267
参考文献 267
第7章 组合测试的比较研究及工具 269
7.1 随机测试 269
7.1.1 概念 269
7.1.2 目标 269
7.1.3 原理 269
7.1.4 方法 270
7.1.5 实例 270
7.1.6 优缺点 271
7.2 自适应随机测试 271
7.2.1 概念 271
7.2.2 目标 271
7.2.3 原理 271
7.2.4 方法 271
7.2.5 实例 272
7.2.6 优缺点 272
7.3 几种测试方法的比较 272
7.4 组合测试的工具 280
7.5 本章小结 282
参考文献 282
第8章 组合测试的研究现状与未来 283
8.1 研究领域 286
8.1.1 测试模型 286
8.1.2 测试用例的生成 287
8.1.3 测试优化 289
8.1.4 故障特征化及定位 289
8.1.5 测试应用及测试过程 290
8.1.6 测试度量及评估 291
8.2 未来的研究工作 291
8.3 本章小结 293
参考文献 294
索引 295