第1章 绪论 1
1.1 软件概念及其特点 1
1.2 软件质量基本概念 3
1.3 软件质量与可靠性管理的发展 4
1.4 软件验证与确认技术简介 5
第2章 基本概念和活动 6
2.1 基本概念 6
2.1.1 软件质量模型 6
2.1.2 软件生命周期 8
2.1.3 软件的生命周期模型 10
2.1.4 软件完整性级别 18
2.1.5 软件验证 20
2.1.6 软件确认 20
2.1.7 软件测试 20
2.1.8 软件评审 22
2.1.9 软件审查 23
2.1.10 独立软件验证和确认 24
2.1.11 软件独立第三方测试 25
2.2 基本活动 28
2.2.1 软件验证目标 28
2.2.2 软件验证活动 29
第3章 验证与确认过程 32
3.1 验证与确认模型 32
3.2 软件的V&V过程 32
3.2.1 过程:管理 32
3.2.2 过程:获取 38
3.2.3 过程:供应 39
3.2.4 过程:开发 40
3.2.5 过程:运行 60
3.2.6 过程:维护 61
3.3 装备软件全生命周期的验证与确认活动 63
第4章 验证与确认方法 66
4.1 软件测试 66
4.1.1 软件测试概念 66
4.1.2 软件测试分类方法 67
4.1.3 静态测试方法 68
4.2 软件测试技术 87
4.2.1 软件单元测试 87
4.2.2 软件集成测试 90
4.2.3 软件配置项测试 91
4.2.4 软件系统测试 95
4.2.5 软件验收测试 96
4.2.6 软件回归测试 97
4.3 软件评审 97
4.3.1 软件评审的作用 97
4.3.2 软件评审方式 97
4.3.3 软件评审点的设置 98
4.3.4 软件开发各阶段的评审 99
4.4 软件验证 118
4.4.1 软件形式化验证概述 118
4.4.2 程序正确性证明 128
第5章 软件测评过程 154
5.1 软件测试流程 154
5.1.1 软件文档审查 154
5.1.2 软件代码走查 155
5.1.3 测试用例设计 155
5.1.4 测试用例审查 156
5.1.5 测试程序设计和调试 156
5.1.6 测试程序和测试结果审查 156
5.1.7 测试覆盖分析 157
5.1.8 测试过程中发现问题的处理 157
5.1.9 生成软件测试报告 158
5.2 软件测试管理 158
5.2.1 组织项目人员 158
5.2.2 建立测试环境 159
5.2.3 评审测试用例 159
5.2.4 监控项目进展 160
5.2.5 测试项目质量管理 161
5.2.6 测试项目配置管理 162
5.2.7 测试结果审查 164
5.2.8 软件测试质量评价 165
第6章 验证与确认工具 171
6.1 静态分析工具 171
6.1.1 静态分析工具简介 171
6.1.2 常见静态分析工具 173
6.1.3 其他静态分析工具 174
6.1.4 静态分析工具小结 176
6.2 单元测试工具 176
6.2.1 单元测试工具简介 176
6.2.2 常见单元测试工具 176
6.2.3 单元测试工具小结 178
6.3 自动化功能测试工具 179
6.3.1 自动化功能测试工具简介 179
6.3.2 常见的自动化功能测试工具 180
6.3.3 自动化功能测试工具小结 182
6.4 自动化性能测试工具 182
6.4.1 自动化性能测试工具简介 182
6.4.2 常用的自动化性能测试工具 183
6.4.3 自动化性能测试工具小结 185
6.5 嵌入式软件验证与确认工具 186
6.5.1 嵌入式软件白盒测试工具 186
6.5.2 嵌入式软件黑盒仿真验证工具 189
6.6 软件故障诊断工具 198
6.6.1 Delta Debug工具 198
6.6.2 不变式发现工具 200
6.6.3 程序切片工具 202
6.6.4 内存类诊断工具 203
6.7 软件验证与确认管理工具 206
6.7.1 配置管理工具 206
6.7.2 需求管理工具 209
6.7.3 测试辅助工具 210
6.7.4 测试管理工具 210
6.7.5 测试用例管理工具 211
6.7.6 Bug管理工具 213
6.8 逆向工程工具 214
6.9 形式化验证工具 215
6.10 对工具的选择与使用 217
6.10.1 对软件测试工具的认识误区 217
6.10.2 测试工具的选择 218
6.10.3 使用工具应注意的问题 219
第7章 软件验证与确认文档 220
7.1 V&V报告 220
7.1.1 V&V任务报告 220
7.1.2 V&V活动摘要报告 220
7.1.3 V&V异常报告 221
7.1.4 V&V最终报告 221
7.1.5 可选的V&V报告 221
7.2 V&V管理 222
7.2.1 异常解决方案和报告 222
7.2.2 任务重复策略 224
7.2.3 偏离策略 225
7.2.4 控制规程 225
7.2.5 标准、惯例和约定 227
7.3 V&V文档要求 228
7.3.1 验证与确认计划 228
7.3.2 测试文档 232
附录1 软件V&V过程文档模板 237
附录2 文档审查单 245
附录3 裁剪后的静态分析编码规则 261
参考文献 263