目 录
第1 章软件测试快速入门....................................................................................... 1
1.1 多样性测试入门......................................................................................... 2
1.1.1 随机测试........................................................................................ 2
1.1.2 等价类测试..................................................................................... 4
1.1.3 组合测试........................................................................................ 5
1.2 故障假设测试入门..................................................................................... 7
1.2.1 常见软件故障................................................................................. 8
1.2.2 边界故障假设............................................................................... 10
1.2.3 变异故障假设............................................................................... 11
1.3 图分析测试入门....................................................................................... 13
1.3.1 图生成方法................................................................................... 13
1.3.2 图结构测试................................................................................... 15
1.3.3 图元素测试................................................................................... 16
1.4 本章练习................................................................................................. 17
第2 章软件测试的定义........................................................................................ 18
2.1 测试基础概念.......................................................................................... 19
2.1.1 常用测试术语............................................................................... 19
2.1.2 常用测试分类............................................................................... 22
2.1.3 测试理论框架............................................................................... 26
2.2 待测程序示例.......................................................................................... 30
2.2.1 三角形程序Triangle ...................................................................... 30
2.2.2 日期程序NextDay ........................................................................ 31
2.2.3 均值方差程序MeanVar .................................................................. 33
2.3 测试基本问题.......................................................................................... 36
2.3.1 测试终止问题............................................................................... 37
2.3.2 测试预言问题............................................................................... 39
2.3.3 测试生成问题............................................................................... 40
2.4 本章练习................................................................................................. 43
软件测试基础
第3 章Bug 理论基础........................................................................................... 44
3.1 认识软件Bug .......................................................................................... 45
3.1.1 第一个Bug ................................................................................... 45
3.1.2 著名的Bug ................................................................................... 47
3.2 PIE 模型介绍........................................................................................... 49
3.2.1 PIE 模型的相关概念...................................................................... 49
3.2.2 PIE 模型的计算分析...................................................................... 52
3.2.3 PIE 模型与测试调试...................................................................... 54
3.3 Bug 理论分析.......................................................................................... 57
3.3.1 Bug 的反向定义............................................................................ 57
3.3.2 Bug 的不确定性............................................................................ 58
3.3.3 Bug 的非单调性............................................................................ 61
3.3.4 Bug 间的干涉性............................................................................ 62
3.4 本章练习................................................................................................. 64
第4 章多样性测试............................................................................................... 65
4.1 随机测试理论.......................................................................................... 66
4.1.1 均匀随机测试............................................................................... 66
4.1.2 非均匀随机测试............................................................................ 68
4.1.3 自适应随机测试............................................................................ 69
4.1.4 引导性随机测试............................................................................ 73
4.2 等价类理论............................................................................................. 76
4.2.1 软件等价类假设............................................................................ 77
4.2.2 软件等价类划分............................................................................ 81
4.2.3 划分随机测试方法......................................................................... 85
4.2.4 划分随机测试分析......................................................................... 87
4.3 组合理论................................................................................................. 95
4.3.1 组合测试初步............................................................................... 95
4.3.2 组合测试准则............................................................................... 98
4.3.3 组合测试生成.............................................................................. 103
4.4 本章练习................................................................................................ 106
第5 章故障假设测试.......................................................................................... 107
5.1 边界故障假设......................................................................................... 108
5.1.1 输入边界值分析........................................................................... 108
5.1.2 计算边界值分析........................................................................... 114
VIII
目 录
5.1.3 输出边界值分析........................................................................... 117
5.2 变异故障假设......................................................................................... 120
5.2.1 变异分析基本概念........................................................................ 120
5.2.2 变异测试优化技术........................................................................ 123
5.2.3 变异分析理论框架........................................................................ 126
5.3 逻辑故障假设......................................................................................... 132
5.3.1 逻辑测试基础.............................................................................. 132
5.3.2 逻辑故障结构.............................................................................. 135
5.3.3 逻辑约束求解.............................................................................. 140
5.4 本章练习................................................................................................ 143
第6 章图分析测试.............................................................................................. 144
6.1 图测试基础............................................................................................ 145
6.1.1 图论基础..................................................................................... 145
6.1.2 控制流图..................................................................................... 147
6.1.3 数据流图..................................................................................... 149
6.1.4 事件流图..................................................................................... 151
6.2 图结构测试方法...................................................................................... 154
6.2.1 L-路径测试................................................................................. 155
6.2.2 主路径测试.................................................................................. 156
6.2.3 基本路径测试.............................................................................. 158
6.3 图元素测试方法...................................................................................... 162
6.3.1 数据流测试.................................................................................. 162
6.3.2 逻辑测试..................................................................................... 166
6.4 本章练习................................................................................................ 173
第7 章开发者测试.............................................................................................. 174
7.1 开发者多样性测试.................................................................................. 175
7.1.1 代码多样性策略........................................................................... 175
7.1.2 组合多样性策略........................................................................... 179
7.1.3 行为多样性策略........................................................................... 183
7.2 开发者故障假设测试............................................................................... 187
7.2.1 边界故障假设.............................................................................. 187
7.2.2 变异故障假设.............................................................................. 190
7.2.3 逻辑故障假设.............................................................................. 193
7.3 开发者测试进阶...................................................................................... 198
7.3.1 mock 测试对象............................................................................. 198
IX
软件测试基础
7.3.2 从单元到集成.............................................................................. 200
7.3.3 开发者测试评估........................................................................... 203
7.4 本章练习................................................................................................ 206
第8 章专项测试................................................................................................. 207
8.1 功能测试................................................................................................ 208
8.1.1 功能测试简介.............................................................................. 208
8.1.2 多样性功能测试........................................................................... 210
8.1.3 故障假设功能测试........................................................................ 216
8.2 性能测试................................................................................................ 221
8.2.1 性能测试简介.............................................................................. 222
8.2.2 多样性性能测试........................................................................... 225
8.2.3 故障假设性能测试........................................................................ 230
8.3 安全测试................................................................................................ 235
8.3.1 安全测试简介.............................................................................. 235
8.3.2 多样性安全测试........................................................................... 238
8.3.3 故障假设安全测试........................................................................ 242
8.4 本章练习................................................................................................ 247
参考文献.............................................................................................................. 248