第1章 软件测试概述11.1 软件质量的定义1
1.2 软件测试的基本概念3
1.2.1 软件测试的定义3
1.2.2 软件缺陷的定义和种类4
1.2.3 软件测试的分类5
1.2.4 软件测试的原则6
1.3 软件测试的目的7
1.4 软件测试的生命周期8
1.4.1 软件测试的纵向过程8
1.4.2 软件测试的横向过程10
1.5 软件测试与软件开发生命周期11
1.5.1 顺序生命周期模型11
1.5.2 渐进开发生命周期模型13
1.5.3 迭代生命周期模型13
第2章 软件测试方法15
2.1 软件测试方法概述15
2.2 静态测试和动态测试16
2.2.1 静态测试16
2.2.2 动态测试17
2.3 黑盒测试方法17
2.3.1 黑盒测试方法概述17
2.3.2 等价类划分法18
2.3.3 边界值分析法20
2.3.4 决策表法22
2.3.5 因果图法24
2.3.6 各种黑盒测试方法的选择28◆软件测试技术与实践目 录 2.3.7 黑盒测试的优缺点29
2.4 白盒测试方法29
2.4.1 逻辑覆盖测试29
2.4.2 路径分析测试34
第3章 软件测试过程39
3.1 概述39
3.2 软件测试计划40
3.2.1 制定测试计划的作用和原则40
3.2.2 测试计划的内容41
3.3 测试用例44
3.3.1 测试用例定义45
3.3.2 测试用例在软件测试中的作用45
3.3.3 测试用例设计的基本原则46
3.3.4 测试用例设计应注意的问题46
3.3.5 测试用例的编写标准48
3.4 软件测试的过程模型49
3.4.1 V模型49
3.4.2 W模型50
3.4.3 H模型52
3.4.4 各种测试模型的使用53
3.5 软件测试实施过程53
3.5.1 单元测试 53
3.5.2 集成测试58
3.5.3 确认测试60
3.5.4 系统测试61
3.5.5 验收测试62
3.5.6 回归测试63
第4章 bug跟踪管理64
4.1 软件缺陷的定义64
4.2 产生缺陷的原因64
4.3 缺陷如何穿透测试66
4.4 缺陷的分类68
4.5 缺陷的生命周期73
4.6 缺陷的严重程度和优先级75
4.7 缺陷的描述77
第5章 软件自动化测试基本理论79
5.1 软件自动化测试基础79
5.1.1 自动化测试的定义79
5.1.2 自动化测试的对象80
5.1.3 自动化测试的优势和局限80
5.1.4 国内软件自动化测试实施现状分析82
5.1.5 软件自动化测试的引入条件83
5.1.6 自动化测试的运用步骤 87
5.2 软件自动化测试工具88
5.2.1 自动化测试工具的作用及优势88
5.2.2 自动化测试工具分类89
5.2.3 常用自动化测试工具简介90
第6章 功能测试99
6.1 QTP简介99
6.2 QTP安装100
6.3 测试流程101
6.4 Windows应用程序测试102
6.4.1 QTP主界面102
6.4.2 应用程序实例--飞机订票系统Flight104
6.4.3 录制测试104
6.4.4 运行测试105
6.4.5 分析测试结果106
6.4.6 产生检查点106
6.4.7 参数化测试109
6.5 Web站点测试112
6.5.1 准备录制112
6.5.2 录制Web上的会话114
6.5.3 增强及调试测试116
6.5.4 运行测试118
6.5.5 分析测试报告并提交缺陷119
第7章 面向对象的单元测试123
7.1 面向对象的单元测试123
7.1.1 单元测试123
7.1.2 类测试123
7.1.3 类测试过程124
7.1.4 测试用例应用125
7.1.5 测试驱动126
7.1.6 单元测试扩展127
7.2 JUnit骨架128
7.2.1 JUnit设计原则128
7.2.2 JUnit安装129
7.2.3 软件测试自动化骨架130
7.2.4 JUnit断言131
7.2.5 理解测试用例133
7.2.6 TestResult类135
7.2.7 测试包的实现136
7.2.8 事件监听者实现138
7.3 Eclipse中JUnit的使用139
第8章 负载测试141
8.1 LoadRunner程序安装141
8.1.1 Windows系统下LoadRunner的安装141
8.1.2 许可协议和样例安装141
8.2 LoadRunner简介143
8.3 协议选择144
8.4 创建脚本145
8.4.1 虚拟用户生成器145
8.4.2 录制业务146
8.4.3 查看脚本147
8.5 编辑脚本148
8.6 负载测试与运行过程150
8.6.1 LoadRunner Controller简介150
8.6.2 负载测试152
8.6.3 分析结果154
8.7 系统性能测试155
8.7.1 Run-Time Setting配置155
8.7.2 监控负载下的应用程序156
8.7.3 测试期间增加负载158
第9章 测试流程自动化159
9.1 JIRA介绍159
9.1.1 JIRA的主要功能159
9.1.2 JIRA版本说明160
9.1.3 JIRA涉及的角色160
9.2 JIRA的概念160
9.2.1 问题160
9.2.2 项目162
9.3 JIRA的应用162
9.3.1 安装与配置162
9.3.2 登录和注册163
9.3.3 创建新项目165
9.3.4 创建项目类别166
9.3.5 添加用户和组167
9.3.6 创建问题167
9.3.7 浏览项目169
9.3.8 查找问题和配置过滤器169
9.4 项目配置170
9.4.1 添加项目和模块170
9.4.2 设置项目权限171
9.4.3 选择通知方案171
9.5 JIRA系统的权限171
9.5.1 全局权限设置172
9.5.2 默认权限模型172
第10章 软件质量保证与软件测试174
10.1 质量保证174
10.1.1 全面质量管理 174
10.1.2 质量保证与质量控制176
10.1.3 软件质量标准177
10.2 软件质量保证178
10.2.1 SQA概要178
10.2.2 SQA实施的步骤、措施179
10.2.3 SQA活动 181
10.3 评审182
10.3.1 评审概要182
10.3.2 正式技术复审184
10.3.3 同行评审188
10.3.4 评审方法的比较194
10.4 软件测试管理195
10.4.1 测试团队和开发团队的协作196
10.4.2 测试人员应具备的素质198
10.4.3 如何成为一名优秀的测试工程师200
第11章 软件测试案例203
11.1 案例概述203
11.1.1 被测试软件项目的背景203
11.1.2 客户端系统介绍203
11.1.3 客户端系统功能需求分析203
11.2 项目测试计划205
11.2.1 概述205
11.2.2 定义206
11.2.3 测试进度计划206
11.2.4 进入标准206
11.2.5 退出标准206
11.2.6 测试环境配置207
11.2.7 测试开发207
11.2.8 关键参与者208
11.3 测试过程208
11.3.1 单元测试208
11.3.2 集成测试209
11.3.3 系统测试210
11.3.4 验收测试210
11.4 测试用例设计210
11.4.1 测试覆盖设计211
11.4.2 功能测试用例211
11.5 测试报告和分析216
11.5.1 缺陷报告216
11.5.2 测试总结报告216
11.5.3 测试用例分析217
11.5.4 软件测试结果统计分析218
附录A 术语表220
附录B IEEE模板226
参考文献230