第一部分 软件测试过程成熟度 3
第1章 软件测试的六个要点 3
1.1 要点1:测试过程的质量决定测试工作的成败 3
1.2 要点2:使用早期软件生存周期测试技术可避免缺陷转移 3
1.3 要点3:软件测试工具的时代已经到来 4
1.4 要点4:改进测试过程必须有专人负责 4
1.5 要点5:测试是一个专业技术学科,要求富有经验的专门技术人员 4
1.6 要点6:培养破旧立新的、积极的合作精神 5
第2章 技术与实践 6
2.1 一门新兴学科的短暂而丰富的历史 6
2.3 测试应该如何定位 8
2.2 我们的现状如何 8
2.4 参考文献 9
第3章 白纸方法 10
第二部分 测试过程改进框架 15
第4章 树立注重实际的观点 15
4.1 我们的目的是什么 15
4.2 关于错误你知道多少 15
4.2.1 什么和为什么 16
4.2.2 错误在哪里 16
4.2.3 错误的成本 16
4.3 关于测试的一些定义 17
4.4 优秀测试人员的测试态度 18
4.4.3 测试人员找出错误,对事不对人 19
4.4.2 测试是破旧立新 19
4.4.1 测试者寻找错误 19
4.4.4 测试提高产品价值 20
4.5 测试人员怎样工作 20
4.6 现在能做什么 20
4.7 参考文献 21
第5章 重要选择:测试什么、何时测试、怎样测试 22
5.1 风险及风险管理 22
5.2 尽早开始测试 24
5.3 测试过程的基本形式:验证和确认 25
5.4 测试、开发生存周期及合同 25
5.6 测试的效益 27
5.5 有效测试 27
5.7 现在能做什么 28
5.8 参考文献 28
第6章 重要方法:测试的框架 29
6.1 计划 29
6.1.1 验证计划中要考虑的因素 30
6.1.2 确认计划中要考虑的因素 30
6.2 软件工程成熟度和SEI 30
6.2.1 SEI过程成熟度等级 31
6.2.2 过程成熟度是怎样影响测试的 32
6.3 配置管理 33
6.3.1 什么是配置管理 34
6.3.2 在CM方面测试所关心的问题 34
6.4 标准 35
6.4.1 IEEE/ANSI标准 36
6.4.2 ISO9000、SPICE及其他标准 37
6.5 正式文档 38
6.6 测试件 38
6.7 度量 39
6.8 工具 40
6.9 现在能做什么 41
6.10 参考文献 41
第三部分 测试方法 45
第7章 验证测试 45
7.1 验证的基本方法 45
7.1.1 验证的组织形式 46
7.1.2 审查:关键元素和阶段 47
7.1.3 走查 47
7.1.4 走查:关键元素 47
7.1.5 伙伴检查 48
7.2 发挥验证的作用 48
7.2.1 验证要做什么 48
7.2.2 审查单:验证工具 49
7.3 验证不同阶段的文档 50
7.3.1 验证需求 50
7.3.2 好的需求规格说明的特性 50
7.3.3 验证功能设计 52
7.3.4 验证内部设计 53
7.3.5 验证代码 54
7.4 从验证中获取最大收益 55
7.4.1 作者 55
7.4.2 开发小组 56
7.4.3 审查小组 56
7.4.4 高收益的验证 56
7.5 验证的三个成功因素 57
7.5.1 成功因素1:过程责任人 57
7.5.2 成功因素2:管理部门的支持 57
7.5.3 成功因素3:培训 57
7.6 建议 57
7.7 参考文献 58
8.1 确认概述 59
第8章 确认测试 59
8.1.1 覆盖 60
8.1.2 基本测试策略 61
8.1.3 确认任务与测试覆盖 61
8.1.4 测试基础 61
8.1.5 确认策略 62
8.2 确认方法 63
8.2.1 基于功能测试的黑盒方法 63
8.2.2 基于内部测试的白盒方法 68
8.3 确认活动 71
8.3.1 低层测试 72
8.3.2 高层测试 73
8.3.4 累进测试和回归测试 80
8.3.3 再测试 80
8.3.5 测试执行的筹划 81
8.3.6 测试点 82
8.4 确认测试的推荐策略 82
8.5 参考文献 83
第9章 控制确认成本 84
9.1 使测试实施成本最小化 84
9.1.1 预运行启动成本 84
9.1.2 执行成本 85
9.1.3 后运行成本 85
9.1.4 降低测试实施成本的建议 85
9.2 降低测试的维护成本 86
9.3 降低确认测试件开发成本 87
9.4 测试件库 88
9.5 建议 89
第10章 测试任务、可交付文件及其在生存周期中的对应阶段 90
10.1 主测试计划 90
10.2 验证测试任务和可交付文件 92
10.2.1 制定验证测试计划 92
10.2.2 验证执行 93
10.3 确认测试任务和可交付文件 94
10.3.1 制定确认测试计划 95
10.3.2 测试结构设计 96
10.3.3 测试件开发——设计和实施细节 97
10.3.4 测试执行 100
10.3.6 何时停止 102
10.3.5 测试评估 102
10.4 用户手册 104
10.5 产品发布标准 104
10.6 IEEE/ANSI测试文件概述 105
10.6.1 测试计划和规格说明的文件结构 105
10.6.2 测试报告的文件结构 106
10.7 把任务和可交付文件对应到生存周期 106
10.7.1 概念阶段 106
10.7.3 功能设计阶段 107
10.7.4 内部设计阶段 107
10.7.2 需求阶段 107
10.7.5 编码阶段 108
10.7.6 集成和测试阶段 108
10.7.7 运行/维护阶段 109
10.8 参考文献 109
第11章 软件测试工具 110
11.1 测试工具的分类 110
11.1.1 评审与审查工具 111
11.1.2 制定测试计划的工具 111
11.1.3 测试设计和开发工具 112
11.1.4 测试执行和评估工具 113
11.1.5 软件测试支持工具 115
11.2 工具采购 115
11.3 参考文献 116
12.1 通过度量获得答案 117
第12章 度量 117
12.2 有用的度量 118
12.2.1 度量复杂度 118
12.2.2 度量验证效率 119
12.2.3 度量测试覆盖 119
12.2.4 度量/跟踪测试执行状态 119
12.2.5 度量/跟踪事故报告 119
12.2.6 基于事故报告的测试度量 120
12.3 其他的相关度量 120
12.4 建议 121
12.5 参考文献 121
13.1 测试的组织和改组 125
第四部分 测试管理技术 125
第13章 测试的组织方法 125
13.2 结构设计因素 127
13.3 测试功能的组织方法 127
13.3.1 方案1:测试是各人的责任 127
13.3.2 方案2:测试是各小组的责任 128
13.3.3 方案3:用专用资源进行测试 129
13.3.4 方案4:将测试组织置于QA中 130
13.3.5 方案5:隶属于开发的测试组织 130
13.3.6 方案6:集中管理的测试组织 131
13.3.7 方案7:设有测试技术中心的集中式测试组织 132
13.5 参考文献 133
13.4 选择正确的方案 133
14.1 图形用户界面:有哪些新东西 135
14.2 应用测试 135
第14章 目前的做法、发展趋势和挑战 135
14.3 测试人员与开发人员的比例 136
14.4 软件度量和实践基准研究 136
14.5 参考文献 138
第15章 获得可持续收益 139
15.1 实现收益 139
15.2 获得帮助 139
15.2.2 咨询和培训服务 140
15.2.3 软件测试研讨会 140
15.2.1 软件测试书籍和业务通讯 140
15.3 后续工作 141
15.4 参考文献 141
第五部分 附录 145
附录A 软件工程和测试标准 145
附录B 验证审查单 150
附录C 验证练习 167
附录D 确认练习(答案) 181
附录E 参考书目(包括软件测试工具一览表) 184
附录F 信息资源:会议、期刊、通讯、DOD规范 188
附录G 专用工具和工具选择 191
附录H 改进实施示范清单 194