第1章 软件质量保证概述 1
1.1 软件质量保证 1
1.1.1 软件 1
1.1.2 软件错误 3
1.1.3 软件危机 5
1.1.4 质量 7
1.1.5 软件质量 7
1.1.6 软件质量保证 11
1.2 软件质量保证的主要任务 13
1.3 实例 14
小结 14
综合练习一 16
一、选择题 16
二、填空题 17
三、简答题 17
四、上机题 17
第2章 软件质量标准及软件质量保证的标准化 18
2.1 软件质量标准 18
2.2 软件质量保证的标准化 19
2.2.1 MIL-STD-498 21
2.2.2 IEEE-STD-1074 22
2.2.3 ISO/IEC-12207 23
2.2.4 498/CMM 27
2.2.5 498/12207 27
小结 28
综合练习二 30
一、选择题 30
二、填空题 31
三、简答题 31
四、上机题 31
第3章 软件质量的成本 32
3.1 软件质量的概念 32
3.2 输入 34
3.3 输出 35
3.4 质量的总成本 36
3.5 生产率 37
3.6 实例 38
小结 38
综合练习三 39
一、选择题 39
二、填空题 40
三、简答题 40
四、上机题 40
第4章 前期软件质量保证的技术——审查 41
4.1 审查过程 41
4.1.1 主要目标 41
4.1.2 辅助目标 41
4.1.3 审查阶段 42
4.1.4 审查的类型 44
4.1.5 审查缺陷类型与定义 46
4.1.6 审查初始化 46
4.1.7 审查前提 47
4.1.8 审查组 47
4.2 吸取的教训 50
4.2.1 心理学因素 50
4.2.2 审查要客观 51
4.2.3 审查者的限制 51
4.2.4 数据的收集要一致 51
4.2.5 实践 51
小结 53
综合练习四 53
一、选择题 53
二、填空题 53
三、简答题 54
四、上机题 54
第5章 软件质量保证的实施 55
5.1 软件配置管理 55
5.1.1 软件配置管理现实考虑 55
5.1.2 SCM人员的组成 56
5.1.3 建立CCB 58
5.2 Pareto原理 59
5.2.1 Pareto的历史背景 59
5.2.2 经典实例 60
5.3 能力成熟度模型 62
5.3.1 SEI过程能力成熟度模型 62
5.3.2 SPR评价 65
5.4 SQA在软件开发成熟度中的应用 66
5.4.1 过程的认识 66
5.4.2 生产线的隐喻 67
5.4.3 典型的SQA计划内容 69
5.5 实践 72
小结 72
综合练习五 73
一、选择题 73
二、填空题 73
三、简答题 73
四、上机题 74
第6章 软件的质量设计 75
6.1 经典软件开发方法学和其他软件开发方法学 75
6.1.1 经典的软件开发方法学 75
6.1.2 其他软件开发方法学 76
6.2 软件开发模型 77
6.2.1 边做边改模型(Build-and-Fix Model) 77
6.2.2 瀑布模型 78
6.2.3 快速原型模(Rapid Prototype Model) 80
6.2.4 增量模型(Incremental Model) 80
6.2.5 螺旋模型(Spiral Model) 81
6.2.6 喷泉模型(fountain model,(面向对象的生存期模型,OO模型)) 82
6.2.7 演化模型(incremental model) 82
6.2.8 面向模型的变换型软件开发方法(Model Oriented Specification and Transformation) 82
6.3 开发计划和质量计划 84
6.3.1 开发计划的要素 84
6.3.2 质量计划编制 86
6.4 CASE工具介绍 87
6.4.1 什么是CASE 工具 88
6.4.2 CASE相关的问题 89
6.4.3 CASE工具对软件产品质量的作用 90
6.4.4 在SQA中应用CASE工具 91
小结 94
综合练习六 94
一、选择题 94
二、填空题 95
三、简答题 96
四、上机题 96
第7章 软件质量保证的度量 97
7.1 软件质量度量 97
7.1.1 软件过程质量度量 98
7.1.2 产品质量度量 99
7.1.3 软件维护的度量 101
7.1.4 软件质量度量的指标 103
7.2 维护过程 103
7.2.1 维护组织 103
7.2.2 维护报告 104
7.2.3 保存维护纪录 104
7.2.4 评价维护活动 105
7.3 可维护性 105
7.4 应用实施 106
7.4.1 建立有效的软件度量过程 106
7.4.2 弗罗哈克的实用软件度量原则 108
小结 108
综合练习七 108
一、选择题 108
二、填空题 109
三、简答题 109
四、上机题 109
第8章 软件测试概述 110
8.1 测试技术介绍 110
8.1.1 软件测试的背景 110
8.1.2 软件可靠性问题 111
8.1.3 软件缺陷与故障 111
8.1.4 测试的概念 112
8.1.5 软件测试的对象 113
8.1.6 测试必要性 114
8.2 软件测试基础理论 114
8.2.1 软件测试基本问题 114
8.2.2 软件测试的关键问题 114
8.2.3 软件测试的基本理论 115
8.3 管理和计划测试 116
8.3.1 测试与开发各个阶段的关系 116
8.3.2 软件测试的管理和规划 117
8.4 软件测试过程 117
8.4.1 软件开发过程及测试在开发阶段的作用 118
8.4.2 制定测试计划 118
8.4.3 测试执行过程 119
8.5 实战——测试计划 120
8.5.1 编写测试计划的目的 120
8.5.2 计划的纲要 120
小结 121
综合练习八 122
一、选择题 122
二、填空题 122
三、简答题 122
四、上机题 122
第9章 单元测试 123
9.1 单元测试的方法 123
9.1.1 概述 123
9.1.2 测试的内容 124
9.1.3 单元测试过程 126
9.2 单元测试的数据要求 127
9.3 单元测试的测试技术 127
9.4 输入、输出 128
9.4.1 单元测试的输入 128
9.4.2 单元测试的输出 128
9.5 设计单元测试说明 128
9.5.1 测试用例设计步骤 129
9.5.2 用例设计的一般原则 130
9.6 单元测试实践 130
小结 131
综合练习九 131
一、选择题 131
二、填空题 132
三、简答题 132
四、上机题 132
第10章 集成测试 133
10.1 集成测试的概述 133
10.2 集成测试的必要性及其过程 133
10.2.1 计划阶段 133
10.2.2 设计阶段 134
10.2.3 实现阶段 134
10.2.4 执行阶段 134
10.3 集成测试方法 135
10.4 集成测试分析 139
10.4.1 模块分析 139
10.4.2 体系结构分析 140
10.4.3 风险的分析 140
10.4.4 接口分析 140
10.4.5 集成测试策略分析 142
10.4.6 可测试性分析 142
10.4.7 集成测试的数据要求 142
10.5 集成用例设计 142
10.6 输入、输出 142
10.6.1 集成测试的输入 142
10.6.2 集成测试的输出 143
10.7 实践 143
小结 144
综合练习十 144
一、选择题 144
二、填空题 144
三、简答题 144
四、上机题 145
第11章 系统测试 146
11.1 系统测试的内容 146
11.2 系统测试步骤 147
11.3 系统测试的方法和技术 148
11.3.1 进行系统测试应遵循的方法 148
11.3.2 系统测试过程 153
11.4 系统测试人员 155
11.5 输入、输出 155
小结 155
综合练习十一 155
一、选择题 155
二、填空题 156
三、简答题 156
四、上机题 156
第12章 系统集成测试 157
12.1 系统集成测试的方法 157
12.2 系统集成测试技术 157
12.3 系统集成测试的数据要求 157
12.4 系统集成测试的过程 158
12.4.1 构建的确认过程 158
12.4.2 补丁过程 159
12.4.3 系统集成测试组提交过程 160
12.4.4 测试用例设计过程 162
12.4.5 编码过程 163
12.4.6 Bug报告过程 165
12.5 输入、输出 165
12.5.1 输入 166
12.5.2 输出 166
12.6 实践 166
小结 167
综合练习十二 167
一、选择题 167
二、填空题 167
三、简答题 167
四、上机题 168
第13章 回归测试 169
13.1 概述 169
13.2 回归测试的方法 169
13.2.1 如何维护测试用例库 170
13.2.2 如何选择回归测试包 170
13.2.3 回归测试的基本过程 171
13.3 回归测试的数据要求 172
13.4 回归测试的技术 172
13.5 回归测试的输入、输出 172
13.6 面向对象的回归测试 173
13.6.1 对象系统中的依赖 173
13.6.2 方法的测试依赖 174
13.6.3 面向对象软件回归测试 175
13.7 回归测试实践 176
小结 177
综合练习十三 177
一、选择题 177
二、填空题 177
三、简答题 178
四、上机题 178
第14章 验收测试 179
14.1 用户验收测试 179
14.1.1 用户验收测试的方法 179
14.1.2 用户验收测试的技术 179
14.1.3 输入、输出 181
14.2 操作验收测试 181
14.2.1 操作验收测试的方法 181
14.2.2 操作验收测试的数据要求 181
14.2.3 操作验收测试的技术 182
14.2.4 输入、输出 182
14.3 自动化验收测试工具-Selenium 182
14.3.1 Web应用程序测试介绍 182
14.3.2 Selenium介绍 183
14.3.3 Selenium命令 183
14.3.4 Selenium模式 183
14.4 实际使用 186
14.4.1 安装和启动 186
14.4.2 用例 186
14.4.3 软件验收测试工作程序 188
小结 189
综合练习十四 190
一、选择题 190
二、填空题 190
三、简答题 190
四、上机题 190
第15章 测试度量与环境配置 191
15.1 测试过程中常用的度量 191
15.2 建立和管理度量 192
15.3 测试环境的配置与管理 193
15.3.1 配置测试环境 193
15.3.2 管理测试环境 196
15.3.3 测试环境与外界真实环境 198
15.4 软件测试的组织与管理 198
15.4.1 测试的过程及组织 198
15.4.2 测试方法的应用 199
15.4.3 测试的人员组织 200
15.4.4 软件测试文件 200
小结 201
综合练习十五 201
一、选择题 201
二、填空题 202
三、简答题 202
四、上机题 202
第16章 测试工具 203
16.1 使用目的 203
16.2 种类(Types of Testing Tool) 203
16.3 目前主流测试工具 204
16.3.1 单元测试方面:JUnit工具 204
16.3.2 功能测试工具 205
16.3.3 性能/负载/压力测试 209
16.3.4 黑盒测试工具 212
16.3.5 白盒测试工具 213
16.3.6 集成测试工具 213
16.3.7 测试管理工具 214
16.3.8 测试辅助工具 214
16.4 其他测试工具 214
16.5 自动化测试 219
16.6 测试工具 222
小结 224
综合练习十六 224
一、选择题 224
二、填空题 224
三、简答题 224
四、上机题 225
第17章 测试用例设计 226
17.1 软件测试的目标 226
17.2 黑盒测试与白盒测试 226
17.2.1 黑盒测试 226
17.2.2 白盒测试 227
17.3 测试用例的设计 228
17.3.1 逻辑覆盖 228
17.3.2 关于控制结构测试的一些讨论 229
17.3.3 基本路径测试 232
17.3.4 等价类划分 234
17.3.5 边界值分析 235
17.3.6 因果图 235
17.3.7 错误推测法 236
17.3.8 测试用例的设计 236
17.3.9 测试方法选择的综合策略 236
小结 237
综合练习十七 237
一、选择题 237
二、填空题 238
三、简答题 238
四、上机题 239
附录 软件测试中的常见术语中英文对照表 240