第Ⅰ部分 质量保证 3
第1章 质量简介 3
1.1简介 3
1.2质量的历史展望 4
1.3质量的概念(它是事实还是感知) 4
1.4质量定义 6
1.5质量的关键要素 7
1.5.1质量以客户获得产品的满足感为基础 7
1.5.2机构在实现产品质量之前必需定义好质量参数 8
1.5.3管理者在机构改进中起领导作用 8
1.5.4连续(持续)过程改进是必要的 9
1.6质量观点 10
1.6.1客户的质量观 11
1.6.2供应商的质量观 12
1.6.3用户差异/需求差异 13
1.6.4生产者差异/开发差异 14
1.7经济方面的质量 14
1.7.1制造成本 15
1.7.2质量成本 15
1.8质量定义 16
1.9客户、供应商和过程 16
1.10全面质量管理 17
1.11 TQM的质量原则 18
1.11.1开发各种首创内容定义和部署目的的恒定性 18
1.11.2通过建立信心和联系来适应管理人员/利益相关方的新哲学 18
1.11.3从对所得内容和产生的输出进行的大量检查中摆脱出来 18
1.11.4停止与标有最低价的供应商签订合同 18
1.11.5改进开发和产品测试中使用的所有过程 19
1.11.6将对整个机构中所有人的培训形成制度 19
1.11.7将机构中所有层次的领导能力制度化 19
1.11.8驱散员工对失败的恐惧 19
1.11.9打破功能/部门间的障碍 19
1.11.10消除数字、目标、目的式规劝 20
1.11.11消除随意的、不被过程支持的数字化目标 20
1.11.12让员工为工艺而自豪 20
1.11.13鼓励新技能和新技术的教育 20
1.11.14高层管理者的承诺和持续改进活动 20
1.12通过统计过程控制进行质量管理 21
1.12.1所有层次的质量计划 21
1.12.2.质量控制 21
1.12.3质量改进 21
1.13通过文化变化进行质量管理 21
1.14持续改进周期 22
1.15 不同区域的质量 23
1.16基准和尺度 24
1.17解决问题的技术 24
1.18解决问题的软件工具 25
1.18.1使用软件工具进行分析并作出决策的优点 25
1.18.2使用计算机工具进行分析并作出决策的缺点 25
1.18.3工具 26
1.18.4技术 26
1.19本章小结 26
1.20本章回顾 27
第2章 软件质量 28
2.1概述 28
2.2软件产品质量评估的限制 28
2.3客户是上帝 29
2.4质量和生产率之间的关系 30
2.5产品需求 32
2.6机构文化 33
2.7软件的特征 35
2.8软件开发过程 35
2.8.1瀑布开发方法/模型 35
2.8.2迭代开发方法/模型 36
2.8.3增量开发方法/模型 36
2.8.4螺旋开发方法/模型 37
2.8.5原型开发方法/模型 38
2.8.6快速应用开发方法/模型 38
2.8.7敏捷开发方法/模型 38
2.8.8维护开发方法/模型 39
2.9产品类型 39
2.9.1生活必需品 40
2.9.2影响收入的产品 40
2.9.3只能使用模拟器测试的产品 40
2.9.4其他产品 40
2.10部分其他重要性定义方案 41
2.10.1从用户角度看 41
2.10.2另外一种来自用户角度的方法 41
2.10.3开发人员眼中的重要性 41
2.11软件开发生命周期中存在问题的领域 42
2.11.1需求阶段存在的问题 42
2.11.2每次开发的产品一般都是唯一的 43
2.11.3开发过程中产品存在不确定性,方法也是多种多样 43
2.11.4不可能进行全面的检查 43
2.11.5无法立刻了解差质量的效果 44
2.11.6将质量嵌入在产品中 44
2.11.7根据产品/客户的不同,质量目标也会存在差异 44
2.12软件质量管理 46
2.13为什么软件会存在缺陷 46
2.14与软件质量相关的过程 47
2.14.1愿景 47
2.14.2任务 47
2.14.3政策 47
2.14.4目标 48
2.14.5策略 48
2.14.6目的 48
2.14.7价值 48
2.15 质量管理系统的结构 48
2.15.1第一层——质量政策 49
2.15.2第二层——质量目标 49
2.15.3第三层——质量指南 49
2.16质量管理系统的支柱 49
2.16.1质量过程质量流程/工作指令 49
2.16.2指导方针和标准 49
2.16.3格式和模板 50
2.17质量管理重要的方面 50
2.17.1机构层次的质量计划 50
2.17.2项目层次的质量计划 50
2.17.3资源管理 50
2.17.4工作环境 51
2.17.5与客户相关的过程 51
2.17.6质量管理系统文档和数据控制 51
2.17.7验证和确认 51
2.17.8软件项目管理 51
2.17.9软件配置管理 52
2.17.10软件尺度和测量 52
2.17.11软件质量审查 52
2.17.12分包合同管理 53
2.17.13信息安全管理 53
2.17.14管理检查 53
2.18本章小结 54
2.19本章回顾 54
第Ⅱ部分 软件测试的基本概念 59
第3章 软件测试基础 59
3.1简介 59
3.2软件测试的历史展望 59
3.2.1面向调试的测试 60
3.2.2面向演示的测试 60
3.2.3面向破坏的测试 60
3.2.4面向评价的测试 60
3.2.5面向预防的测试 60
3.3测试的定义 61
3.4测试方法 62
3.4.1 Big bang测试方法 62
3.4.2全面质量管理方法 62
3.4.3全面质量管理与Big bang方法 63
3.4.4成本观中的TQM 64
3.4.5 Big bang方法的特征 64
3.5流行的测试定义 65
3.5.1传统的测试定义 65
3.5.2什么是测试 66
3.5.3经理的软件测试观 67
3.5.4测试人员的软件测试观 67
3.5.5客户的软件测试观 67
3.5.6测试目标 67
3.5.7测试的基本原则 68
3.5.8成功的测试人员 68
3.5.9成功的测试案例 68
3.6开发生命周期中的测试 69
3.7需求跟踪矩阵 70
3.7.1需求跟踪矩阵的优点 70
3.7.2需求跟踪矩阵存在的问题 71
3.7.3水平跟踪性 71
3.7.4双向跟踪性 71
3.7.5垂直跟踪性 72
3.7.6风险跟踪性 72
3.8软件测试的本质 72
3.9工作台 73
3.10测试过程的重要特征 75
3.11关于测试的误解 77
3.12软件测试的原则 77
3.13良好测试的显著特征 78
3.14测试政策 79
3.15测试策略或测试方法 79
3.16测试计划 79
3.17测试过程以及测试中可以发现的缺陷数 81
3.18测试团队的效率 81
3.19变异测试 82
3.20测试中的挑战 83
3.21测试团队方式 84
3.21.1 测试团队在机构中的位置 84
3.21.2开发人员变为测试人员 85
3.21.3独立测试团队 86
3.21.4由领域专家参与的软件测试 86
3.22测试面临的过程问题 87
3.23测试成本方面 89
3.23.1测试成本评估 90
3.23.2测试中的预防成本 91
3.23.3测试中的评价成本 91
3.23.4测试中的失效成本 91
3.24建立测试政策 92
3.25方法 92
3.26结构化测试方法 93
3.27缺陷的分类 93
3.27.1以需求/设计规范为基础 93
3.27.2缺陷类型 93
3.27.3产生缺陷的根本原因 94
3.28软件中的缺陷、错误或失误 94
3.29开发测试策略 94
3.30开发测试方法(测试计划) 95
3.30.1按照以前的定义获取并研究测试策略 95
3.30.2确定正在执行的开发项目的类型 95
3.30.3确定正在开发的软件系统的类型 96
3.30.4识别与开发有关的策略性风险 96
3.30.5确定测试在生命周期中发生的时机 96
3.30.6开发客户化测试策略的步骤 97
3.30.7开发方法类型影响测试计划决定 97
3.31测试过程 98
3.32测试态度(常见的人的问题) 99
3.33测试方法 100
3.33.1黑盒测试(领域测试规范测试) 100
3.33.2白盒测试 101
3.33.3灰盒测试 102
3.34软件测试中人的挑战 103
3.35提高测试管理意识 103
3.36测试人员需要的技能 104
3.36.1一般技能 104
3.36.2测试技能 105
3.37本章小结 106
3.38本章回顾 106
第4章 配置管理 108
4.1简介 108
4.2配置管理 108
4.2.1可配置和不可配置工件 109
4.2.2受管理工件和受控工件 109
4.3配置管理周期 109
4.4配置管理过程 111
4.5审查配置库 114
4.6配置项 114
4.7基线 115
4.8几个与配置库相关的概念 115
4.9库中配置项的存储 115
4.9.1分支 115
4.9.2合并 116
4.9.3查找历史 116
4.9.4比较 116
4.9.5回滚 116
4.9.6贴标签 117
4.9.7锁定 117
4.9.8共享 117
4.9.9冲突处理 117
4.10使用自动配置工具 118
4.10.1使用工具的优点 118
4.10.2使用工具的缺点 118
4.10.3常见的自动配置管理工具 118
4.11配置管理计划 119
4.11.1引言 119
4.11.2范围 119
4.11.3配置管理活动和责任 119
4.11.4访问特权 120
4.11.5配置管理流程 120
4.11.6包含命名规范的配置项 120
4.11.7变化控制 120
4.11.8工作文件夹定义 121
4.11.9注释标准 121
4.11.10贴标签标准 121
4.11.11工具和用途 121
4.11.12假定和风险 121
4.11.13配置状态报告 121
4.11.14跟踪矩阵 122
4.11.15集成和构建流程 122
4.11.16配置管理审查 122
4.11.17维护活动和配置管理 122
4.11.18配置管理测量 122
4.12本章小结 123
4.13本章回顾 123
第5章 风险分析 124
5.1简介 124
5.2自动化系统的优势 124
5.3自动化系统的弊端 125
5.4风险 125
5.5约束(警告) 126
5.6项目风险(项目管理风险) 126
5.6.1组织因素造成的风险 126
5.6.2政治问题引发的风险 127
5.6.3技术问题造成的风险 127
5.6.4供应商问题引发的风险 127
5.7产品风险 128
5.8因为软件系统而面临的风险 129
5.8.1开发过程中技术的不合理使用 129
5.8.2错误反复出现 129
5.8.3错误的级联效应(连锁反应) 129
5.8.4不合逻辑事务的处理 130
5.8.5缺乏把用户需求转化为系统技术需求的能力 130
5.8.6对开发/使用所选技术缺少控制能力 131
5.8.7系统中输入错误的数据 131
5.8.8数据聚集在少数几个地方 132
5.8.9缺少对用户需求变化做出快速反应的能力 132
5.8.10缺少灾难后校验处理的能力 132
5.8.11人员责任的集中 133
5.8.12系统接受错误或伪造的输入数据 133
5.8.13系统授权用户误用权限 134
5.8.14用户/外来者不受控制的系统访问 134
5.8.15 失败的系统安全设计和用户隐私行为 135
5.8.16生产/操作过程中的流程错误 136
5.8.17通信系统缺陷/失败 138
5.9软件实现风险 139
5.9.1不恰当的进度表和预算 140
5.9.2开发过程/测试过程资格 140
5.10风险识别 140
5.11软件风险的类型 142
5.12测试中风险的处理 143
5.12.1固有风险和剩余风险 143
5.12.2依照现状接受风险 143
5.12.3避开/避免风险 143
5.12.4风险预防 144
5.12.5风险缓解 144
5.12.6化解风险 144
5.12.7意外事件计划 144
5.13风险控制管理措施的类型 144
5.14风险和测试 146
5.14.1可能性 146
5.14.2严重性 146
5.15 测试中的假设 147
5.16可看作风险降低项目的测试(测试中的优先级) 147
5.17测试风险 148
5.17.1杀虫剂悖论效应 148
5.17.2测试工具的潜在益处和风险 149
5.18本章小结 151
5.19本章回顾 152
第6章 软件验证与确认 153
6.1简介 153
6.2验证 154
6.2.1验证的优点 154
6.2.2验证的缺点 154
6.2.3验证的前提 154
6.3验证工作台 155
6.4验证的方法 155
6.4.1自评 156
6.4.2同行评审 156
6.4.3上级评审 157
6.4.4走查 158
6.4.5检查 158
6.4.6审计 161
6.5阶段性评审的类型 162
6.5.1过程中评审 162
6.5.2实现后评审 164
6.6验证涉及的具体实体 165
6.7测试生命周期中的评审 165
6.7.1测试就绪评审 165
6.7.2测试结束评审 167
6.8验证中的覆盖(测试设计) 167
6.8.1语句覆盖 167
6.8.2路径覆盖 167
6.8.3判断覆盖 168
6.8.4判断到判断的路径覆盖(DD路径覆盖) 168
6.8.5好的域和差的域 169
6.9验证的关注点 169
6.9.1使用正确的验证技术 169
6.9.2在SDLC中集成验证活动 169
6.9.3验证可用的资源和技能 170
6.10确认 170
6.10.1确认的优点 170
6.10.2确认的缺点 170
6.10.3确认的前提 171
6.11确认工作台 171
6.12确认层次 172
6.12.1单元测试 172
6.12.2集成测试 172
6.12.3接口测试 172
6.12.4系统测试 172
6.12.5因果图 173
6.12.6路径表达式和正则表达式 173
6.13确认中的覆盖范围(优先级/基于片的测试) 173
6.14验收测试 175
6.15 验证和确认(V&V)管理 175
6.15.1定义验证和确认过程 176
6.15.2为执行过程准备计划 176
6.15.3启动实现计划 176
6.15.4监视计划执行 177
6.15.5分析执行过程中发现的问题 177
6.15.6报告过程进展 177
6.15.7确保产品满足需求 177
6.16软件开发验证和确认活动 177
6.17本章小结 179
6.18本章回顾 179
第7章V测试模型 180
7.1概述 180
7.2软件的V模型 181
7.2.1结构化测试方法 181
7.2.2软件开发生命周期每一阶段的活动 181
7.2.3分析开发阶段针对充分性和可测性生成的结构 181
7.2.4生成基于结构的测试集 181
7.2.5设计和编码过程中附加的活动 182
7.2.6确定结构与之前生成的结构相一致 182
7.2.7精练并重定义之前生成的测试集 182
7.3提议阶段的测试 182
7.4需求阶段的测试 183
7.5测试计划阶段的测试 184
7.6设计阶段的测试 184
7.7编码过程中的测试 186
7.8 W模型 186
7.9关键角色和责任 188
7.10本章小结 189
7.11本章回顾 190
第8章 缺陷管理 191
8.1概述 191
8.1.1缺陷的根本原因 191
8.1.2缺陷的影响 192
8.2缺陷分类 192
8.2.1需求缺陷 192
8.2.2设计缺陷 192
8.2.3编码缺陷 193
8.2.4测试缺陷 193
8.3缺陷管理过程 193
8.4缺陷生命周期 195
8.5缺陷模板 196
8.6缺陷管理过程(缺陷修复及其根本原因) 199
8.7评估缺陷预期的影响 201
8.8为什么风险管理需要风险讨论 203
8.9缺陷发现技术 203
8.10缺陷报告 203
8.11本章小结 204
8.12本章回顾 205
第Ⅲ部分 测试技术和工具 209
第9章 测试层次 209
9.1简介 209
9.2方案测试 210
9.3需求测试 210
9.4设计测试 212
9.5代码审查 212
9.6单元测试 213
9.7模块测试 214
9.8集成测试 214
9.8.1自底向上测试 214
9.8.2自顶向下测试 216
9.8.3改进的自顶向下方法 217
9.9大棒测试 218
9.10三明治测试 219
9.10.1三明治测试的流程 219
9.10.2三明治方法的优点 219
9.10.3三明治方法的缺点 220
9.11关键路径优先 220
9.12子系统测试 220
9.13系统测试 220
9.14测试阶段 221
9.15本章小结 222
9.16本章回顾 222
第10章 验收测试 223
10.1简介 223
10.2验收测试标准 224
10.3验收测试标准的重要性 225
10.4一些著名的验收标准 225
10.4.1测试小时法 225
10.4.2测试案例数目 226
10.4.3缺陷密度法 226
10.4.4缺陷密度的P-S矩阵 226
10.4.5容许缺陷标准 227
10.4.6缺陷发现率 227
10.4.7基于覆盖的验收标准 228
10.4.8生命周期验收 228
10.5 alpha测试 229
10.5.1 alpha测试的优点 229
10.5.2 alpha测试的缺点 229
10.6 beta测试 230
10.6.1 beta 测试的优点 230
10.6.2 beta测试的缺点 230
10.7 gamma测试 230
10.7.1 gamma测试的优点 231
10.7.2 gamma测试的缺点 231
10.8软件开发阶段的验收测试 231
10.9 alpha和beta验收测试过程的一些思考 232
10.9.1选择执行测试的用户 232
10.9.2选择场所 233
10.9.3测试持续时间 233
10.9.4双边计划和协定 233
10.10软件验收的作用 233
10.11客户在验收测试中的职责 233
10.12验收测试匹配 234
10.13定义验收标准 235
10.14需求的关键程度 236
10.15 影响需求关键程度的因素 236
10.16制定验收测试计划 238
10.17软件验收计划 238
10.18验收测试计划中用户的职责 240
10.18.1管理过程 241
10.18.2验收描述 241
10.19执行验收测试计划 241
10.20本章小结 242
10.21本章回顾 243
第11章 特殊测试(第Ⅰ部分) 244
11.1简介 244
11.2复杂性测试 245
11.2.1控制流程图 245
11.2.2圈复杂度的定义 245
11.2.3限制圈复杂度 245
11.2.4单体复杂度 246
11.2.5短小代码的优点 246
11.2.6短小代码的缺点 246
11.3图形用户界面测试 246
11.3.1 GUI测试的优点 247
11.3.2 GUI测试的缺点 247
11.4兼容性测试 248
11.4.1多平台测试 249
11.4.2多平台测试中的注意事项 249
11.4.3多平台软件测试的流程 250
11.4.4兼容类型 251
11.4.5国际化 251
11.4.6国际化的测试 253
11.5安全性测试 254
11.5.1安全测试的流程 254
11.5.2安全测试的一些共同领域 255
11.6性能测试、容量测试和压力测试 256
11.6.1性能测试 256
11.6.2容量(负载)测试 257
11.6.3压力测试 257
11.7恢复性测试 258
11.7.1系统恢复 258
11.7.2计算机恢复 259
11.8安装测试 260
11.8.1安装测试要确定的事情 260
11.8.2安装流程 260
11.8.3卸载测试 260
11.8.4升级测试 261
11.9需求测试(规范测试) 261
11.10回归测试 262
11.11容错性测试 262
11.12手工支持测试 264
11.13系统间测试 264
11.14控制测试 264
11.15冒烟测试 265
11.16健全测试 265
11.17 adhoc测试(搞怪测试、探索性测试、随机测试) 266
11.18并行测试 266
11.19执行测试 267
11.20操作测试 267
11.21符合性测试 268
11.22可用性测试 268
11.23判定表测试(公理测试) 269
11.24文档测试 270
11.25培训测试 270
11.26快速测试 271
11.27控制流程图 272
11.27.1程序依赖图 272
11.27.2范畴划分方法 272
11.27.3根据断言产生测试 273
11.27.4断言测试的故障模型 273
11.27.5控制流和数据流的区别 273
11.28在组合设计的基础上产生测试 273
11.28.1组合测试设计过程 274
11.28.2从组合设计产生故障模型 274
11.29状态图 274
11.29.1状态图的好坏 275
11.29.2状态数目 275
11.29.3状态图矩阵 275
11.30本章小结 276
11.31本章回顾 277
第12章 特殊测试(第Ⅱ部分) 278
12.1简介 278
12.2新技术的风险 279
12.2.1未经证实的技术 279
12.2.2技术本身有缺陷 279
12.2.3由于新技术还不成熟,因而效率不高 279
12.2.4新技术与其他正在使用的技术不兼容 279
12.2.5新技术淘汰已有技术 280
12.2.6技术和文档之间的差别 280
12.2.7开发者/客户缺乏使用新技术的能力 280
12.2.8缺乏优化使用技术的知识和技能 280
12.2.9技术不符合机构的过程定义 280
12.2.10新技术导致已有的开发/测试工具作废 280
12.2.11技术供应方的支持不够 281
12.3技术的过程成熟度水平 281
12.3.1第一级:临时使用新技术 281
12.3.2第二级:管理使用新技术 281
12.3.3第三级:定义使用新技术 281
12.3.4第四级:量化管理使用新技术 281
12.3.5第五级:最优化使用新技术 282
12.4新技术使用中的测试充分性标准 282
12.5面向对象应用的测试 283
12.6内部控制的测试 284
12.6.1事务处理控制的测试 285
12.6.2安全控制的测试 285
12.7 COTS测试 287
12.7.1为什么使用COTS软件 287
12.7.2 COTS测试的特点 288
12.7.3测试COTS面临的挑战 288
12.7.4 COTS测试过程 289
12.8客户机-服务器测试 291
12.8.1客户机-服务器应用的特点 291
12.8.2客户机-服务器系统的测试方法 291
12.9 Web应用测试 292
12.9.1 Web应用的特征 292
12.9.2 Web应用的测试方法 292
12.10移动应用测试(PDA设备) 293
12.10.1测试PDA的限制 293
12.10.2 PDA的界面设计 294
12.11电子商业/电子商务测试 294
12.11.1电子商业的组成部分 294
12.11.2电子商业/电子商务的测试方法 295
12.11.3电子商务质量的挑战 295
12.11.4电子商业/电子商务的开发 295
12.11.5包含的法律标准 296
12.12敏捷开发测试 296
12.12.1敏捷测试 296
12.12.2敏捷测试的关键点 297
12.13数据仓库的测试 297
12.13.1数据仓库的定义 298
12.13.2数据仓库的优点 298
12.13.3数据仓库的测试过程 298
12.14本章小结 300
12.15 本章回顾 300
第13章 测试工具 302
13.1简介 302
13.2测试工具的特征 303
13.3选择测试工具的指导原则 303
13.4工具和测试人员的技能 304
13.5静态测试工具 304
13.6动态测试工具 304
13.7使用工具的优点 305
13.8使用工具的缺点 305
13.9何时使用自动化测试工具 305
13.10使用自动化工具进行测试 306
13.10.1部分自动化 306
13.10.2自动化中的框架方法 307
13.10.3同步 307
13.11引进新工具的困难 309
13.12获得COTS工具的过程(直接从市场购买) 309
13.13从承包方获取工具 311
13.14外部机构开发工具的优点 311
13.15签订软件承包合同 312
13.16从承包方获得测试工具的过程 12
13.17本章小结 315
13.18本章回顾 315
第Ⅳ部分 测试过程 319
第14章 测试计划 319
14.1简介 319
14.2测试政策 320
14.3测试政策的内容 321
14.4测试策略 322
14.5测试策略的内容 322
14.6制定测试计划 323
14.7测试计划 324
14.7.1测试计划的优点 324
14.7.2测试计划回答的问题 325
14.7.3测试计划的好处 325
14.8质量计划和测试计划 325
14.9质量计划模版 326
14.10测试计划模版(系统测试) 330
14.11制定测试计划指南 337
14.12测试实施定义 338
14.13测试估计 338
14.14测试标准 340
14.15产生测试数据和测试案例 341
14.16测试场景 342
14.17测试案例 344
14.17.1测试案例的特征 345
14.17.2如何编写测试案例 346
14.17.3编写测试案例的一些常见错误 346
14.18测试必须要包含的活动 347
14.19测试案例模版 347
14.19.1测试套件层次的测试案例属性 347
14.19.2单个测试案例的属性 348
14.20测试脚本 350
14.20.1开发测试脚本 351
14.20.2执行测试脚本 351
14.20.3结果分析 352
14.21测试管理软件 352
14.22测试日志文档 353
14.23有效的测试案例 353
14.24测试文件 354
14.24.1所有的正常事务 354
14.24.2正常事务中所有可能的无效数据 354
14.24.3所有可能违反编辑检查的事务 354
14.25建立测试数据 354
14.25.1测试数据优先级划分技术 355
14.25.2划分测试数据优先级的前提 355
14.25.3等价类划分 355
14.25.4边界值分析 358
14.25.5状态迁移 359
14.25.6错误猜测 360
14.26产生测试数据 361
14.27建立测试数据的工具 363
14.27.1数据字典 363
14.27.2错误猜测 363
14.27.3测试数据产生器 363
14.28测试生命周期中的角色和职责 363
14.28.1测试经理 363
14.28.2高级测试工程师 364
14.28.3其他测试人员 364
14.29测试过程监控 365
14.30本章小结 365
14.31本章回顾 366
第15章 测试度量和测试报告 367
15.1简介 367
15.2测试相关的数据 368
15.3缺陷数据 369
15.4效率/生产率数据 370
15.4.1效率 370
15.4.2软件开发的效率 370
15.4.3缺陷修复的效率 371
15.4.4缺陷消除效率 371
15.4.5评审效率 372
15.4.6测试小组的缺陷发现效率 372
15.4.7测试效率 372
15.5产品/项目度量分类 373
15.6估算、预算、批准和实际情况 373
15.7测试中的资源消耗 374
15.8测试效率 375
15.9缺陷密度 376
15.10缺陷渗透率(缺陷生命) 377
15.11 剩余缺陷密度 377
15.12测试小组的效率 378
15.13测试案例的效率 378
15.14返工 379
15.15 MTBF/MTTR 379
15.16在机构中实现测量报告系统 379
15.16.1建立机构的测量小组(度量委员会) 380
15.16.2建立已有项目测量的目录 380
15.16.3建立一致的项目度量集 381
15.16.4定义捕获和使用度量的过程需求 381
15.16.5建立和实现捕获和使用度量的过程 381
15.16.6持续的监控过程 382
15.17测试报告 382
15.18项目测试状态报告 383
15.18.1概要状态报告 383
15.18.2详细项目状态报告 384
15.18.3项目状态报告 384
15.19测试报告 386
15.20集成测试报告 386
15.21系统测试报告 387
15.22验收测试报告 387
15.23报告书写和使用指南 388
15.24最终测试报告 388
15.25测试状态报告 389
15.25.1功能/测试矩阵报告 389
15.25.2功能测试状态报告 390
15.25.3功能运行的时间线 391
15.25.4期望和实际发现缺陷的时间线 391
15.25.5发现缺陷和改正缺陷的偏差时间线 392
15.25.6各种未修复缺陷类型的平均老化 394
15.25.7缺陷分布报告 394
15.25.8相对缺陷分布报告 395
15.25.9测试措施报告 395
15.25.10项目和接口测试报告 396
15.25.11需求覆盖报告 396
15.25.12需求/测试矩阵报告 397
15.26基准 398
15.26.1基准过程步骤 399
15.26.2基准类型 400
15.27本章小结 400
15.28本章回顾 401
第16章 定性和定量分析 403
16.1简介 403
16.2数据的类型 403
16.3定性数据与定量数据 404
16.3.1定性数据 404
16.3.2定量数据 404
16.4定性数据的类型 405
16.4.1标称数据 405
16.4.2序数数据或类别定义 405
16.4.3布尔数据 406
16.5定量数据的类型 406
16.5.1绝对数据 406
16.5.2数据集(枚举) 406
16.5.3相对数据 407
16.5.4连续数据 407
16.5.5离散数据 407
16.6质量工具 408
16.7非统计工具 408
16.7.1检查列表 408
16.7.2记录表 409
16.7.3头脑风暴 409
16.7.4建立共识 410
16.7.5多数投票(帕累托投票) 411
16.7.6因果图 411
16.7.7流程图 412
16.7.8力场分析 414
16.7.9树型图 414
16.7.10关联图 415
16.7.11亲和图 415
16.8统计工具背景知识 416
16.9统计工具 417
16.9.1帕累托图(80-20法则/ABC分析 417
16.9.2饼图 418
16.9.3柱状图 419
16.9.4走势图 420
16.9.5散布图 420
16.9.6直方图 421
16.9.7控制图 422
16.9.8平衡记分卡 423
16.10本章小结 424
16.11本章回顾 424
第Ⅴ部分 测试过程管理 429
第17章 测试过程改进 429
17.1简介 429
17.2测试认识的变化 429
17.3与测试过程有关的问题 430
17.4测试过程改进的需要 430
17.5测试过程成熟度 431
17.6测试过程改进模型 431
17.6.1参与方改进的需要 432
17.6.2测试环境 432
17.6.3测试过程改进的驱动因素 432
17.7测试过程改进模型阶段 433
17.7.1计划过程改进(计划阶段) 433
17.7.2过程改进行动实现(执行阶段) 434
17.7.3过程改进行动评审(检查) 434
17.7.4过程改进行动变化(行动) 434
17.8过程改进的图形表示 435
17.9本章小结 435
17.10本章回顾 436
附录A 437
附录B 461
术语表 477