本书系统地介绍了软件测试的基本概念和基本知识,以及软件测试的基本技术、测试原理、测试过程、测试用例设计、测试报告和测试评测、测试管理、测试工具等内容。本书内容由易到难、深入浅出,简明且通俗易懂。通过学习本书,读者能够较好地掌握软件测试的基本知识和基本技术。另外,本书的最后两章介绍了自动化测试工具,目的在于激发读者对软件测试技术和自动化测试技术的兴趣。
本书适合作为高职高专院校软件测试课程的教材或者软件测试培训班的教材,也可作为软件测试人员的自学参考书。
只要有软件存在的地方,就需要软件测试技术。随着信息技术的飞速发展和互联网技术行业的崛起,软件测试的重要作用日益突出。
软件测试是一门学科同时也是一门艺术,又是一个专业,它要求从业人员具有丰富的软件理论知识和从各个角度衡量评价软件质量的能力,从而客观地欣赏软件的优点并找出软件的缺陷。
本书由多位具有丰富教学经验的高校教师合作编写。在本书的编写过程中,我们融入了多年的软件测试课程教学经验和软件测试的实践经验,因此本书有通俗易懂、易于学习理解和实践性较强等特点。
本书适应高职高专院校软件测试专业及软件技术专业中软件测试课程的需要,理论联系实际,为培养既有深厚理论知识又有丰富实践能力的高技能人才而编写。本书内容丰富,涵盖了软件测试的各项基本技能知识。在本书的编写过程中,注意内容的先进性,将软件测试的新概念、新技术、新方法编入其中;在内容安排上,注意由易到难、深入浅出,并配有丰富的实例,使学生能系统地掌握软件测试理论和技术。
本书系统地介绍了软件测试的基本概念和基本知识,软件测试的基本技术、测试过程、测试用例设计、测试工具,如何报告软件缺陷,如何评估测试和测试文档,软件测试计划、自动化测试、软件测试项目管理等内容。全书共10章。第1章为软件测试概述,主要介绍软件测试的定义、分类,软件中的Bug,软件测试的职业素质与要求,软件测试质量管理与评估等。第2章为软件测试基础,主要介绍软件开发模型、软件测试的目的与原则、软件测试过程、软件测试方法等。第3章为黑盒测试,主要介绍等价类、边界值、判定表、因果图、场景法等常用的黑盒测试方法。第4章为白盒测试,主要介绍白盒测试过程与任务、逻辑覆盖和基本路径等白盒测试方法。第5章为软件测试过程,主要介绍单元测试、集成测试、系统测试和验收测试。第6章为测试报告和测试评测,主要介绍软件缺陷、测试总结报告、测试评测、质量评测等。第7章为测试项目管理,主要介绍测试项目管理的相关概念、测试文档、软件测试计划、测试的组织与人员管理、软件测试过程管理、软件测试风险管理、软件测试成本管理、软件测试配置管理等。第8章为软件自动化测试概述,主要介绍软件自动化测试的概念、软件自动化测试的意义、开展自动化测试的方法、软件自动化测试工具等。第9章为功能测试工具QTP,主要介绍QTP的安装及使用。第10章为测试管理工具TestLink,主要介绍测试管理工具TestLink的安装与使用。
由于编者水平有限,加上时间仓促,书中不妥之处在所难免,请读者批评指正,提出宝贵意见和建议。
第1章 软件测试概述 1
1.1 软件测试技术 1
1.1.1 行业背景 1
1.1.2 软件测试的由来 2
1.1.3 软件测试的定义 2
1.1.4 软件测试的分类 3
1.1.5 软件测试技术的发展 5
1.2 软件中的Bug 6
1.2.1 软件Bug的定义 6
1.2.2 软件Bug的类型 6
1.2.3 软件Bug的级别 6
1.2.4 软件Bug的产生 6
1.2.5 软件Bug的构成 7
1.2.6 修复Bug的代价 7
1.2.7 Bug的影响 8
1.3 软件测试的职业素质与要求 8
1.3.1 软件测试职业发展 8
1.3.2 软件测试人员工作目标与必备素质 9
1.4 软件质量管理与评估 12
1.4.1 软件质量的定义 12
1.4.2 软件质量的属性 12
1.4.3 软件质量的模型 13
1.4.4 软件质量的度量 14
习题与思考 14
第2章 软件测试基础 15
2.1 软件开发模型 15
2.2 软件测试的目的和原则 18
2.2.1 软件测试的目的 18
2.2.2 软件测试的原则 19
2.3 软件测试的模型 19
2.4 软件测试过程 21
2.4.1 单元测试 21
2.4.2 集成测试 22
2.4.3 系统测试 23
2.4.4 验收测试 24
2.5 黑盒测试和白盒测试 25
2.5.1 黑盒测试 25
2.5.2 白盒测试 26
2.5.3 黑盒测试与白盒测试比较 27
2.6 静态测试与动态测试 27
2.7 验证测试与确认测试 29
习题与思考 30
第3章 黑盒测试 31
3.1 等价类测试 31
3.1.1 等价类的概念 31
3.1.2 等价类测试的类型 32
3.1.3 等价类测试的原则 34
3.1.4 等价类方法设计举例 35
3.2 边界值测试 36
3.2.1 边界值分析的概念 36
3.2.2 选择测试用例的原则 37
3.2.3 边界值分析设计举例 37
3.3 基于判定表的测试 38
3.3.1 判定表的概念 38
3.3.2 基于判定表的设计举例 38
3.4 基于因果图的测试 39
3.4.1 因果图的适用范围 40
3.4.2 因果图图形符号介绍 40
3.4.3 因果图法测试用例设计举例 41
3.5 基于场景的测试 42
3.6 其他黑盒测试 43
3.6.1 错误推测法 43
3.6.2 基于接口的测试 46
3.6.3 基于故障的测试 46
3.6.4 基于风险的测试 46
3.6.5 比较测试 47
3.7 测试用例的编写 47
习题与思考 48
第4章 白盒测试 49
4.1 白盒测试简介 49
4.2 白盒测试过程 50
4.3 白盒测试任务 51
4.4 逻辑覆盖 53
4.4.1 覆盖率的概念 53
4.4.2 逻辑覆盖测试法 53
4.5 逻辑覆盖测试用例设计举例 57
4.5.1 测试用例设计 60
4.5.2 测试结果分析 68
4.6 基本路径测试法 68
4.6.1 基本路径测试法简介 68
4.6.2 基本路径测试法举例 68
习题与思考 71
第5章 软件测试过程 72
5.1 软件测试过程概述 72
5.2 单元测试 73
5.2.1 单元测试定义 73
5.2.2 单元测试内容 74
5.2.3 单元测试方法 75
5.2.4 单元测试环境 76
5.2.5 单元测试过程 77
5.2.6 单元测试人员 79
5.2.7 测试工具简介 80
5.3 集成测试 81
5.3.1 集成测试的定义 81
5.3.2 测试目标 81
5.3.3 集成测试的原则 81
5.3.4 集成测试的策略 82
5.3.5 集成测试过程 86
5.3.6 集成测试人员 88
5.4 系统测试 88
5.4.1 系统测试定义 88
5.4.2 系统测试目标 88
5.4.3 系统测试的主要测试技术 88
5.4.4 系统测试的过程 91
5.4.5 系统测试经验总结 92
5.4.6 系统测试人员 92
5.5 验收测试 92
5.5.1 验收测试定义 92
5.5.2 验收测试目标 92
5.5.3 验收测试的主要内容 92
5.5.4 验收测试技术和测试数据 93
5.5.5 验收测试人员 93
习题与思考 94
第6章 测试报告和测试评测 95
6.1 软件缺陷 95
6.1.1 软件缺陷简介 95
6.1.2 软件缺陷产生的原因 96
6.1.3 软件的有效简述规则 97
6.1.4 软件缺陷的属性 97
6.2 分离再现软件缺陷 101
6.3 正确面对软件缺陷 101
6.4 软件缺陷生命周期及处理技巧 102
6.4.1 软件缺陷生命周期概述 102
6.4.2 软件缺陷处理技巧 104
6.5 报告软件缺陷 104
6.5.1 报告软件缺陷的基本原则 106
6.5.2 IEEE软件缺陷报告模板 106
6.6 软件缺陷的跟踪管理 108
6.7 测试总结报告 110
6.8 测试的评测 11
6.9 质量评测 112
习题与思考 113
第7章 测试项目管理 115
7.1 测试项目管理概述 115
7.1.1 测试项目与测试项目管理 115
7.1.2 测试项目的范围管理 116
7.2 测试文档 117
7.2.1 测试文档的作用 117
7.2.2 主要软件测试文档 118
7.3 软件测试计划 121
7.3.1 制订测试计划的目的 121
7.3.2 制订测试计划的原则 122
7.3.3 制订测试计划时面对的问题 122
7.3.4 制订测试计划 123
7.3.5 如何做好测试计划 126
7.4 测试的组织与人员管理 128
7.4.1 测试的组织与人员管理概述 128
7.4.2 软件测试对组织结构和人员的
要求 129
7.5 软件测试过程管理 132
7.5.1 测试项目的跟踪与监控 132
7.5.2 测试项目的过程管理 132
7.6 软件测试风险管理 133
7.7 软件测试成本管理 135
7.7.1 软件测试成本管理概述 135
7.7.2 软件测试成本管理中的基本概念 135
7.7.3 软件测试项目成本管理的基本
原则和措施 136
7.8 软件测试配置管理 138
习题与思考 139
第8章 软件自动化测试概述 141
8.1 软件自动化测试的产生 141
8.2 软件自动化测试的概念 141
8.3 软件自动化测试的意义 142
8.4 开展自动化测试的方法 144
8.5 软件自动化测试的原理和方法 145
8.6 软件自动化测试工具 146
8.6.1 测试工具分类 146
8.6.2 目前市场上主流的测试工具 148
习题与思考 153
第9章 功能测试工具QTP 154
9.1 QTP简介 154
9.2 QTP的安装 155
9.2.1 安装要求 156
9.2.2 QTP支持的环境和程序 156
9.2.3 安装步骤 156
9.2.4 QTP程序界面 160
9.2.5 测试样例 162
9.3 QTP基本使用方法 163
9.3.1 录制测试脚本 164
9.3.2 编辑测试脚本 167
9.3.3 调试测试脚本 178
9.3.4 分析测试结果 181
习题与思考 183
第10章 测试管理工具TestLink 184
10.1 TestLink简介 184
10.2 安装TestLink 185
10.3 初始设置 188
10.3.1 创建项目(产品) 188
10.3.2 设置用户 189
10.4 测试需求管理 191
10.5 创建测试计划 192
10.5.1 测试计划管理 192
10.5.2 测试计划版本管理 192
10.5.3 指派用户角色 193
10.6 测试用例管理 193
10.6.1 新建测试用例集 193
10.6.2 创建测试用例 194
10.7 测试计划用例管理 195
10.7.1 添加测试用例到测试计划中 195
10.7.2 移除测试用例 196
10.7.3 分配测试任务 196
10.8 执行测试和报告缺陷 197
10.8.1 执行测试 197
10.8.2 报告缺陷 197
10.8.3 测试结果分析 198
习题与思考 199
参考文献 200