第1章 软件测试基本概念 1
1.1什么是软件测试 1
1.2软件测试与CMMI 2
1.2.1传统的软件测试技术和测试过程模型 2
1.2.2 CMMI模型对软件测试的支持和扩充 3
1.3测试用例 4
1.3.1什么是测试用例 4
1.3.2测试用例的评价标准 5
1.3.3测试用例设计的基本原则 6
1.3.4测试用例模板 7
1.4测试环境 8
1.4.1什么是测试环境 8
1.4.2测试环境的规划 8
1.4.3怎样搭建测试环境 9
1.4.4测试环境的维护和管理 10
1.5软件测试人员的要求 12
1.5.1国内外软件测试的现状 12
1.5.2软件测试人员的结构 13
1.5.3软件测试人员的素质要求 13
1.5.4软件测试人员的职责 14
本章小结 15
习题 15
第2章 软件测试原理 16
2.1测试原则 16
2.2软件测试的分类 19
2.2.1按测试阶段分类 19
2.2.2按是否需要执行被测试软件分类 21
2.2.3按是否需要查看代码分类 23
2.2.4按测试执行时是否需要人工干预分类 24
2.2.5其他测试类型 25
2.3软件测试的流程 25
2.4软件测试的过程模型 26
2.4.1 V模型 26
2.4.2 W模型 27
2.4.3 H模型 28
2.4.4 X模型 29
本章小结 30
习题 30
第3章 白盒测试技术 31
3.1白盒测试的基本概念 31
3.2白盒测试的方法 31
3.2.1逻辑覆盖法 32
3.2.2基路径测试法 37
3.2.3循环语句测试 40
3.2.4数据流测试 42
3.2.5代码检查法 44
3.2.6域测试法 47
3.2.7符号测试法 47
3.2.8动态白盒测试技术 48
3.3白盒测试的流程 49
3.4白盒测试的要求 50
3.4.1数据类型测试 50
3.4.2 SQL语句测试 51
3.4.3数据管理对象测试 52
3.4.4数值对象测试 53
3.4.5 Java测试 53
3.4.6界面测试 56
3.4.7业务对象测试 58
3.4.8其他要求 59
本章小结 60
习题 60
第4章 黑盒测试技术 62
4.1黑盒测试的基本概念 62
4.1.1黑盒测试的优点和缺点 63
4.1.2黑盒测试与白盒测试的比较 63
4.2黑盒测试的方法 64
4.2.1等价类划分法 64
4.2.2边界值分析法 71
4.2.3因果图法 74
4.2.4功能图分析法 78
4.2.5场景设计法 79
4.2.6错误推测法 82
4.2.7决策表法 83
4.2.8正交试验设计法 87
4.3黑盒测试的依据和流程 88
4.3.1黑盒测试的依据 88
4.3.2黑盒测试的流程 89
本章小结 90
习题 90
第5章 面向对象软件的测试 92
5.1面向对象的测试概述 92
5.1.1面向对象的基本概念 92
5.1.2面向对象的开发方法 93
5.1.3面向对象的分析和设计 94
5.1.4面向对象模型 96
5.1.5面向对象软件的测试策略 97
5.1.6面向对象的测试模型 98
5.2面向对象的单元测试 99
5.2.1基于服务的类测试技术 99
5.2.2基于状态的类测试技术 102
5.2.3测试驱动的实现和代码的组织 105
5.3面向对象的集成测试和系统测试 108
5.3.1面向对象软件的集成测试 108
5.3.2面向对象软件的系统测试 109
本章小结 110
习题 110
第6章 单元测试 111
6.1单元测试的目标与内容 111
6.2单元测试环境 113
6.2.1驱动模块和桩模块的定义 113
6.2.2驱动模块和桩模块的使用条件 113
6.2.3驱动模块和桩模块的设计 114
6.3单元测试的策略 117
6.3.1静态与动态结合的测试 117
6.3.2单元测试的覆盖率 118
6.3.3单元测试的自动化意义 122
6.3.4单元测试与项目开发 123
6.3.5单元测试中的功能测试 123
6.3.6单元测试中的问题 123
6.4单元测试的过程 124
6.4.1计划阶段 124
6.4.2设计实现阶段 125
6.4.3执行评估阶段 126
6.5单元测试的要点剖析 128
本章小结 128
习题 128
第7章 集成测试和系统测试 129
7.1集成测试概述 129
7.1.1集成测试的策略 129
7.1.2集成测试的过程 131
7.2集成测试阶段工作 133
7.3系统测试概述 135
7.3.1系统测试的类型 135
7.3.2系统测试的主要内容 137
7.3.3系统测试的过程 139
7.4系统测试的结果分析 139
7.5系统测试的文档模板 141
本章小结 141
习题 141
第8章 软件测试与软件开发过程 142
8.1软件开发过程概述 142
8.1.1软件开发生命周期模型 143
8.1.2软件测试与软件开发过程的关系 145
8.2各种软件测试在软件开发生命周期中的位置 145
8.2.1软件规划阶段的测试 145
8.2.2软件设计阶段的测试 146
8.2.3软件开发编码阶段的测试 147
8.2.4软件测试阶段的测试 148
本章小结 150
习题 150
第9章 软件测试过程所需的技能 151
9.1软件测试文档的编写 151
9.1.1软件测试计划 154
9.1.2软件测试用例 156
9.1.3软件测试报告 157
9.2缺陷的报告和分析 157
9.2.1缺陷报告的内容 158
9.2.2缺陷的分析 160
9.3问题跟踪系统 162
9.3.1问题跟踪系统的目标与任务 162
9.3.2问题跟踪概述 163
9.3.3问题跟踪系统的使用者 167
本章小结 171
习题 172
第10章 软件测试自动化 173
10.1手工测试与自动测试 173
10.1.1自动测试的优点 173
10.1.2自动测试是否比手工测试优越 174
10.2自动测试的开展 174
10.2.1自动测试的周期 175
10.2.2自动测试的成本 176
10.2.3合理选择自动测试的导入时机 177
10.2.4自动测试的人员要求 177
10.3自动测试的方案选择 178
10.3.1确定自动化的对象和范围 178
10.3.2选择自动测试的方案和脚本编写方法 179
本章小结 181
习题 181
第11章 软件测试工具 182
11.1测试基本工具分类 182
11.1.1按测试功能分类 182
11.1.2按商业和非商业分类 185
11.2商业测试工具介绍 185
11.2.1测试管理工具——惠普公司的Quality Center(QC) 185
11.2.2自动功能测试工具——惠普公司的Quick Test Profession(QTP) 186
11.2.3自动性能测试工具——惠普公司的LoadRunner(LR) 187
本章小结 189
第12章 自动测试工具QTP的使用 190
12.1 QTP的安装和配置 190
12.2 QTP的基本功能 194
12.2.1编辑测试脚本 194
12.2.2调试测试脚本 196
12.2.3运行测试脚本 197
12.2.4分析测试结果 197
12.3 QTP测试脚本开发 199
12.3.1录制/回放测试脚本 199
12.3.2自主开发测试脚本 201
12.3.3脚本语言VBScript简介 202
12.3.4描述性编程的使用 204
12.3.5数据驱动脚本 208
12.3.6关键字驱动脚本 211
本章小结 211
习题 211
第13章 软件测试项目阶段与测试小组 212
13.1软件测试项目阶段 212
13.2 α测试阶段 213
13.2.1 α阶段的测试活动 213
13.2.2测试的深度与广度 216
13.2.3测试周期的记录 218
13.3 β测试阶段 219
13.4预最终测试阶段 222
13.5最终完整性测试 225
13.6发布 226
13.7项目验尸分析总结 226
13.8测试小组的构成与职责 228
本章小结 232
习题 232
第14章 一个自动测试实战项目案例 233
14.1测试项目案例介绍 233
14.2自动测试计划 236
14.2.1自动测试方案的选择 236
14.2.2自动测试计划的内容 236
14.3编写自动测试用例 239
14.4使用QTP开发自动测试脚本 243
14.4.1录制前的准备 244
14.4.2录制回放 245
14.4.3增强脚本的易读性 246
14.4.4输入数据的自动化 249
14.4.5测试结果比较的自动化 251
14.5运行和调试自动测试脚本 252
14.6分析测试结果 252
14.7自动测试执行 254
本章小结 254
习题 254
附录A集成测试计划模板 255
附录B 软件测试计划(STP) 261
附录C软件测试用例 266
附录D软件测试报告(STR) 276