出版社:人民邮电出版社
年代:2011
定价:59.0
本书是经典的软件测试教材。书中对基础知识、方法提供了系统的综合阐述,既涉及基于模型的开发又介绍测试驱动的开发,很好地做到了理论与实践相结合,反映了软件标准和开发的最近进展和变化。
第一部分 数学基础
第1章 测试概述
1.1 基本概念
1.2 测试用例
1.3 通过维恩图来考察测试
1.4 构造测试用例
1.4.1 功能测试
1.4.2 结构测试
1.4.3 功能测试与结构测试之争
1.5 错误与故障差异
1.6 测试的层次
参考文献
习题
第2章 程序示例
2.1 通用伪代码
2.2 三角形问题
2.2.1 问题描述
2.2.2 三角形问题的讨论
2.2.3 三角形问题的经典实现
2.2.4 三角形问题的结构化实现
2.3 NextDate函数
2.3.1 问题描述
2.3.2 NextDate函数的讨论
2.3.3 NextDate函数的实现
2.4 佣金问题
2.4.1 问题描述
2.4.2 佣金问题的讨论
2.4.3 佣金问题的实现
2.5 SATM系统
2.5.1 问题描述
2.5.2 SATM系统的讨论
2.6 货币转换器
2.7 雨刷控制器
参考文献
习题
第3章 测试人员的离散数学
3.1 集合论
3.1.1 集合的成员关系
3.1.2 集合的定义方法
3.1.3 空集
3.1.4 集合的维恩图
3.1.5 集合运算
3.1.6 集合关系
3.1.7 集合划分
3.1.8 集合恒等
3.2 函数
3.2.1 定义域与值域
3.2.2 函数的类型
3.2.3 函数复合
3.3 关系
3.3.1 集合之间的关系
3.3.2 单个集合上的关系
3.4 命题逻辑
3.4.1 逻辑运算符
3.4.2 逻辑表达式
3.4.3 逻辑等价
3.5 概率论
参考文献
习题
第4章 测试人员的图论
4.1 图
4.1.1 节点的度
4.1.2 关联矩阵
4.1.3 邻接矩阵
4.1.4 路径
4.1.5 连通性
4.1.6 压缩图
4.1.7 圈数
4.2 有向图
4.2.1 入度与出度
4.2.2 节点类型
4.2.3 有向图的邻接矩阵
4.2.4 路径与半路径
4.2.5 可达矩阵
4.2.6 n连通性
4.2.7 强分图
4.3 软件测试中常用的图
4.3.1 程序图
4.3.2 有限状态机
4.3.3 Petri网
4.3.4 事件驱动Petri网
4.3.5 状态图
参考文献
习题
第二部分 功能测试
第5章 边界值测试
5.1 边界值分析
5.1.1 边界值分析的拓展
5.1.2 边界值分析的局限性
5.2 健壮性测试
5.3 最坏情况测试
5.4 特殊值测试
5.5 示例
5.5.1 三角形问题的测试用例
5.5.2 NextDate函数的测试用例
5.5.3 佣金问题的测试用例
5.6 随机测试
5.7 边界值测试的原则
习题
第6章 等价类测试
6.1 等价类
6.1.1 弱一般等价类测试
6.1.2 强一般等价类测试
6.1.3 弱健壮等价类测试
6.1.4 强健壮等价类测试
6.2 三角形问题的等价类测试用例
6.3 NextDate函数的等价类测试用例
6.4 佣金问题的等价类测试用例
6.5 原则与注意事项
参考文献
习题
第7章 基于决策表的测试
7.1 决策表
7.2 三角形问题的测试用例
7.3 NextDate函数的测试用例
7.3.1 第一轮尝试
7.3.2 第二轮尝试
7.3.3 第三轮尝试
7.4 佣金问题的测试用例
7.5 原则与注意事项
参考文献
习题
第8章 功能测试回顾
8.1 测试的工作量
8.2 测试的效率
8.3 测试的有效性
8.4 原则
8.5 案例研究
第三部分 结构测试
第9章 路径测试
9.1 DD路径
9.2 测试覆盖指标
9.2.1 基于指标的测试
9.2.2 测试覆盖分析器
9.3 基路径测试
9.3.1 McCabe的基路径方法
9.3.2 McCabe基路径方法的注意事项
9.3.3 McCabe方法的基本复杂度
9.4 原则与注意事项
参考文献
习题
第10章 数据流测试
10.1 定义/使用测试
10.1.1 举例
10.1.2 stocks的定义使用路径
10.1.3 locks的定义使用路径
10.1.4 totalLocks的定义使用路径
10.1.5 sales的定义使用路径
10.1.6 commission的定义使用路径
10.1.7 定义使用路径的测试覆盖指标
10.2 基于片的测试
10.2.1 举例
10.2.2 风格与方法
10.3 原则与注意事项
参考文献
习题
第11章 结构测试回顾
11.1 缺漏与冗余
11.2 用于评估测试方法的指标
11.3 重新修订的案例研究
11.3.1 基于路径的测试
11.3.2 数据流测试
11.3.3 片测试
参考文献
习题
第四部分 集成测试和系统测试
第12章 测试的层次
12.1 测试层次划分的传统观点
12.2 其他生命周期模型
12.2.1 瀑布模型的变体
12.2.2 基于规格说明的生命周期模型
12.3 SATM系统
12.4 将集成测试与系统测试分开
12.4.1 从结构角度分析
12.4.2 从行为角度分析
参考文献
第13章 集成测试
13.1 深入研究SATM系统
13.2 基于功能分解的集成
13.2.1 自顶向下集成
13.2.2 自底向上集成
13.2.3 三明治集成
13.2.4 优缺点
13.3 基于调用图的集成
13.3.1 成对集成
13.3.2 相邻集成
13.3.3 基于调用图集成的优缺点
13.4 基于路径的集成
13.4.1 新概念与扩展概念
13.4.2 SATM系统中的MM路径
13.4.3 MM路径复杂度
13.4.4 基于路径集成技术的优缺点
13.5 案例分析
13.5.1 基于分解的集成
13.5.2 基于调用图的集成
13.5.3 基于MM路径的集成
参考文献
习题
第14章 系统测试
14.1 线索
14.1.1 线索存在的可能性
14.1.2 线索定义
14.2 需求规格说明的基本概念
14.2.1 数据
14.2.2 行为
14.2.3 设备
14.2.4 事件
14.2.5 线索
14.2.6 基本概念之间的关系
14.2.7 利用基本概念建模
14.3 寻找线索
14.4 线索测试的结构策略
14.4.1 自底向上组织线索
14.4.2 节点与边覆盖指标
14.5 线索测试的功能策略
14.5.1 基于事件的线索测试
14.5.2 基于端口的线索测试
14.5.3 基于数据的线索测试
14.6 SATM测试线索
14.7 系统测试原则
14.7.1 伪结构系统测试
14.7.2 性能分析
14.7.3 累进测试与回归测试
14.8 ASF测试示例
参考文献
习题
第15章 交互性测试
15.1 交互的语境
15.2 交互的分类
15.2.1 单处理器中的静态交互
15.2.2 多处理器中的静态交互
15.2.3 单处理器中的动态交互
15.2.4 多处理器中的动态交互
15.3 线索的交互、合成和确定性
15.4 客户/服务器系统的测试
参考文献
习题
第五部分 面向对象测试
第16章 面向对象测试的相关问题
16.1 面向对象测试的单元
16.2 合成与封装的含义
16.3 继承的含义
16.4 多态性的含义
16.5 面向对象测试的层次
16.6 GUI测试
16.7 面向对象软件的数据流测试
16.8 第五部分所采用的示例
16.8.1 面向对象的日历程序
16.8.2 货币转换应用程序
参考文献
习题
第17章 类测试
17.1 以方法为单元的测试
17.1.1 o-oCalendar 的伪代码
17.1.2 Date.increment 的单元测试
17.2 以类为单元的测试
17.2.1 windshieldWiper类的伪代码
17.2.2 windshieldWiper类的单元测试
第18章 面向对象的集成测试
18.1 UML对集成测试的支持
18.2 面向对象软件的MM路径
18.3 面向对象数据流集成测试的框架
18.3.1 事件驱动和消息驱动的Petri网
18.3.2 由继承导出的数据流
18.3.3 由消息导出的数据流
18.3.4 是否需要片
参考文献
习题
第19章 GUI测试
19.1 货币转换程序
19.2 货币转换程序的单元测试
19.3 货币转换程序的集成测试
19.4 货币转换程序的系统测试
习题
第20章 面向对象的系统测试
20.1 货币转换器的UML描述
20.1.1 问题陈述
20.1.2 系统功能
20.1.3 表示层
20.1.4 高层用例
20.1.5 基本用例
20.1.6 详细的GUI定义
20.1.7 扩展的基本用例
20.1.8 真实用例
20.2 基于UML的系统测试
20.3 基于状态图的系统测试
参考文献
第六部分 新兴测试技术
第21章 探索式测试
21.1 上下文驱动学派
21.2 探索式测试
21.3 探索一个常见示例
21.4 探索式测试与上下文驱动测试探讨
参考文献
习题
第22章 基于模型测试
22.1 基于模型进行测试
22.2 恰当的系统模型
22.2.1 Peterson格
22.2.2 主流模型的表达能力
22.2.3 选择恰当的模型
22.3 基于用例的测试
22.3.1 从用例中推导出测试用例
22.3.2 交互用例
22.3.3 需要多少用例
22.4 支持基于模型的测试的商用工具
参考文献
第23章 测试驱动开发
23.1 “测试然后编码”的软件开发周期
23.2 自动化测试执行(测试框架)
23.3 Java和JUnit示例
23.3.1 Java源代码
23.3.2 JUnit测试代码
23.4 其他待解决的问题
23.4.1 基于规格说明还是基于代码
23.4.2 需要配置管理吗
23.4.3 粒度应该多大
23.5 测试驱动开发的优缺点及其他相关问题
23.6 模型驱动开发与测试驱动开发对比
第24章 全对测试详述
24.1 全对测试技术
24.1.1 程序输入
24.1.2 独立变量
24.1.3 输入的顺序
24.1.4 完全由输入所引发的失效
24.2 对NIST研究成果的进一步分析
24.3 全对测试的适用范围
24.4 对全对测试的建议
参考文献
第25章 尾声:软件测试精益求精
25.1 软件测试是一种技艺
25.2 软件测试的最佳实践
25.3 让软件测试更出色的10项最佳实践
25.3.1 模型驱动开发
25.3.2 慎重地定义与划分测试的层次
25.3.3 基于模型的系统级测试
25.3.4 系统测试的扩展
25.3.5 利用关联矩阵指导回归测试
25.3.6 利用MM路径实现集成测试
25.3.7 把基于规格说明的测试和基于代码的单元级测试有机地结合起来
25.3.8 基于单个单元特性的代码覆盖指标
25.3.9 维护阶段的探索式测试
25.3.10 测试驱动开发
25.4 针对不同项目实现最佳实践
25.4.1 任务关键型项目
25.4.2 时间关键型项目
25.4.3 对遗留代码的纠错维护
《软件测试(第3版)》是经典的软件测试教材。书中对基础知识、方法提供了系统的综合阐述,既涉及基于模型的开发又介绍测试驱动的开发,做到了理论与实践的完美结合,反映了软件标准和开发的最新进展和变化。
本书适合作为高等院校计算机学院及软件学院相关专业软件测试课程的教材,也是软件测试领域技术人员的理想参考书。