软件测试基础教程PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:(美)马瑟著
- 出 版 社:北京:机械工业出版社
- 出版年份:2011
- ISBN:9787111351887
- 页数:382 页
第一部分 预备知识 2
第1章 软件测试的基本知识 2
1.1 人、错误和测试 2
1.1.1 错误、故障和失效 3
1.1.2 测试自动化 3
1.1.3 开发人员与测试人员是两种角色 4
1.2 软件质量 5
1.2.1 软件质量特性 5
1.2.2 软件可靠性 5
1.3 需求、运行结果和正确性 6
1.3.1 输入域与软件正确性 7
1.3.2 有效输入与无效输入 7
1.4 正确性与可靠性 8
1.4.1 正确性 8
1.4.2 可靠性 9
1.4.3 软件使用与操作剖面 9
1.5 测试与调试 10
1.5.1 制订测试计划 11
1.5.2 构造测试数据 11
1.5.3 运行被测软件 12
1.5.4 指定被测软件的行为 12
1.5.5 评价被测软件运行结果的正确性 14
1.5.6 测试预言的构造 15
1.6 测试度量 16
1.6.1 组织级度量 17
1.6.2 项目级度量 17
1.6.3 过程级度量 17
1.6.4 产品级度量:通用度量 18
1.6.5 产品级度量:面向对象软件 19
1.6.6 进度跟踪与趋势 19
1.6.7 静态度量与动态度量 20
1.6.8 可测试性 20
1.7 软件测试与硬件测试 20
1.8 测试与验证 22
1.9 缺陷管理 22
1.10 执行历史 23
1.11 测试生成策略 24
1.12 静态测试 25
1.12.1 走查 26
1.12.2 审查 26
1.12.3 在静态测试中使用静态代码分析工具 26
1.12.4 软件复杂性与静态测试 27
1.13 基于模型的测试与模型检测 27
1.14 控制流图 28
1.14.1 基本块 29
1.14.2 流图的定义与图形表示 30
1.14.3 路径 31
1.15 决定者与后决定者 34
1.16 程序依赖图 35
1.16.1 数据依赖性 35
1.16.2 控制依赖性 36
1.17 字符串、语言与正则表达式 37
1.18 测试的类型 38
1.18.1 分类因子C1:测试生成的依据 39
1.18.2 分类因子C2:软件生命周期阶段 40
1.18.3 分类因子C3:目标导向的测试 41
1.18.4 分类因子C4:被测软件制品 43
1.18.5 分类因子C5:测试过程模型 44
1.19 饱和效应 46
1.19.1 信赖度与真实可靠性 47
1.19.2 饱和区间 47
1.19.3 信赖度的错觉 48
1.19.4 降低偏差△ 48
1.19.5 对测试过程的影响 48
小结 49
参考文献注释 49
练习 52
第二部分 测试生成 56
第2章 基于需求的测试生成 56
2.1 引言 56
2.2 测试用例选择问题 57
2.3 等价类划分 58
2.3.1 缺陷定位 59
2.3.2 关系与等价类划分 60
2.3.3 变量的等价类 62
2.3.4 一元化分与多元化分 65
2.3.5 等价类划分的完整过程 66
2.3.6 基于等价类的测试用例设计 69
2.3.7 GUI设计与等价类 71
2.4 边界值分析 73
2.5 类别划分法 76
2.6 因果图分析 81
2.6.1 因果图中的基本符号 82
2.6.2 创建因果图 84
2.6.3 从因果图生成判定表 86
2.6.4 避免组合爆炸的启发式方法 90
2.6.5 从判定表生成测试用例 92
2.7 基于谓词的测试生成 92
2.7.1 谓词和布尔表达式 92
2.7.2 谓词测试中的故障模型 94
2.7.3 谓词约束 95
2.7.4 谓词测试准则 96
2.7.5 生成BOR、BRO和BRE充分性测试用例 97
2.7.6 因果图与谓词测试 108
2.7.7 故障传播 108
2.7.8 谓词测试实践 110
小结 112
参考文献注释 112
练习 114
第3章 基于有穷状态模型的测试生成 119
3.1 软件设计与测试 119
3.2 有穷状态机 120
3.2.1 用输入序列激活FSM 122
3.2.2 转换函数和输出函数的表格表示 123
3.2.3 FSM的特征 123
3.3 符合性测试 125
3.3.1 重置输入 126
3.3.2 测试的难题 127
3.4 故障模型 127
3.4.1 FSM的变体 129
3.4.2 故障覆盖率 130
3.5 特征集 131
3.5.1 k等价划分的构造 132
3.5.2 特征集的构造 134
3.5.3 等价集 135
3.6 W方法 136
3.6.1 假设 136
3.6.2 最大状态数 136
3.6.3 转换覆盖集的计算 136
3.6.4 构造集合Z 137
3.6.5 导出测试集 138
3.6.6 采用W方法测试 139
3.6.7 错误检测过程 141
3.7 部分W方法 142
3.7.1 采用m=n的Wp方法测试 142
3.7.2 采用m>n的Wp方法测试 144
3.8 UIO串方法 148
3.8.1 假设 148
3.8.2 UIO串 149
3.8.3 核心行为与非核心行为 150
3.8.4 生成UIO串 151
3.8.5 区分符号 160
3.8.6 测试生成 162
3.8.7 测试优化 163
3.8.8 故障检测 164
3.9 自动机理论与基于控制流的技术 166
3.9.1 n路径覆盖 168
3.9.2 自动机理论方法的比较 169
小结 169
参考文献注释 170
练习 171
第4章 基于组合设计的测试生成技术 175
4.1 组合设计 175
4.1.1 测试配置和测试集 175
4.1.2 输入空间与配置空间建模 176
4.2 组合测试设计过程 179
4.3 故障模型 180
4.4 拉丁方阵 182
4.5 相互正交的拉丁方阵 183
4.6 对偶设计:二值参数 184
4.7 对偶设计:多值参数 188
4.8 正交矩阵 193
4.9 覆盖矩阵与混合取值覆盖矩阵 196
4.9.1 覆盖矩阵 196
4.9.2 混合取值覆盖矩阵 197
4.10 强度大于2的矩阵 198
4.11 生成覆盖矩阵 198
小结 204
参考文献注释 204
练习 206
第5章 回归测试的选择、最小化和优先级排序 209
5.1 什么是回归测试 209
5.2 回归测试过程 210
5.2.1 测试重确认、选择、最小化和优先级排序 210
5.2.2 测试准备 211
5.2.3 测试排序 211
5.2.4 测试执行 212
5.2.5 输出比较 213
5.3 回归测试选择问题 213
5.4 回归测试选择方法集 214
5.4.1 全测试策略 214
5.4.2 随机选择测试 214
5.4.3 选择遍历修改测试用例 214
5.4.4 测试最小化 214
5.4.5 测试优先级排序 215
5.5 利用执行轨迹进行回归测试的选择 215
5.5.1 获取执行轨迹 216
5.5.2 选择回归测试用例 217
5.5.3 处理函数调用 220
5.5.4 处理声明中的变化 220
5.6 利用动态切片进行回归测试的选择 222
5.6.1 动态切片 223
5.6.2 计算动态切片 223
5.6.3 选择测试用例 225
5.6.4 潜在依赖 225
5.6.5 计算相关切片 228
5.6.6 语句的添加和删除 228
5.6.7 标识切片变量 229
5.6.8 简化的动态依赖图 229
5.7 测试选择算法的可扩展性 230
5.8 测试最小化 232
5.8.1 集合覆盖问题 232
5.8.2 测试最小化过程 233
5.9 测试优先级排序 234
5.10 回归测试工具 237
小结 238
参考文献注释 238
练习 242
第三部分 测试充分性评价与测试增强 248
第6章 基于控制流和数据流的测试充分性评价 248
6.1 测试充分性基础 248
6.1.1 什么是测试充分性 248
6.1.2 测试充分性的度量 249
6.1.3 通过度量充分性来增强测试 250
6.1.4 无效性和测试充分性 252
6.1.5 错误检测和测试增强 254
6.1.6 单次和多次执行 255
6.2 基于控制流的测试充分性准则 256
6.2.1 语句覆盖和块覆盖 256
6.2.2 条件和判定 258
6.2.3 判定覆盖 259
6.2.4 条件覆盖 260
6.2.5 条件/判定覆盖 262
6.2.6 多重条件覆盖 263
6.2.7 线性代码序列和跳转覆盖 265
6.2.8 改进的条件/判定覆盖 267
6.2.9 复合条件的MC/DC充分测试 269
6.2.10 MC/DC覆盖的定义 272
6.2.11 最小MC/DC测试 276
6.2.12 错误检测和MC/DC充分性 276
6.2.13 短路计算和无效性 278
6.2.14 测试集对需求的追踪 279
6.3 数据流概念 280
6.3.1 定义和使用 281
6.3.2 c-use和p-use 282
6.3.3 全局和局部的定义与使用 282
6.3.4 数据流图 282
6.3.5 def-clear路径 284
6.3.6 def-use对 285
6.3.7 def-use链 286
6.3.8 优化 286
6.3.9 数据上下文和有序的数据上下文 287
6.4 基于数据流的测试充分性准则 289
6.4.1 c-use覆盖 289
6.4.2 p-use覆盖 290
6.4.3 all-use覆盖 291
6.4.4 k-dr链覆盖 292
6.4.5 使用k-dr链覆盖 293
6.4.6 无效的c-use和p-use 293
6.4.7 上下文覆盖 294
6.5 控制流与数据流 296
6.6 包含关系 297
6.7 结构性测试与功能性测试 298
6.8 覆盖度量的可量测性 299
小结 300
参考文献注释 300
练习 305
第7章 基于程序变异的测试充分性评价 310
7.1 导引 310
7.2 变异和变体 310
7.2.1 一阶变体与高阶变体 311
7.2.2 变体的语法与语义 312
7.2.3 强变异和弱变异 314
7.2.4 为什么要变异 315
7.3 用变异技术进行测试评价 316
7.3.1 测试充分性评价的步骤 316
7.3.2 测试充分性评价的替代过程 321
7.3.3 被区分的变体与被杀掉的变体 322
7.3.4 区分变体的条件 322
7.4 变异算子 323
7.4.1 算子类型 324
7.4.2 变异算子的语言依赖性 325
7.5 变异算子的设计 326
7.5.1 评判变异算子优良的准则 326
7.5.2 指导准则 327
7.6 变异测试的基本原则 327
7.6.1 称职程序员假设 327
7.6.2 耦合效应 328
7.7 等价变体 328
7.8 通过变异进行错误检测 329
7.9 变体的类型 331
7.10 C语言的变异算子 331
7.10.1 什么没有被变异 331
7.10.2 线性化 332
7.10.3 执行序列 334
7.10.4 执行序列的影响 336
7.10.5 全局标识符集和局部标识符集 336
7.10.6 全局引用集与局部引用集 336
7.10.7 程序常量变异 339
7.10.8 运算符变异 340
7.10.9 语句变异 344
7.10.10 程序变量变异 354
7.11 Java语言变异算子 357
7.11.1 传统变异算子 358
7.11.2 继承 359
7.11.3 多态与动态绑定 361
7.11.4 方法重载 362
7.11.5 Java特有的变异算子 363
7.12 综合比较:Fortran 77、C与Java变异算子 364
7.13 变异测试工具 366
7.14 低成本变异测试 366
7.14.1 划分变异函数的优先级 367
7.14.2 选择使用部分变异算子 367
小结 368
参考文献注释 369
练习 377
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019