单元1 软件测试入门 1
学习目标 1
引例描述 2
任务1 理解软件工程和软件测试的联系及软件测试模型 2
任务陈述 2
知识准备 3
1.1 软件测试 3
1.1.1 早期定义 3
1.1.2 标准定义 3
1.2 软件工程 4
1.2.1 软件工程的由来 4
1.2.2 软件工程的定义 5
1.2.3 软件工程的核心知识(SWEBOK) 6
任务实施 6
任务拓展 18
项目实训 了解软件测试的演变 20
任务2 正确理解和认识软件质量的概念及质量保证体系 20
任务陈述 20
知识准备 21
1.3 软件缺陷 21
1.3.1 软件缺陷的定义 21
1.3.2 软件缺陷产生的原因 22
1.3.3 软件缺陷的修复成本 23
1.4 软件可靠性 24
1.4.1 软件可靠性与硬件可靠性的区别 24
1.4.2 影响软件可靠性的因素 25
1.5 软件质量 26
任务实施 26
任务拓展 32
项目实训 深入理解软件质量 32
任务3 理解软件测试的分类、原则和流程 33
任务陈述 33
知识准备 33
1.6 测试用例 33
1.6.1 测试用例的定义 33
1.6.2 测试用例的重要性 33
1.6.3 测试用例的评价标准 34
1.6.4 测试用例设计的基本原则 35
1.7 测试环境 36
1.7.1 测试环境的定义 36
1.7.2 测试环境的重要性 36
1.7.3 良好测试环境的要素 36
1.7.4 测试环境的规划 37
1.7.5 测试环境的维护和管理 38
1.8 了解软件测试的分类 40
1.8.1 按是否需要执行被测软件的角度划分 40
1.8.2 按阶段划分 40
1.8.3 按测试方法划分 41
1.9 了解软件测试的流程 42
1.9.1 需求分析阶段 43
1.9.2 测试计划制订 43
1.9.3 测试设计 43
1.9.4 执行测试 44
1.9.5 测试分析报告 44
任务实施 44
任务拓展 47
项目实训 对NextDate进行探索性测试 49
单元小结 50
专业能力测评 50
单元练习题 51
单元2 白盒测试 53
学习目标 53
引例描述 54
任务1 对图形识别系统的程序片段按照逻辑覆盖方法编写测试用例 54
任务陈述 54
知识准备 56
2.1 白盒测试 56
2.2 逻辑覆盖 57
任务实施 59
任务拓展 65
项目实训 使用逻辑覆盖法对判断闰年的程序进行测试 68
任务2 对图形识别系统的程序片段按照路径测试方法编写测试用例 68
任务陈述 68
知识准备 69
2.3 基本路径测试 69
2.4 循环测试 73
任务实施 75
任务拓展 76
项目实训 对选择排序采用基本路径测试法和循环测试法进行测试 77
任务3 综合案例分析 78
任务陈述 78
知识准备 79
2.5 白盒测试方法总结 79
2.6 白盒测试的应用策略 79
任务实施 80
任务拓展 81
项目实训 使用白盒测试方法测试程序段 82
单元小结 83
专业能力测评 84
单元练习题 84
单元3 黑盒测试 89
学习目标 89
引例描述 90
任务1 等价类方法 90
任务陈述 90
知识准备 91
3.1 黑盒测试介绍 91
3.2 等价类方法 92
3.2.1 等价类划分 92
3.2.2 等价类测试的分类 94
3.2.3 等价类设计测试用例的方法 96
任务实施 98
任务拓展 100
项目实训 对NextDate函数进行等价类测试与分析 100
任务2 边界值方法 103
任务陈述 103
知识准备 103
3.3 边界值方法 103
3.3.1 边界条件 103
3.3.2 次边界条件 105
3.3.3 边界值设计测试用例的方法 107
任务实施 110
任务拓展 112
项目实训 用边界值方法对三角形问题进行测试用例设计与分析 113
任务3 决策表方法 114
任务陈述 114
知识准备 114
3.4 决策表 114
3.4.1 决策表的构成 114
3.4.2 决策表的化简 115
3.4.3 决策表设计测试用例的方法 116
任务实施 118
任务拓展 120
项目实训 用决策表方法对NextDate函数问题设计测试用例 120
任务4 因果图方法 124
任务陈述 124
知识准备 124
3.5 因果图 124
3.5.1 4种符号 124
3.5.2 4种约束 124
3.5.3 因果图设计测试用例的方法 125
任务实施 127
任务拓展 128
项目实训 对中国象棋中走马问题,用因果图方法设计测试用例 128
任务5 正交表方法 129
任务陈述 129
知识准备 130
3.6 正交实验法 130
3.6.1 正交表的概念和特性 130
3.6.2 正交实验法设计测试用例的方法 131
任务实施 136
任务拓展 138
项目实训 公司内部邮件系统测试 138
任务6 黑盒测试方法综合策略 139
任务陈述 139
知识准备 140
3.7 其他黑盒测试方法 140
3.7.1 特殊值测试 140
3.7.2 故障猜测法 141
3.8 黑盒测试方法选择的综合策略 141
任务实施 142
任务拓展 145
项目实训 网上订餐管理系统的测试 146
单元小结 148
专业能力测评 148
单元练习题 148
单元4 单元测试 151
学习目标 151
引例描述 152
任务1 使用JUnit测试简单的Java程序 152
任务陈述 152
知识准备 153
4.1 单元测试的基本概念 153
4.1.1 什么是单元测试 153
4.1.2 为什么要进行单元测试 153
4.1.3 如何进行单元测试 154
4.2 JUnit的基本应用 155
4.2.1 JUnit简介 155
4.2.2 JUnit下载和安装 156
4.3 JUnit的简单应用 156
4.3.1 编写被测案例的代码 156
4.3.2 编写测试代码 157
4.3.3 运行测试用例 158
任务实施 159
任务拓展 163
项目实训 日期字符串的单元测试 164
任务2 使用JUnit测试自动售货机程序 164
任务陈述 164
知识准备 164
4.4 JUnit核心类与接口 164
4.4.1 JUnit的核心类 165
4.4.2 JUnit其他接口 166
4.4.3 TestCase(测试用例) 168
4.5 JUnit断言 169
4.6 JUnit测试套件 170
4.6.1 运行自动Suite 170
4.6.2 编写自己的TestSuite 171
4.7 探究JUnit 4 171
4.7.1 常用注解 172
4.7.2 测试套件 174
4.7.3 参数化测试 175
任务实施 176
任务拓展 189
项目实训 堆栈类的单元测试 189
单元小结 189
专业能力测评 190
单元练习题 190
单元5 测试管理 193
学习目标 193
引例描述 194
任务1 完成单元测试计划 194
任务陈述 194
知识准备 195
5.1 单元测试的概念 195
5.2 单元测试的内容 196
5.3 单元测试计划 197
任务实施 202
任务拓展 207
项目实训 Discuz! X2.5系统的单元测试计划书 207
任务2 设计实现单元测试及集成测试策略 207
任务陈述 207
知识准备 208
5.4 单元测试方法 208
5.5 单元测试环境 209
5.6 单元测试策略 211
5.7 单元测试实现 212
5.8 集成测试的概念 212
5.9 集成测试的评价 213
5.10 集成测试策略 214
任务实施 217
任务拓展 224
项目实训 Discuz! X2.5系统的单元测试设计说明书 225
任务3 进行测试用例的组织和管理 225
任务陈述 225
知识准备 225
5.11 测试用例报告 225
任务实施 228
任务拓展 233
项目实训 Discuz! X2.5系统测试用例的组织与管理 233
任务4 进行缺陷管理 233
任务陈述 233
知识准备 233
5.12 缺陷的状态 233
5.13 缺陷的处理方式 235
5.14 缺陷的处理流程 236
任务实施 236
任务拓展 241
项目实训 Discuz! X2.5系统的缺陷管理 241
单元小结 241
专业能力测评 241
单元练习题 242
单元6 自动化测试 243
学习目标 243
引例描述 244
任务1 自动化功能测试入门 244
任务陈述 244
知识准备 245
6.1 软件测试自动化 245
6.1.1 自动化测试的优势和局限性 245
6.1.2 如何开展软件自动化测试 246
6.2 自动化测试工具 248
6.3 QTP 248
6.3.1 认识QTP 249
6.3.2 QTP的测试流程 250
6.4 测试脚本 251
6.5 测试结果 251
6.6 飞机订票系统分析 252
6.6.1 Web版 252
6.6.2 单机版 252
任务实施 253
任务拓展 257
项目实训 测试计算器程序 258
任务2 对飞机订票系统进行自动化功能测试 259
任务陈述 259
知识准备 259
6.7 关键字驱动测试 259
6.7.1 关键字驱动测试的含义 259
6.7.2 关键字驱动测试框架 259
6.7.3 关键字驱动测试的步骤 261
6.8 检查点 262
6.9 数据驱动测试 262
6.9.1 数据驱动测试的步骤 263
6.9.2 测试脚本参数化的方式 263
6.9.3 外部数据源的数据驱动测试 263
任务实施 264
任务拓展 276
项目实训 测试新浪微博 278
任务3 性能测试入门 278
任务陈述 278
知识准备 279
6.10 性能测试的概念 279
6.10.1 功能与性能的关系 279
6.10.2 各个角色关注的性能 279
6.10.3 衡量软件性能的常见指标 280
6.11 开展性能测试的方法和策略 281
6.11.1 性能测试的特点 281
6.11.2 如何开展性能测试 282
6.11.3 性能测试工具的评估和选择 283
6.12 负载测试 284
6.13 压力测试 284
6.14 负载压力测试 285
任务实施 286
任务拓展 291
项目实训 网上购物系统性能测试分析 292
单元小结 293
专业能力测评 293
单元练习题 293
参考文献 296