-
内容大纲
本书是经典的软件测试教材,综合阐述了软件测试的基础知识和方法,既涉及基于模型的开发,又介绍了测试驱动的开发,做到了理论与实践的完美结合,反映了软件标准和开发的新进展。作者拥有丰富的软件开发和测试领域的教学和研发经验,他在书中借助精心挑选的实例,把软件测试理论与实践紧密结合,讲解循序渐进、层次分明,便于读者理解。 -
作者介绍
-
目录
译者序
前言
作者简介
第一部分 数学背景
第1章 测试概览
1.1 基本定义
1.2 测试用例
1.3 测试的Venn图
1.4 确定测试用例
1.4.1 基于规范的测试
1.4.2 基于代码的测试
1.4.3 基于规范和基于代码之争
1.5 错误的分类
1.6 测试级别
1.7 习题
1.8 参考文献
第2章 案例
2.1 伪代码和Java的结构元素
2.2 三角形问题
2.2.1 问题描述
2.2.2 问题分析
2.2.3 Java实现
2.3 NextDate程序
2.3.1 问题描述
2.3.2 问题分析
2.3.3 Java实现
2.4 “美食家”在线购物系统
2.4.1 问题描述
2.4.2 问题分析
2.5 车库门控制系统
2.6 习题中的案例
2.6.1 四边形程序
2.6.2 NextWeek程序
2.6.3 雨刷控制器
2.7 习题
2.8 参考文献
第3章 软件测试的离散数学基础
3.1 集合论
3.1.1 集合中的元素
3.1.2 集合的定义
3.1.3 空集
3.1.4 Venn图
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.4.4 概率论
3.5 习题
3.6 参考文献
第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 状态图
4.4 习题
4.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.6 随机测试
5.7 边界值测试指南
5.8 习题
第6章 等价类测试
6.1 等价类
6.2 传统等价类测试
6.3 改进的等价类测试
6.3.1 弱等价类测试
6.3.2 强等价类测试
6.3.3 弱鲁棒等价类测试
6.3.4 强鲁棒等价类测试
6.4 三角形问题的等价类测试用例
6.5 NextDate函数的等价类测试用例
6.6 completeOrder方法的等价类测试用例
6.7 边缘测试
6.8 关于无效等价类
6.9 等价类方法的使用指南
6.10 习题
6.11 参考文献
第7章 基于决策表的测试
7.1 决策表
7.2 决策表技术
7.3 三角形问题的测试用例
7.4 NextDate函数的测试用例
7.4.1 第一轮测试
7.4.2 第二轮测试
7.4.3 第三轮测试
7.5 因果图
7.6 基于决策表测试的指南
7.7 习题
7.8 参考文献
第8章 基于代码的测试
8.1 程序流程图
8.2 DD路径
8.3 代码覆盖
8.3.1 基于程序流程图的覆盖
8.3.2 Miller的覆盖
8.3.3 剖析组合条件
8.3.4 案例
8.4 基本路径测试
8.4.1 McCabe的基本路径法
8.4.2 McCabe基本路径测试的观察
8.4.3 基本复杂度
8.5 基于代码测试的指南
8.6 习题
8.7 参考文献
第9章 面向对象软件测试
9.1 单元测试框架
9.1.1 通用的单元测试框架
9.1.2 JUnit
9.2 模拟对象和自动对象模拟
9.3 数据流测试
9.3.1 定义-使用测试的定义
9.3.2 定义-使用测试度量
9.3.3 定义-使用测试的例子
9.4 面向对象的复杂度度量
9.4.1 类中方法权重
9.4.2 继承树深度
9.4.3 子类个数
9.4.4 类间耦合度
9.4.5 类的响应
9.4.6 内聚性缺失
9.5 面向对象软件测试中的问题
9.5.1 组合和封装的含义
9.5.2 继承的含义
9.5.3 多态的含义
9.6 基于切片的测试技术
9.6.1 案例
9.6.2 类型和技术
9.6.3 切片拼接
9.6.4 程序切片工具
9.7 习题
9.8 参考文献
第10章 回顾单元测试
10.1 测试方法的钟摆
10.2 横摆
10.2.1 基于程序流程图的测试
10.2.2 基本路径测试
10.2.3 数据流测试
10.2.4 基于切片的测试
10.2.5 边界值测试
10.2.6 等价类测试
10.2.7 决策表测试
10.3 保险费问题的案例
10.4 基于规范的测试
10.4.1 基于代码的测试
10.5 指南
10.6 习题
10.7 参考文献
第三部分 超越单元测试
第11章 基于生命周期的测试
11.1 传统的瀑布测试
11.1.1 瀑布测试
11.1.2 瀑布模型的利和弊
11.2 在迭代生命周期中实施测试
11.2.1 瀑布模型的细分
11.2.2 基于需求规格说明的生命周期模型
11.3 敏捷测试
11.3.1 用户故事
11.3.2 极限编程
11.3.3 Scrum编程
11.3.4 测试驱动开发
11.3.5 敏捷的模型驱动开发
11.3.6 模型驱动的敏捷开发
11.4 遗留问题
11.4.1 基于需求还是基于代码
11.4.2 配置管理
11.4.3 粒度
11.5 TDD的优劣之处和开放性问题
11.6 回顾MDD和TDD
11.7 参考文献
第12章 集成测试
12.1 基于分解的集成
12.1.1 自顶向下的集成
12.1.2 自底向上的集成
12.1.3 三明治集成
12.1.4 利弊分析
12.2 基于调用关系图的集成
12.2.1 成对集成
12.2.2 邻域集成
12.2.3 利弊分析
12.3 基于路径的集成
12.3.1 新扩展的概念
12.3.2 MM路径的复杂度
12.3.3 利弊分析
12.4 案例:integrationNextDate程序的过程集成
12.4.1 基于分解的集成
12.4.2 基于调用图的集成
12.4.3 基于MM路径的集成
12.4.4 分析和建议
12.5 案例:integrationNextDate程序的O-O集成
12.6 基于模型的集成测试
12.6.1 消息通信机制
12.6.2 成对集成
12.6.3 有限状态机/消息路径集成
12.6.4 场景1:创建正常账户
12.7 习题
12.8 参考文献
第13章 系统测试
13.1 线索
13.1.1 线索可能性
13.1.2 线索定义
13.2 在单处理器应用中识别线索
13.2.1 用户故事/使用用例
13.2.2 需要多少使用用例
13.2.3 有限状态机中的线索
13.2.4 原子系统功能
13.3 识别系统的系统中的线索
13.3.1 对话
13.3.2 FSM之间的通信
13.3.3 作为ASF序列的对话
13.4 系统级测试用例
13.4.1 一个企业级测试执行系统
13.4.2 从使用用例到测试用例
13.4.3 从有限状态机路径到测试用例
13.4.4 从对话场景到测试用例
13.4.5 有限状态机和测试用例之间的联系
13.5 系统测试的覆盖度量
13.5.1 基于使用用例的测试覆盖
13.5.2 基于模型的测试覆盖
13.6 长测试用例和短测试用例
13.6.1 系统测试的补充方法
13.6.2 操作剖面
13.7 非功能系统测试
13.7.1 压力测试策略
13.7.2 数学方法
13.8 习题
13.9 参考文献
第14章 基于模型的测试
14.1 基于模型的测试概述
14.2 适合的模型
14.2.1 Peterson格
14.2.2 主流模型的表达能力
14.2.3 建模的注意事项
14.2.4 做出合适的选择
14.3 支持基于模型测试的商业工具
14.3.1 TestOptimal
14.3.2 Conformiq
14.3.3 国际GmbH验证系统
14.4 习题
14.5 参考文献
第15章 软件复杂度
15.1 单元级复杂度
15.1.1 环复杂度
15.1.2 计算复杂度
15.2 集成级复杂度
15.2.1 集成级的环复杂度
15.2.2 消息交互复杂度
15.3 软件复杂度案例
15.4 面向对象的复杂度
15.4.1 类中方法权重
15.4.2 继承树深度
15.4.3 子类个数
15.4.4 类间耦合度
15.4.5 类的响应
15.4.6 内聚性缺失
15.5 系统级复杂度
15.5.1 源代码的环复杂度
15.5.2 规范模型的复杂度
15.5.3 使用用例的复杂度
15.5.4 UML的复杂度
15.6 习题
15.7 参考文献
第16章 测试系统的系统
16.1 SoS的特点
16.2 SoS的示例
16.2.1 车库门控制系统有监管的SoS
16.2.2 空中交通管理系统公认的SoS
16.2.3 “美食家”在线购物系统
16.3 SoS的软件工程
16.3.1 背景需求
16.3.2 使用UML术语的需求规格说明
16.3.3 测试
16.4 SoS的通信原语
16.4.1 将ESML指令用于Petri网
16.4.2 泳道Petri网的新指令
16.5 SoS的指令效果
16.5.1 有监管的和公认的SoS
16.5.2 协作的和事实上的SoS
16.6 习题
16.7 参考文献
第17章 特征交互测试
17.1 定义特征交互问题
17.2 特征交互的类型
17.2.1 输入冲突
17.2.2 输出冲突
17.2.3 资源冲突
17.3 交互的分类
17.3.1 单处理器静态交互
17.3.2 多处理器静态交互
17.3.3 单处理器动态交互
17.3.4 多处理器动态交互
17.4 交互、组合和确定性
17.5 习题
17.6 参考文献
第18章 案例研究:测试事件驱动的系统
18.1 车库门控制系统的问题描述
18.2 行为驱动开发建模
18.3 扩展的有限状态机建模
18.3.1 从BDD场景派生有限状态机
18.3.2 有限状态机的自顶向下开发
18.4 使用泳道事件驱动Petri网建模
18.4.1 正常关闭车库门
18.4.2 突然停止关闭车库门
18.4.3 光束打断正在关闭的车库门
18.4.4 开门的交互
18.5 从泳道事件驱动的Petri网派生测试用例
18.6 失效模式事件分析
18.7 习题
18.8 参考文献
第19章 结对测试法
19.1 结对测试技术
19.1.1 程序输入
19.1.2 独立变量
19.1.3 输入顺序
19.1.4 仅因为输入对造成的失效
19.2 细看NIST研究
19.3 适合结对测试技术的应用
19.4 关于结对测试的建议
19.5 习题
19.6 参考文献
第20章 软件的技术评审
20.1 软件评审的经济性
20.2 评审的类型
20.2.1 走查
20.2.2 技术评审
20.2.3 审核
20.2.4 评审类型的对比
20.3 评审中的角色
20.3.1 制作者
20.3.2 评审组长
20.3.3 记录员
20.3.4 评审员
20.3.5 角色的交叉
20.4 评审包的内容
20.4.1 工作产品的需求
20.4.2 固定版本的工作产品
20.4.3 标准和检查单
20.4.4 评审记录表
20.4.5 评审报告表
20.4.6 错误严重等级
20.4.7 评审报告大纲
20.5 一种工业级评审过程
20.5.1 组织计划
20.5.2 介绍评审员
20.5.3 准备
20.5.4 评审会议
20.5.5 准备报告
20.5.6 问题处理
20.6 有效的评审文化
20.6.1 评审会议规范
20.6.2 参与会议的管理层
20.6.3 两个关于评审的故事
20.7 评审的案例
20.8 参考文献
第21章 结语:卓越的软件测试
21.1 工艺师
21.2 软件测试的最佳实践
21.3 十大优秀测试项目
21.3.1 认真的技术评审
21.3.2 测试级别的定义和识别
21.3.3 所有级别的基于模型的测试
21.3.4 系统测试扩展
21.3.5 用于指导回归测试的关联矩阵
21.3.6 单元级测试中使用xUnit和模拟对象
21.3.7 基于规范和基于代码的单元级测试的智能结合
21.3.8 在所有测试级中使用合适的工具
21.3.9 维护阶段的探索性测试
21.3.10 测试驱动开发
21.4 不同项目的最佳实践
21.4.1 任务关键型项目
21.4.2 时间关键型项目
21.4.3 对继承代码的纠正性维护
21.5 一个极端的例子
21.6 参考文献
附录A 完整的技术审查包
附录B “美食家”在线购物系统
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
