标题：软件测试技术概论
图书信息
作　者： 古乐，史九林 编著
出 版 社： 清华大学出版社
出版时间： 2004-4-1 版　次： 1 页　数： 450 定价：￥38.00I S B N ： 9787302081777
图书简介
本书可以作为大学本科高年级学生或研究生教材，也可以作为本科低年级学生学习的参考书。对于软件工程师和测试工程师来说，本书是一本很好的指导书。
目录摘录
第1章 概述
1.1 回顾测试的发展
1.2 什么是软件测试
1.2.1 IEEE的定义
1.2.2 测试在软件开发中的角色
1.3 为什么要进行软件测试
1.4 测试的目的
1.4.1 证明
1.4.2 检测
1.4.3 预防
1.5 业界的软件测试现状
1.6 软件测试中的误区
1.7 本章小结
第2章 白盒测试和黑盒测试
2.1 白盒测试
2.1.1 什么是白盒测试
2.1.2 为什么要进行白盒测试
2.1.3 白盒测试的常用技术
2.1.4 一个白盒测试的例子
2.2 黑盒测试
2.2.1 什么是黑盒测试
2.2.2 为什么要进行黑盒测试
2.2.3 黑盒测试的常用技术
2.2.4 一个黑盒测试的例子
2.3 白盒测试和黑盒测试的比较
2.3.1 白盒测试的优缺点
2.3.2 黑盒测试的优缺点
2.3.3 灰盒测试
2.4 本章小结
第3章 测试覆盖率
3.1 覆盖率概念
3.2 常见的逻辑覆盖
3.2.1 语句覆盖
3.2.2 判定覆盖
3.2.3 条件覆盖
3.2.4 判定条件覆盖
3.2.5 路径覆盖
3.2.6 逻辑覆盖小结
3.3 功能覆盖率
3.4 面向对象的覆盖率
3.4.1 继承上下文覆盖
3.4.2 基于状态的上下文覆盖
3.4.3 基于线程的上下文覆盖
3.5 其他覆盖率
3.5.1 函数覆盖
3.5.2 指令块覆盖
3.5.3 判定路径覆盖
3.5.4 更改条件判定覆盖
3.5.5 分支条件组合覆盖
3.5.6 过程到过程路径覆盖
3.5.7 Z路径覆盖
3.5.8 ESTCA覆盖
3.5.9 LCSAJ覆盖
3.6 如何使用覆盖率
3.6.1 基本原则
3.6.2 一个选择建议
3.6.3 使用最少测试用例来达到覆盖
3.7 本章小结
第4章 程序分析技术
4.1 文本视角
4.2 句法视角
4.3 控制流视角
4.4 数据流视角
4.5 计算流视角
4.5.1 故障插入
4.5.2 变体分析
4.5.3 敏感性分析
4.6 功能视角
4.7 本章小结
第5章 测试分析技术
5.1 面向规格的测试
5.1.1 测试独立于规格技术
5.1.2 测试依赖于规格技术
5.2 面向实现的测试
5.2.1 面向结构的测试
5.2.2 面向影响的测试
5.2.3 面向传递的测试
5.3 面向错误的测试
5.3.1 基于错误的测试
5.3.2 基于故障的测试
5.3.3 基于风险的测试
5.3.4 可能的正确性
5.4 混合测试技术
5.5 本章小结
第6章 单元测试
6.1 什么是单元测试
6.1.1 单元测试的目的
6.1.2 单元测试和集成测试的区别
6.1.3 单元测试和系统测试的区别
6.2 为什么要进行单元测试
6.3 单元测试环境
6.4 单元测试策略
6.4.1 【策略一】由顶向下的单元测试策略
6.4.2 【策略二】由低到上的单元测试策略
6.4.3 【策略三】孤立测试
6.4.4 综合测试
6.5 单元测试分析
6.5.1 模块接口
6.5.2 局部数据结构
6.5.3 独立路径
6.5.4 出错处理
6.5.5 边界条件
6.6 单元测试用例设计思路
6.6.1 为系统运行设计用例
6.6.2 为正向测试设计用例
6.6.3 为逆向测试设计用例
6.6.4 为满足特殊需求设计用例
6.6.5 为代码覆盖设计用例
6.6.6 为覆盖率指标完成设计用例
6.7 单元测试过程
6.7.1 完成测试计划
6.7.2 获取测试集
6.7.3 度量测试单元
6.8 单元测试工具介绍
6.9 单元测试应坚持的原则
6.10 我们的问题
6.11 本章小结
第7章 集成测试
7.1 什么是集成测试
7.1.1 集成测试与系统测试的区别
7.1.2 集成测试关注的重点
7.1.3 集成测试和开发的关系
7.1.4 集成测试的层次
7.2 集成测试策略
7.2.1 大爆炸集成
7.2.2 自顶向下的集成
7.2.3 自底向上的集成
7.2.4 三明治集成
7.2.5 修改过的三明治集成
7.2.6 基干集成
7.2.7 分层集成
7.2.8 基于功能的集成
7.2.9 高频集成
7.2.10 基于进度的集成
7.2.11 基于风险的集成
7.2.12 基于事件（消息）的集成
7.2.13 基于使用的集成
7.2.14 客户/服务器的集成
7.2.15 分布式集成
7.3 集成测试分析
7.3.1 体系结构分析
7.3.2 模块分析
7.3.3 接口分析
7.3.4 风险分析
7.3.5 可测试性分析
7.3.6 集成测试策略分析
7.3.7 常见的集成测试故障
7.4 集成测试用例设计思路
7.4.1 为系统运行设计用例
7.4.2 为正向测试设计用例
7.4.3 为逆向测试设计用例
7.4.4 为满足特殊需求设计用例
7.4.5 为高覆盖设计用例
7.4.6 测试用例补充
7.4.7 注意事项
7.5 集成测试过程
7.5.1 计划阶段
7.5.2 设计阶段
7.5.3 实现阶段
7.5.4 执行阶段
7.6 集成测试环境集成测试
7.7 集成测试工具介绍
7.8 集成测试应坚持的原则
7.9 本章小结
第8章 系统测试
8.1 系统测试概念
8.2 系统测试方法
8.2.1 功能测试
8.2.2 协议一致性测试
8.2.3 性能测试
8.2.4 压力测试
8.2.5 容量测试
8.2.6 安全性测试
8.2.7 恢复性测试
8.2.8 备份测试
8.2.9 GUI测试
8.2.10 健壮性测试
8.2.11 兼容性测试
8.2.12 可用性测试
8.2.13 可安装性测试
8.2.14 文档测试
8.2.15 在线帮助测试
8.2.16 数据转换测试
8.3 系统测试过程
8.3.1 完成系统测试计划
8.3.2 完成系统测试用例
8.3.3 评审/审批系统测试计划
8.3.4 执行系统测试
8.4 本章小结
第9章 可靠性与可靠性测试
9.1 基本概念
9.1.1 什么是软件可靠性
9.1.2 错误、缺陷、故障和失效
9.1.3 软件可靠性指标
9.1.4 软件和硬件可靠性区别
9.2 可靠性指标分配
9.3 可靠性预计
9.3.1 计数法
9.3.2 应力法
9.4 可靠性分析方法
9.4.1 FMEA
9.4.2 CA
9.4.3 FTA
9.4.4 ETA
9.4.5 SCA
9.5 软件可靠性测试
9.5.1 可靠性测试流程
9.5.2 可靠性模型介绍
9.5.3 一个可靠性数据分析例子
9.6 软件可靠性工程
9.7 可靠性标准和可靠性工具
9.7.1 可靠性标准
9.7.2 可靠性工具
9.8 本章小结
第10章 其他专项性测试
10.1 可接受性测试
10.2 Alpha测试
10.3 Beta测试
10.4 标杆测试
10.5 配置测试
10.6 外场测试
10.7 SQL测试
10.8 2000年测试
10.9 回归测试
10.10 本章小结
第11章 软件质量透视
11.1 质量的定义
11.2 质量的预防和检测
11.3 如何提高软件产品的质量
11.3.1 流程对质量的贡献
11.3.2 流程与技术
11.3.3 全面质量管理
11.3.4 关注测试
11.3.5 组织、流程和人
11.4 质量标准
11.5 本章小结
第12章 软件验证和确认
12.1 基本概念 
12.2 软件验证和确认计划
12.2.1 SVVP步骤
12.2.2 SVVP的7个主题
12.3 验证和确认任务分析
12.3.1 关键性分析
12.3.2 可跟踪性分析
12.3.3 评估
12.3.4 接口分析
12.3.5 测试
12.4 生命周期各阶段活动
12.4.1 管理阶段的验证和确认
12.4.2 概念阶段的验证和确认
12.4.3 需求阶段的验证和确认
12.4.4 设计阶段的验证和确认
12.4.5 实现阶段的验证和确认
12.4.6 测试阶段的验证和确认
12.4.7 安装和校验阶段的验证和确认
12.4.8 运行和维护阶段的验证和确认
12.4.9 验证和确认任务总结
12.5 验证和确认的报告
12.5.1 标准要求的报告
12.5.2 标准可选报告
12.6 本章小结
第13章 软件质量保证
13.1 基本概念
13.1.1 目标
13.1.2 执行的承诺
13.1.3 执行的能力
13.1.4 执行的活动
13.1.5 度量分析
13.1.6 验证实现
13.2 SQA实施过程
13.2.1 建立SQA组织
13.2.2 选择SQA任务
13.2.3 产生/维护SQA计划
13.2.4 实施SQA计划
13.2.5 产生/维护SQA规程
13.2.6 标识SQA培训
13.2.7 标识/选择SQA工具
13.2.8 改进项目SQA过程
13.3 本章小结
第14章 需求测试
14.1 需求测试概述
14.1.1 什么是需求
14.1.2 测试需求
14.2 通过评审来测试需求
14.2.1 需求评审中的常见风险
14.2.2 需求评审检查表
14.3 通过用例设计来测试需求
14.4 需求建模测试
14.4.1 统一建模语言
14.4.2 消息顺序图（MSC）
14.4.3 分析建模工具介绍
14.4.4 需求的形式化描述
14.5 基于原型的测试
14.5.1 原型的目的
14.5.2 原型的种类
14.5.3 原型的测试方法
14.6 本章小结
第15章 设计测试
15.1 设计测试概述
15.1.1 什么是设计
15.1.2 软件构架设计
15.1.3 概要设计和详细设计
15.2 设计的评审
15.2.1 设计查检表
15.2.2 构架设计评审方法
15.2.3 软件构架评价最佳工业实践
15.3 SDL及相关测试
15.3.1 SDL介绍
15.3.2 SDL基本概念
15.3.3 SDL结构
15.3.4 SDL测试
15.4 本章小结
第16章 同行评审
16.1 基本概念
16.2 同行评审的一般过程
16.2.1 计划阶段
16.2.2 实施被选择的同行评审过程
16.2.3 同行评审过程度量 
16.2.4 同行评审的评审/审计
16.3 走读
16.3.1 过程目标
16.3.2 特定的角色和职责
16.3.3 输入
16.3.4 入口标准
16.3.5 过程
16.3.6 出口标准
16.3.7 输出
16.4 技术评审
16.4.1 过程目标
16.4.2 特定的角色和职责
16.4.3 输入
16.4.4 入口标准
16.4.5 过程
16.4.6 出口标准
16.4.7 输出
16.5 正规检视
16.5.1 正规检视小组
16.5.2 正规检视过程
16.5.3 正规检视常用表格
16.6 本章小结
第17章 测试经验总结
17.1 软件测试的10大原则
17.1.1 原则1：测试是一个持续进行的过程，而不是一个阶段
17.1.2 原则2：测试必须被计划、被控制，并且被提供时间和资源
17.1.3 原则3：测试应当分级别
17.1.4 原则4：测试应当有重点
17.1.5 原则5：测试不是为了证明程序的正确性，而是为了证明程序不能工作
17.1.6 原则6：测试是不可能穷尽的，当测试出口条件满足时就可以停止测试
17.1.7 原则7：测试是开发的朋友，不是开发的敌人
17.1.8 原则8：测试人员应公正地测试，如实地记录和报告缺陷
17.1.9 原则9：测试自动化能解决一部分问题，但不是全部
17.1.10 原则10：测试不能仅仅包括功能性的验证，还应当包含性能、可靠性、可维护性、安全性等方面的验证
17.2 软件测试的10个最佳实践
17.2.1 实践1：尽早地、频繁地进行测试是降低项目成本，提高质量的一个好方法
17.2.2 实践2：尽早产生一个综合的主测试计划
17.2.3 实践3：对质量要求较高或大型复杂的产品成立独立的测试组
17.2.4 实践4：在每个开发阶段，使用测试和评价的结果作为是否可以通过的标准
17.2.5 实践5：开发和维护一个测试需求和目标的风险优先级列表
17.2.6 实践6：把测试件作为产品的一部分等同管理，使用相同的评价标准和过程
17.2.7 实践7：提供集成化的测试工具和测试基础支持
17.2.8 实践8：加强测试度量工作和缺陷分析工作，不断地改进测试
17.2.9 实践9：加强测试的培训并且为测试人员提供技能发展的通道
17.2.10 实践10：加强沟通和交流，让项目组内所有人员都了解测试的工作及其重要性
17.3 本章小结
附录A 常见测试术语
附录B 测试技术分类
附录C 常见的编码错误
附录D 经典测试网站
附录E 参考资料