出版社:机械工业出版社
年代:2011
定价:59.0
本书全面介绍了软件测试的相关理论、测试方法、测试生成技术等内容。全书分为三个部分,第一部分是预备知识,介绍软件测试技术的相关术语等基础知识;第二部分介绍软件测试的生成技术,不仅包括基本的等价类划分、边界值分析、因果图、谓词测试等技术,还涵盖了从有穷状态模型自动生成测试的技、基于组合设计的测试生成技术,以及用于回归测试中测试选择、优先级排序、最小化的一些基本技术;第三部分介绍软件测试中既重要又广泛适用的理论,即通过测试充分性的度量来加强测试,包括基于控制流、数据流的代码覆盖标准,以及最有效的基于程序变异的测试充分性度量标准。每章的结尾都有参考文献注释和练习题,帮助读者深入体会软件测试的过程,并熟练掌握测试生成的方法。 本书适合作为计算机、软件工程及相关专业软件测试课程的教材,也可作为软件测试技术人员的参考书。
出版者的话
译者序
前言
第一部分 预备知识
第1章 软件测试的基本知识
1.1 人、错误和测试
1.1.1 错误、故障和失效
1.1.2 测试自动化
1.1.3 开发人员与测试人员是两种角色
1.2 软件质量
1.2.1 软件质量特性
1.2.2 软件可靠性
1.3 需求、运行结果和正确性
1.3.1 输入域与软件正确性
1.3.2 有效输入与无效输入
1.4 正确性与可靠性
1.4.1 正确性
1.4.2 可靠性
1.4.3 软件使用与操作剖面
1.5 测试与调试
1.5.1 制订测试计划
1.5.2 构造测试数据
1.5.3 运行被测软件
1.5.4 指定被测软件的行为
1.5.5 评价被测软件运行结果的正确性
1.5.6 测试预言的构造
1.6 测试度量
1.6.1 组织级度量
1.6.2 项目级度量
1.6.3 过程级度量
1.6.4 产品级度量:通用度量
1.6.5 产品级度量:面向对象软件
1.6.6 进度跟踪与趋势
1.6.7 静态度量与动态度量
1.6.8 可测试性
1.7 软件测试与硬件测试
1.8 测试与验证
1.9 缺陷管理
1.10 执行历史
1.11 测试生成策略
1.12 静态测试
1.12.1 走查
1.12.2 审查
1.12.3 在静态测试中使用静态代码分析工具
1.12.4 软件复杂性与静态测试
1.13 基于模型的测试与模型检测
1.14 控制流图
1.14.1 基本块
1.14.2 流图的定义与图形表示
1.14.3 路径
1.15 决定者与后决定者
1.16 程序依赖图
1.16.1 数据依赖性
1.16.2 控制依赖性
1.17 字符串、语言与正则表达式
1.18 测试的类型
1.18.1 分类因子c1:测试生成的依据
1.18.2 分类因子c2:软件生命周期阶段
1.18.3 分类因子c3:目标导向的测试
1.18.4 分类因子c4:被测软件制品
1.18.5 分类因子c5:测试过程模型
1.19 饱和效应
1.19.1 信赖度与真实可靠性
1.19.2 饱和区间
1.19.3 信赖度的错觉
1.19.4 降低偏差δ
1.19.5 对测试过程的影响
小结
参考文献注释
练习
第二部分 测试生成
第2章 基于需求的测试生成
2.1 引言
2.2 测试用例选择问题
2.3 等价类划分
2.3.1 缺陷定位
2.3.2 关系与等价类划分
2.3.3 变量的等价类
2.3.4 一元化分与多元化分
2.3.5 等价类划分的完整过程
2.3.6 基于等价类的测试用例设计
2.3.7 gui设计与等价类
2.4 边界值分析
2.5 类别划分法
2.6 因果图分析
2.6.1 因果图中的基本符号
2.6.2 创建因果图
2.6.3 从因果图生成判定表
2.6.4 避免组合爆炸的启发式方法
2.6.5 从判定表生成测试用例
2.7 基于谓词的测试生成
2.7.1 谓词和布尔表达式
2.7.2 谓词测试中的故障模型
2.7.3 谓词约束
2.7.4 谓词测试准则
2.7.5 生成bor、bro和bre充分性测试用例
2.7.6 因果图与谓词测试
2.7.7 故障传播
2.7.8 谓词测试实践
小结
参考文献注释
练习
第3章 基于有穷状态模型的测试生成
3.1 软件设计与测试
3.2 有穷状态机
3.2.1 用输入序列激活fsm
3.2.2 转换函数和输出函数的表格表示
3.2.3 fsm的特征
3.3 符合性测试
3.3.1 重置输入
3.3.2 测试的难题
3.4 故障模型
3.4.1 fsm的变体
3.4.2 故障覆盖率
3.5 特征集
3.5.1 k等价划分的构造
3.5.2 特征集的构造
3.5.3 等价集
3.6 w方法
3.6.1 假设
3.6.2 最大状态数
3.6.3 转换覆盖集的计算
3.6.4 构造集合z
3.6.5 导出测试集
3.6.6 采用w方法测试
3.6.7 错误检测过程
3.7 部分w方法
3.7.1 采用m=n的wp方法测试
3.7.2 采用m]n的wp方法测试
3.8 uio串方法
3.8.1 假设
3.8.2 uio串
3.8.3 核心行为与非核心行为
3.8.4 生成uio串
3.8.5 区分符号
3.8.6 测试生成
3.8.7 测试优化
3.8.8 故障检测
3.9 自动机理论与基于控制流的技术
3.9.1 n路径覆盖
3.9.2 自动机理论方法的比较
小结
参考文献注释
练习
第4章 基于组合设计的测试生成技术
4.1 组合设计
4.1.1 测试配置和测试集
4.1.2 输入空间与配置空间建模
4.2 组合测试设计过程
4.3 故障模型
4.4 拉丁方阵
4.5 相互正交的拉丁方阵
4.6 对偶设计:二值参数
4.7 对偶设计:多值参数
4.8 正交矩阵
4.9 覆盖矩阵与混合取值覆盖矩阵
4.9.1 覆盖矩阵
4.9.2 混合取值覆盖矩阵
4.1 0强度大于2的矩阵
4.1 1生成覆盖矩阵
小结
参考文献注释
练习
第5章 回归测试的选择、最小化和优先级排序
5.1 什么是回归测试
5.2 回归测试过程
5.2.1 测试重确认、选择、最小化和优先级排序
5.2.2 测试准备
5.2.3 测试排序
5.2.4 测试执行
5.2.5 输出比较
5.3 回归测试选择问题
5.4 回归测试选择方法集
5.4.1 全测试策略
5.4.2 随机选择测试
5.4.3 选择遍历修改测试用例
5.4.4 测试最小化
5.4.5 测试优先级排序
5.5 利用执行轨迹进行回归测试的选择
5.5.1 获取执行轨迹
5.5.2 选择回归测试用例
5.5.3 处理函数调用
5.5.4 处理声明中的变化
5.6 利用动态切片进行回归测试的选择
5.6.1 动态切片
5.6.2 计算动态切片
5.6.3 选择测试用例
5.6.4 潜在依赖
5.6.5 计算相关切片
5.6.6 语句的添加和删除
5.6.7 标识切片变量
5.6.8 简化的动态依赖图
5.7 测试选择算法的可扩展性
5.8 测试最小化
5.8.1 集合覆盖问题
5.8.2 测试最小化过程
5.9 测试优先级排序
5.1 0回归测试工具
小结
参考文献注释
练习
第三部分 测试充分性评价与测试增强
第6章 基于控制流和数据流的测试充分性评价
6.1 测试充分性基础
6.1.1 什么是测试充分性
6.1.2 测试充分性的度量
6.1.3 通过度量充分性来增强测试
6.1.4 无效性和测试充分性
6.1.5 错误检测和测试增强
6.1.6 单次和多次执行
6.2 基于控制流的测试充分性准则
6.2.1 语句覆盖和块覆盖
6.2.2 条件和判定
6.2.3 判定覆盖
6.2.4 条件覆盖
6.2.5 条件/判定覆盖
6.2.6 多重条件覆盖
6.2.7 线性代码序列和跳转覆盖
6.2.8 改进的条件/判定覆盖
6.2.9 复合条件的mc/dc充分测试
6.2.10 mc/dc覆盖的定义
6.2.11 最小mc/dc测试
6.2.12 错误检测和mc/dc充分性
6.2.13 短路计算和无效性
6.2.14 测试集对需求的追踪
6.3 数据流概念
6.3.1 定义和使用
6.3.2 c?use和p?use
6.3.3 全局和局部的定义与使用
6.3.4 数据流图
6.3.5 def?clear路径
6.3.6 def?use对
6.3.7 def?use链
6.3.8 优化
6.3.9 数据上下文和有序的数据上下文
6.4 基于数据流的测试充分性准则
6.4.1 c?use覆盖
6.4.2 p?use覆盖
6.4.3 all?use覆盖
6.4.4 k?dr链覆盖
6.4.5 使用k?dr链覆盖
6.4.6 无效的c?use和p?use
6.4.7 上下文覆盖
6.5 控制流与数据流
6.6 包含关系
6.7 结构性测试与功能性测试
6.8 覆盖度量的可量测性
小结
参考文献注释
练习
第7章 基于程序变异的测试充分性评价
7.1 导引
7.2 变异和变体
7.2.1 一阶变体与高阶变体
7.2.2 变体的语法与语义
7.2.3 强变异和弱变异
7.2.4 为什么要变异
7.3 用变异技术进行测试评价
7.3.1 测试充分性评价的步骤
7.3.2 测试充分性评价的替代过程
7.3.3 被区分的变体与被杀掉的变体
7.3.4 区分变体的条件
7.4 变异算子
7.4.1 算子类型
7.4.2 变异算子的语言依赖性
7.5 变异算子的设计
7.5.1 评判变异算子优良的准则
7.5.2 指导准则
7.6 变异测试的基本原则
7.6.1 称职程序员假设
7.6.2 耦合效应
7.7 等价变体
7.8 通过变异进行错误检测
7.9 变体的类型
7.10 c语言的变异算子
7.10.1 什么没有被变异
7.10.2 线性化
7.10.3 执行序列
7.10.4 执行序列的影响
7.10.5 全局标识符集和局部标识符集
7.10.6 全局引用集与局部引用集
7.10.7 程序常量变异
7.10.8 运算符变异
7.10.9 语句变异
7.10.10 程序变量变异
7.11 java语言变异算子
7.11.1 传统变异算子
7.11.2 继承
7.11.3 多态与动态绑定
7.11.4 方法重载
7.11.5 java特有的变异算子
7.12 综合比较:fortran77、c与java变异算子
7.13 变异测试工具
7.14 低成本变异测试
7.14.1 划分变异函数的优先级
7.14.2 选择使用部分变异算子
小结
参考文献注释
练习
《软件测试基础教程》为计算机科学丛书之一。 《软件测试基础教程》基于实例讲述不同规模软件项目中的测试生成、选择、最小化和增强方面的最佳工程实践。全书还覆盖了基于数据流的测试充分性和基于变异的测试充分性,这些是可用的最有效的测试充分性准则。《软件测试基础教程》精选了由全世界数百位测试研究人员和实践人员发明和总结的测试知识及技术,采用通俗易懂的表述方式,使读者更容易理解和掌握。测试生成、选择、优先排序和评估是测试过程中所有技术活动的基础。在此基础上合理部署各项组件,才能有效地测试不同类型的软件应用,包括面向对象系统、web服务、图形用户接口、嵌入式系统以及与安全、性能和可靠性有关的各种属性。《软件测试基础教程》采用大量的实例和习题,循序渐进地介绍各种测试技术(包括有限状态模型、组合设计和回归测试的最小化等)。《软件测试基础教程》适合作为计算机、软件工程及相关专业软件测试课程的教材,也可作为软件测试技术人员的参考书。【作者简介】作者:(美国)马瑟(Aditya P.Mathur) 译者:王峰 郭长国 陈振华 等 注释 解说词:宗建建 施寅生马瑟,Aditya P.Mathur,普度大学计算机系主任、教授,印度BITS Pilani大学计算机系创始人之一。他是一位成果颇丰的学者,在国家期刊和会议上发表了100多篇论文。他的重要学术成果包括多语言计算机、软件测试的饱和效应、软件控制论、软件可靠性估算的新技术等。
书籍详细信息 | |||
书名 | 软件测试基础教程站内查询相似图书 | ||
丛书名 | 计算机科学丛书 | ||
9787111351887 如需购买下载《软件测试基础教程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN | |||
出版地 | 北京 | 出版单位 | 机械工业出版社 |
版次 | 1版 | 印次 | 1 |
定价(元) | 59.0 | 语种 | 简体中文 |
尺寸 | 26 × 19 | 装帧 | 平装 |
页数 | 689 | 印数 | 4000 |
(德) 斯皮勒 (Spillner,A.) , (德) 林茨 (Linz,T.) , (挪) 谢弗 (Schaefer,H.) , 著
曾文, 主编
刘德宝, 杨鹏, 编著
(美) 马瑟 (Mathur,A.P.) , 著
杜文洁, 王占军, 高芳, 主编
郑文强, 周震漪, 马均飞, 编著
(德) 斯皮勒 (Spillner,A.) , (德) 林茨 (Linz,T.) , (挪) 谢弗 (Schaefer,H.) , 著
牛红, 刘卫宏, 唐国平, 编
杜文洁, 景秀丽, 主编