软件测试技术概论

软件测试技术概论
作 者: 上海艾微软件技术有限公司主编;古乐,史九林编著
出版社: 清华大学出版社
丛编项: 软件测试系列
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 软件测试及维护
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  古乐,编著《软件测试技术概论》。

内容简介

本书是一本比较全面地介绍软件测试方法的书籍,先介绍测试技术的发展历史和现状;然后,作为测试的一个基础,介绍了白盒测试、黑盒测试以及测试覆盖北等几个重要概念,并充分分析了业界在这几个概念方面的研究成果;之后从全流程测试的角度按动态测试和静态测试两个方面,分另介绍了单元测试、集成测试、系统则试、验收证和确认过程、需求测试和设计测试等内容。作为静态测试的一个重要手段,本书还对同行评审的概念和方法进行了阐述。最后,作者总结了测试的基本原则和一些好的实践经验。本书可以作为大学生本科高年级学生或研究生教材,也可以作为本科低年级学生学习的参考书。对于软件工程师和测试工程师业说,本书是一本很好的指导书。

图书目录

第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:加强测试度量工作和缺陷分析工作, 不断地改进测试