书籍详情
软件测试:软件工程技术丛书测试系列(原书第2版)
作者:(美)Paul C.Jorgensen著;韩柯,杜旭涛译;韩柯译
出版社:机械工业出版社
出版时间:2005-11-01
ISBN:9787111121664
定价:¥35.00
购买这本书可以去
内容简介
主要特点:◆使用了独立于具体编程语言的伪代码◆将UML集成到面向对象测试中 ◆提供了大量的图表和案例研究◆专门讲述了GUI测试方面的内容 本书是经典的软件测试教材,是ACM&IEEE编制“软件工程知识体系”(SWEBOK)的主要参考文献之一,并已被国际众多大学选作教材。书中全面地介绍了软件测试的基础知识和方法,很好地做到了理论与实践相结合。 本书全面地介绍了软件测试的基础知识和方法。通过问题、图表和案例研究,对软件测试数学问题和技术进行了深入的研究,并在例子中以更加通用的伪代码取代了过时的Pascal代码,从而使内容独立于具体的程序设计语言。本书还介绍了面向对象测试的内容,并完善了GUI测试内容。 本书是ACM与IEEE计算机学会“软件工程知识体系”主要引用文献,并是国际众多大学的教材。 本书适合作为相关专业高校教材,也可用于读者自学。
作者简介
Paul C.Jorgensen博士在其职业生涯的前20年中,主要从事电话交换系统的开发、支持和测试工作。1986年以来,他一直在大学为研究生讲授软件工程课程,先是亚利桑那州立大学,然后在大峡谷州立大学。
目录
译者序
第1版前言
前言
第一部分 数学背景
第1章 测试概述 2
1.1 基本定义 2
1.2 测试用例 3
1.3 通过维恩图理解测试 4
1.4 标识测试用例 6
1.4.1 功能性测试 6
1.4.2 结构性测试 7
1.4.3 功能性测试与结构性测试的比较 8
1.5 错误与缺陷分类 9
1.6 测试级别 11
1.7 参考文献 12
1.8 练习 12
第2章 举例 13
2.1 泛化的伪代码 13
2.2 三角形问题 15
2.2.1 问题陈述 15
2.2.2 讨论 15
2.2.3 传统实现 15
2.2.4 结构化实现 18
2.3 NextDate函数 20
2.3.1 问题陈述 20
2.3.2 讨论 20
2.3.3 实现 20
2.4 佣金问题 23
2.4.1 问题陈述 23
2.4.2 讨论 23
2.4.3 实现 24
2.5 SATM系统 24
2.5.1 问题陈述 25
2.5.2 讨论 27
2.6 货币转换器 27
2.7 土星牌挡风玻璃雨刷 28
2.8 参考文献 28
2.9 练习 28
第3章 测试人员的离散数学 30
3.1 集合论 30
3.1.1 集合成员关系 30
3.1.2 集合定义 31
3.1.3 空集 31
3.1.4 维恩图 32
3.1.5 集合操作 32
3.1.6 集合关系 34
3.1.7 子集划分 34
3.1.8 集合恒等式 35
3.2 函数 36
3.2.1 定义域与值域 36
3.2.2 函数类型 37
3.2.3 函数合成 38
3.3 关系 39
3.3.1 集合之间的关系 39
3.3.2 单个集合上的关系 40
3.4 命题逻辑 41
3.4.1 逻辑操作符 42
3.4.2 逻辑表达式 42
3.4.3 逻辑等价 43
3.5 概率论 44
3.6 参考文献 45
3.7 练习 45
第4章 测试人员的图论 47
4.1 图 47
4.1.1 节点的度 48
4.1.2 关联矩阵 48
4.1.3 相邻矩阵 49
4.1.4 路径 49
4.1.5 连接性 50
4.1.6 压缩图 51
4.1.7 圈数 51
4.2 有向图 52
4.2.1 内度与外度 53
4.2.2 节点的类型 53
4.2.3 有向图的相邻矩阵 54
4.2.4 路径与半路径 54
4.2.5 可到达性矩阵 55
4.2.6 n-连接性 55
4.2.7 强组件 56
4.3 用于测试的图 57
4.3.1 程序图 57
4.3.2 有限状态机 58
4.3.3 Petri网 60
4.3.4 事件驱动的Petri网 62
4.3.5 状态图 65
4.4 参考文献 67
4.5 练习 67
第二部分 功能性测试
第5章 边界值测试 70
5.1 边界值分析 70
5.1.1 归纳边界值分析 71
5.1.2 边界值分析的局限性 72
5.2 健壮性测试 73
5.3 最坏情况测试 73
5.4 特殊值测试 74
5.5 举例 75
5.5.1 三角形问题的测试用例 75
5.5.2 NextDate函数的测试用例 79
5.5.3 佣金问题的测试用例 82
5.6 随机测试 84
5.7 边界值测试的指导方针 85
5.8 练习 86
第6章 等价类测试 87
6.1 等价类 87
6.1.1 弱一般等价类测试 88
6.1.2 强一般等价类测试 88
6.1.3 弱健壮等价类测试 89
6.1.4 强健壮等价类测试 90
6.2 三角形问题的等价类测试用例 90
6.3 NextDate函数的等价类测试用例 92
6.4 佣金问题的等价类测试用例 95
6.4.1 输出值域等价类测试用例 96
6.4.2 输出值域等价类测试用例 97
6.5 指导方针和观察 97
6.6 参考文献 98
6.7 练习 98
第7章 基于决策表的测试 100
7.1 决策表 100
7.2 三角形问题的测试用例 104
7.3 NextDate函数测试用例 105
7.3.1 第一次尝试 105
7.3.2 第二次尝试 106
7.3.3 第三次尝试 108
7.4 佣金问题的测试用例 110
7.5 指导方针与观察 110
7.6 参考文献 111
7.7 练习 111
第8章 功能性测试回顾 112
8.1 测试工作量 112
8.2 测试效率 115
8.3 测试的有效性 115
8.4 指导方针 116
8.5 案例研究 117
第三部分 结构性测试
第9章 路径测试 124
9.1 DD-路径 126
9.2 测试覆盖指标 129
9.2.1 基于指标的测试 129
9.2.2 测试覆盖分析器 131
9.3 基路径测试 131
9.3.1 McCabe的基路径方法 132
9.3.2 关于McCabe基路径方法的观察 134
9.3.3 基本复杂度 136
9.4 指导方针与观察 138
9.5 参考文献 140
9.6 练习 141
第10章 数据流测试 143
10.1 定义/使用测试 143
10.1.1 举例 144
10.1.2 stocks的定义-使用路径 148
10.1.3 locks的定义-使用路径 148
10.1.4 totalLocks的定义-使用路径 149
10.1.5 sales的定义-使用路径 149
10.1.6 commission的定义-使用路径 150
10.1.7 定义-使用路径测试覆盖指标 151
10.2 基于程序片的测试 152
10.2.1 举例 154
10.2.2 风格与技术 157
10.3 指导方针与观察 158
10.4 参考文献 159
10.5 练习 159
第11章 结构性测试回顾 160
11.1 漏洞与冗余 160
11.2 用于方法评估的指标 162
11.3 重温案例研究 164
11.3.1 基于路径的测试 167
11.3.2 数据流测试 167
11.3.3 片测试 167
11.4 参考文献 167
11.5 练习 168
第四部分 集成与系统测试
第12章 测试层次 170
12.1 测试层次的传统观点 170
12.2 其他生命周期模型 171
12.2.1 瀑布模型的新模型 172
12.2.2 基于规格说明的生命周期模型 173
12.3 ASTM系统 175
12.4 将集成测试与系统测试分开 184
12.4.1 结构认识 185
12.4.2 行为认识 186
12.5 参考文献 186
第13章 集成测试 187
13.1 深入研究SATM系统 187
13.2 基于分解的集成 191
13.2.1 自顶向下集成 191
13.2.2 自底向上集成 192
13.2.3 三明治集成 193
13.2.4 优缺点 194
13.3 基于调用图的集成 194
13.3.1 成对集成 194
13.3.2 相邻集成 194
13.3.3 优缺点 196
13.4 基于路径的集成 197
13.4.1 新概念与扩展概念 197
13.4.2 SATM系统中的MM-路径 200
13.4.3 MM-路径复杂度 203
13.4.4 优缺点 204
13.5 案例研究 205
13.5.1 基于分解的集成 209
13.5.2 基于调用图的集成 209
13.5.3 基于MM-路径的集成 209
13.6 参考文献 210
13.7 练习 210
第14章 系统测试 211
14.1 线索 211
14.1.1 线索的可能性 212
14.1.2 线索定义 213
14.2 需求规格说明的基本概念 214
14.2.1 数据 215
14.2.2 行动 215
14.2.3 设备 215
14.2.4 事件 216
14.2.5 线索 216
14.2.6 基本概念之间的关系 216
14.2.7 采用基本概念建模 217
14.3 寻找线索 219
14.4 线索测试的结构策略 222
14.4.1 自底向上组织线索 223
14.4.2 节点与边覆盖指标 224
14.5 线索测试的功能策略 225
14.5.1 基于事件的线索测试 225
14.5.2 基于端口的线索测试 227
14.5.3 基于数据的线索测试 227
14.6 SATM测试线索 229
14.7 系统测试指导方针 233
14.7.1 伪结构系统测试 233
14.7.2 运行剖面 233
14.7.3 累进测试与回归测试 235
14.8 参考文献 236
14.9 练习 236
第15章 交互测试 237
15.1 交互的语境 237
15.2 交互的分类 239
15.2.1 单处理器中的静态交互 240
15.2.2 多处理器中的静态交互 241
15.2.3 单处理器中的动态交互 242
15.2.4 多处理器中的动态交互 247
15.3 交互. 合成与确定性 254
15.4 客户-服务器测试 256
15.5 参考文献 257
15.6 练习 257
第五部分 面向对象的测试
第16章 面向对象的测试问题 260
16.1 面向对象测试的单元 260
16.2 合成与封装的涵义 261
16.3 继承的涵义 263
16.4 多态性的涵义 264
16.5 面向对象测试的层次 264
16.6 GUI测试 264
16.7 面向对象软件的数据流测试 265
16.8 第五部分采用的例子 265
16.8.1 面向对象的日历 265
16.8.2 货币转换应用程序 266
16.9 参考文献 270
16.10 练习 270
第17章 类测试 271
17.1 以方法为单元 271
17.1.1 o-oCalendar的伪代码 272
17.1.2 Date.increment的单元测试 276
17.2 以类为单元 277
17.2.1 windshieldWiper类的伪代码 277
17.2.2 windshieldWiper类的单元测试 278
第18章 面向对象的集成测试 282
18.1 集成测试的UML支持 282
18.2 面向对象软件的MM-路径 284
18.3 面向对象数据流集成测试框架 290
18.3.1 事件驱动和消息驱动的Petri网 291
18.3.2 由继承导出的数据流 292
18.3.3 由消息导出的数据流 292
18.3.4 分片 294
18.4 练习 294
18.5 参考文献 296
第19章 GUI测试 297
19.1 货币转换程序 297
19.2 货币转换程序的单元测试 301
19.3 货币转换程序的集成测试 302
19.4 货币转换程序的系统测试 303
19.5 练习 307
第20章 面向对象的系统测试 308
20.1 货币转换器的UML描述 308
20.1.1 问题陈述 308
20.1.2 系统功能 308
20.1.3 表示层 309
20.1.4 高层用例 309
20.1.5 基本用例 310
20.1.6 详细GUI定义 311
20.1.7 扩展基本用例 312
20.1.8 真实用例 315
20.2 基于UML的系统测试 315
20.3 基于“状态图”的系统测试 318
20.4 参考文献 318
第1版前言
前言
第一部分 数学背景
第1章 测试概述 2
1.1 基本定义 2
1.2 测试用例 3
1.3 通过维恩图理解测试 4
1.4 标识测试用例 6
1.4.1 功能性测试 6
1.4.2 结构性测试 7
1.4.3 功能性测试与结构性测试的比较 8
1.5 错误与缺陷分类 9
1.6 测试级别 11
1.7 参考文献 12
1.8 练习 12
第2章 举例 13
2.1 泛化的伪代码 13
2.2 三角形问题 15
2.2.1 问题陈述 15
2.2.2 讨论 15
2.2.3 传统实现 15
2.2.4 结构化实现 18
2.3 NextDate函数 20
2.3.1 问题陈述 20
2.3.2 讨论 20
2.3.3 实现 20
2.4 佣金问题 23
2.4.1 问题陈述 23
2.4.2 讨论 23
2.4.3 实现 24
2.5 SATM系统 24
2.5.1 问题陈述 25
2.5.2 讨论 27
2.6 货币转换器 27
2.7 土星牌挡风玻璃雨刷 28
2.8 参考文献 28
2.9 练习 28
第3章 测试人员的离散数学 30
3.1 集合论 30
3.1.1 集合成员关系 30
3.1.2 集合定义 31
3.1.3 空集 31
3.1.4 维恩图 32
3.1.5 集合操作 32
3.1.6 集合关系 34
3.1.7 子集划分 34
3.1.8 集合恒等式 35
3.2 函数 36
3.2.1 定义域与值域 36
3.2.2 函数类型 37
3.2.3 函数合成 38
3.3 关系 39
3.3.1 集合之间的关系 39
3.3.2 单个集合上的关系 40
3.4 命题逻辑 41
3.4.1 逻辑操作符 42
3.4.2 逻辑表达式 42
3.4.3 逻辑等价 43
3.5 概率论 44
3.6 参考文献 45
3.7 练习 45
第4章 测试人员的图论 47
4.1 图 47
4.1.1 节点的度 48
4.1.2 关联矩阵 48
4.1.3 相邻矩阵 49
4.1.4 路径 49
4.1.5 连接性 50
4.1.6 压缩图 51
4.1.7 圈数 51
4.2 有向图 52
4.2.1 内度与外度 53
4.2.2 节点的类型 53
4.2.3 有向图的相邻矩阵 54
4.2.4 路径与半路径 54
4.2.5 可到达性矩阵 55
4.2.6 n-连接性 55
4.2.7 强组件 56
4.3 用于测试的图 57
4.3.1 程序图 57
4.3.2 有限状态机 58
4.3.3 Petri网 60
4.3.4 事件驱动的Petri网 62
4.3.5 状态图 65
4.4 参考文献 67
4.5 练习 67
第二部分 功能性测试
第5章 边界值测试 70
5.1 边界值分析 70
5.1.1 归纳边界值分析 71
5.1.2 边界值分析的局限性 72
5.2 健壮性测试 73
5.3 最坏情况测试 73
5.4 特殊值测试 74
5.5 举例 75
5.5.1 三角形问题的测试用例 75
5.5.2 NextDate函数的测试用例 79
5.5.3 佣金问题的测试用例 82
5.6 随机测试 84
5.7 边界值测试的指导方针 85
5.8 练习 86
第6章 等价类测试 87
6.1 等价类 87
6.1.1 弱一般等价类测试 88
6.1.2 强一般等价类测试 88
6.1.3 弱健壮等价类测试 89
6.1.4 强健壮等价类测试 90
6.2 三角形问题的等价类测试用例 90
6.3 NextDate函数的等价类测试用例 92
6.4 佣金问题的等价类测试用例 95
6.4.1 输出值域等价类测试用例 96
6.4.2 输出值域等价类测试用例 97
6.5 指导方针和观察 97
6.6 参考文献 98
6.7 练习 98
第7章 基于决策表的测试 100
7.1 决策表 100
7.2 三角形问题的测试用例 104
7.3 NextDate函数测试用例 105
7.3.1 第一次尝试 105
7.3.2 第二次尝试 106
7.3.3 第三次尝试 108
7.4 佣金问题的测试用例 110
7.5 指导方针与观察 110
7.6 参考文献 111
7.7 练习 111
第8章 功能性测试回顾 112
8.1 测试工作量 112
8.2 测试效率 115
8.3 测试的有效性 115
8.4 指导方针 116
8.5 案例研究 117
第三部分 结构性测试
第9章 路径测试 124
9.1 DD-路径 126
9.2 测试覆盖指标 129
9.2.1 基于指标的测试 129
9.2.2 测试覆盖分析器 131
9.3 基路径测试 131
9.3.1 McCabe的基路径方法 132
9.3.2 关于McCabe基路径方法的观察 134
9.3.3 基本复杂度 136
9.4 指导方针与观察 138
9.5 参考文献 140
9.6 练习 141
第10章 数据流测试 143
10.1 定义/使用测试 143
10.1.1 举例 144
10.1.2 stocks的定义-使用路径 148
10.1.3 locks的定义-使用路径 148
10.1.4 totalLocks的定义-使用路径 149
10.1.5 sales的定义-使用路径 149
10.1.6 commission的定义-使用路径 150
10.1.7 定义-使用路径测试覆盖指标 151
10.2 基于程序片的测试 152
10.2.1 举例 154
10.2.2 风格与技术 157
10.3 指导方针与观察 158
10.4 参考文献 159
10.5 练习 159
第11章 结构性测试回顾 160
11.1 漏洞与冗余 160
11.2 用于方法评估的指标 162
11.3 重温案例研究 164
11.3.1 基于路径的测试 167
11.3.2 数据流测试 167
11.3.3 片测试 167
11.4 参考文献 167
11.5 练习 168
第四部分 集成与系统测试
第12章 测试层次 170
12.1 测试层次的传统观点 170
12.2 其他生命周期模型 171
12.2.1 瀑布模型的新模型 172
12.2.2 基于规格说明的生命周期模型 173
12.3 ASTM系统 175
12.4 将集成测试与系统测试分开 184
12.4.1 结构认识 185
12.4.2 行为认识 186
12.5 参考文献 186
第13章 集成测试 187
13.1 深入研究SATM系统 187
13.2 基于分解的集成 191
13.2.1 自顶向下集成 191
13.2.2 自底向上集成 192
13.2.3 三明治集成 193
13.2.4 优缺点 194
13.3 基于调用图的集成 194
13.3.1 成对集成 194
13.3.2 相邻集成 194
13.3.3 优缺点 196
13.4 基于路径的集成 197
13.4.1 新概念与扩展概念 197
13.4.2 SATM系统中的MM-路径 200
13.4.3 MM-路径复杂度 203
13.4.4 优缺点 204
13.5 案例研究 205
13.5.1 基于分解的集成 209
13.5.2 基于调用图的集成 209
13.5.3 基于MM-路径的集成 209
13.6 参考文献 210
13.7 练习 210
第14章 系统测试 211
14.1 线索 211
14.1.1 线索的可能性 212
14.1.2 线索定义 213
14.2 需求规格说明的基本概念 214
14.2.1 数据 215
14.2.2 行动 215
14.2.3 设备 215
14.2.4 事件 216
14.2.5 线索 216
14.2.6 基本概念之间的关系 216
14.2.7 采用基本概念建模 217
14.3 寻找线索 219
14.4 线索测试的结构策略 222
14.4.1 自底向上组织线索 223
14.4.2 节点与边覆盖指标 224
14.5 线索测试的功能策略 225
14.5.1 基于事件的线索测试 225
14.5.2 基于端口的线索测试 227
14.5.3 基于数据的线索测试 227
14.6 SATM测试线索 229
14.7 系统测试指导方针 233
14.7.1 伪结构系统测试 233
14.7.2 运行剖面 233
14.7.3 累进测试与回归测试 235
14.8 参考文献 236
14.9 练习 236
第15章 交互测试 237
15.1 交互的语境 237
15.2 交互的分类 239
15.2.1 单处理器中的静态交互 240
15.2.2 多处理器中的静态交互 241
15.2.3 单处理器中的动态交互 242
15.2.4 多处理器中的动态交互 247
15.3 交互. 合成与确定性 254
15.4 客户-服务器测试 256
15.5 参考文献 257
15.6 练习 257
第五部分 面向对象的测试
第16章 面向对象的测试问题 260
16.1 面向对象测试的单元 260
16.2 合成与封装的涵义 261
16.3 继承的涵义 263
16.4 多态性的涵义 264
16.5 面向对象测试的层次 264
16.6 GUI测试 264
16.7 面向对象软件的数据流测试 265
16.8 第五部分采用的例子 265
16.8.1 面向对象的日历 265
16.8.2 货币转换应用程序 266
16.9 参考文献 270
16.10 练习 270
第17章 类测试 271
17.1 以方法为单元 271
17.1.1 o-oCalendar的伪代码 272
17.1.2 Date.increment的单元测试 276
17.2 以类为单元 277
17.2.1 windshieldWiper类的伪代码 277
17.2.2 windshieldWiper类的单元测试 278
第18章 面向对象的集成测试 282
18.1 集成测试的UML支持 282
18.2 面向对象软件的MM-路径 284
18.3 面向对象数据流集成测试框架 290
18.3.1 事件驱动和消息驱动的Petri网 291
18.3.2 由继承导出的数据流 292
18.3.3 由消息导出的数据流 292
18.3.4 分片 294
18.4 练习 294
18.5 参考文献 296
第19章 GUI测试 297
19.1 货币转换程序 297
19.2 货币转换程序的单元测试 301
19.3 货币转换程序的集成测试 302
19.4 货币转换程序的系统测试 303
19.5 练习 307
第20章 面向对象的系统测试 308
20.1 货币转换器的UML描述 308
20.1.1 问题陈述 308
20.1.2 系统功能 308
20.1.3 表示层 309
20.1.4 高层用例 309
20.1.5 基本用例 310
20.1.6 详细GUI定义 311
20.1.7 扩展基本用例 312
20.1.8 真实用例 315
20.2 基于UML的系统测试 315
20.3 基于“状态图”的系统测试 318
20.4 参考文献 318
猜您喜欢