第1章 测试数据进化生成入门 1
1.1软件测试基本概念 2
1.1.1软件测试的定义 2
1.1.2软件测试的目的 2
1.1.3软件测试的方法 3
1.1.4软件测试的原则 3
1.1.5软件测试的分类 3
1.2基于覆盖的测试数据生成方法 4
1.2.1测试充分性准则 4
1.2.2测试数据生成方法 5
1.3测试数据进化生成 6
1.3.1问题的转化 6
1.3.2遗传算法基本原理 8
1.3.3基于遗传算法的测试数据生成 10
1.4研究现状及存在的问题 11
1.4.1测试数据进化生成研究现状 11
1.4.2存在的问题 12
1.5主要内容及组织 13
1.6本章小结 15
参考文献 16
第2章 不可执行路径自动检测 19
2.1研究动机 19
2.2条件语句之间的相关性 20
2.2.1条件语句相关性的定义 21
2.2.2条件语句相关性的判定 21
2.3条件语句谓词表达式取值概率的估计 23
2.4不可执行路径的自动检测 27
2.4.1不可执行路径的检测 27
2.4.2循环体包含条件语句的不可执行路径检测 28
2.4.3不可执行路径自动检测的步骤 28
2.5实例分析 29
2.6在程序测试中的应用 31
2.6.1基准程序实验 31
2.6.2工业程序实验 36
2.7本章小结 37
参考文献 38
第3章 多路径覆盖测试数据进化生成 39
3.1研究动机 39
3.2测试数据生成问题的数学模型 41
3.3基于遗传算法的测试数据生成 42
3.3.1进化个体适应值计算 42
3.3.2进化个体比较 44
3.3.3算法终止条件 45
3.3.4算法步骤 46
3.4在基准程序测试中的应用 46
3.4.1实验设计 46
3.4.2参数设置 47
3.4.3性能指标 47
3.4.4实验结果与分析 48
3.5本章小结 51
参考文献 52
第4章 路径赫夫曼编码表示的多路径覆盖测试数据进化生成 53
4.1研究动机 53
4.2路径的赫夫曼编码表示 55
4.3路径匹配度计算 57
4.3.1程序插装 57
4.3.2路径匹配度计算 58
4.3.3测试数据生成问题的数学模型 59
4.4适应度函数设计 60
4.4.1进化个体适应值计算 60
4.4.2进化个体适应值计算特点 61
4.4.3算法步骤 61
4.5在基准程序测试中的应用 62
4.5.1三角形分类程序 62
4.5.2其他基准程序 64
4.5.3复杂路径覆盖实验 64
4.6本章小结 66
参考文献 67
第5章 基于信息共享的多路径覆盖测试数据进化生成 68
5.1研究动机 68
5.2测试数据生成问题的数学模型 69
5.3基于信息共享的测试数据进化生成 70
5.3.1多种群并行遗传算法 71
5.3.2测试数据进化生成步骤 72
5.4性能分析 73
5.4.1测试数据生成的概率 73
5.4.2例子 74
5.5在基准程序测试中的应用 75
5.5.1三角形分类程序实验 75
5.5.2其他程序实验 77
5.6本章小结 80
参考文献 81
第6章 基于路径分组的很多路径覆盖测试数据进化生成 83
6.1研究动机 83
6.2基于相似度的路径分组 84
6.3测试数据生成问题的数学模型 85
6.3.1问题的数学模型 85
6.3.2子优化问题的约简 86
6.4基于遗传算法的测试数据生成 87
6.4.1进化个体编码 87
6.4.2进化个体适应值 88
6.4.3算法终止条件 88
6.4.4算法步骤 88
6.5性能分析 89
6.5.1集合测度 89
6.5.2生成期望测试数据的概率 90
6.5.3基于相似度的路径分组的合理性 91
6.5.4子优化问题约简的合理性 91
6.6实例分析 92
6.7在程序测试中的应用 96
6.7.1对比方法 97
6.7.2参数设置 97
6.7.3基准程序实验 97
6.7.4工业程序实验 101
6.8本章小结 104
参考文献 105
第7章 很多路径覆盖测试数据进化生成的并行实现 107
7.1研究动机 107
7.2基于相似度和计算资源的路径分组 109
7.3测试数据生成问题的数学模型 110
7.4基于遗传算法的测试数据生成 111
7.5性能分析 111
7.6在程序测试中的应用 113
7.6.1程序Insert的目标路径分组 113
7.6.2性能指标 120
7.6.3程序Insert实验 121
7.6.4工业程序实验 122
7.7本章小结 125
参考文献 126
第8章 用于路径覆盖和缺陷检测的测试数据进化生成 127
8.1研究动机 127
8.2测试数据生成问题的数学模型 129
8.2.1决策向量 129
8.2.2路径表示 129
8.2.3约束函数 130
8.2.4目标函数 131
8.2.5测试数据生成问题的数学模型 132
8.3基于遗传算法的测试数据生成 132
8.3.1加权单目标函数 133
8.3.2基于罚函数方法的约束函数处理 133
8.3.3算法步骤 134
8.4在程序测试中的应用 134
8.4.1缺陷判定方法 135
8.4.2参数设置 141
8.4.3实验结果 141
8.5本章小结 152
参考文献 153
第9章 基于搜索空间缩减的路径覆盖测试数据进化生成 155
9.1研究动机 155
9.2路径与输入向量之间的相关性 157
9.2.1节点与输入分量之间的相关性 157
9.2.2路径与输入向量之间的相关性 158
9.3用于测试数据进化生成的搜索空间缩减 160
9.3.1一条目标路径时的搜索空间缩减 160
9.3.2多条目标路径时的搜索空间缩减 163
9.4性能分析 165
9.5在程序测试中的应用 167
9.5.1单目标路径实验 167
9.5.2多目标路径实验 169
9.6本章小结 177
参考文献 178
第10章 基于适应值调整的路径覆盖测试数据进化生成 179
10.1研究动机 179
10.2进化个体贡献度 180
10.2.1进化个体贡献度 182
10.2.2对循环结构的处理 184
10.3基于进化个体贡献度的适应值调整 184
10.4性能分析 185
10.5在程序测试中的应用 186
10.5.1对比方法、参数设置与评价指标 186
10.5.2三角形分类程序实验 186
10.5.3冒泡排序程序实验 189
10.5.4工业程序实验 189
10.6本章小结 191
参考文献 191
第11章 基于优质初始种群的路径覆盖测试数据进化生成 193
11.1研究动机 193
11.2优质初始种群的形成 194
11.3遗传算子的作用范围 195
11.4性能分析 196
11.5实例分析 198
11.6在程序测试中的应用 200
11.6.1被测程序 200
11.6.2遗传算子与参数设置 201
11.6.3实验设置 201
11.6.4实验结果 201
11.7本章小结 203
参考文献 204
第12章 基于占优关系的语句覆盖测试数据进化生成 206
12.1研究动机 206
12.2占优语句(集)的确定 209
12.3语句覆盖测试数据进化生成 210
12.4方法的优点 211
12.5实例分析 211
12.6在程序测试中的应用 214
12.6.1被测程序 214
12.6.2实验设计 215
12.6.3实验结果 215
12.7本章小结 217
参考文献 218
第13章 基于占优关系的多语句覆盖测试数据进化生成 219
13.1研究动机 219
13.2基于占优关系的目标语句缩减 220
13.2.1图论基本知识 220
13.2.2目标语句占优关系图 221
13.2.3目标语句缩减 222
13.3缩减后语句覆盖测试数据进化生成 222
13.4在程序测试中的应用 224
13.4.1被测程序 224
13.4.2实验设计 224
13.4.3实验结果与分析 225
13.5本章小结 227
参考文献 228
第14章 基于路径覆盖的变异测试数据进化生成 229
14.1研究动机 229
14.2基于路径比较的变异体杀死准则 231
14.3变异测试数据进化生成方法 232
14.3.1目标路径的选择 232
14.3.2测试数据生成问题的数学模型 233
14.3.3适应度函数的设计 233
14.4实例分析 234
14.5在程序测试中的应用 237
14.5.1被测程序描述 237
14.5.2实验设计 237
14.5.3实验结果及分析 238
14.6本章小结 239
参考文献 240
附录1基本遗传算法源代码 241
附录2实验程序 262