软件测试方法和技术(第3版) / 高等学校软件工程专业系列教材
¥44.50定价
作者: 朱少民
出版时间:2014年10月
出版社:清华大学出版社
- 清华大学出版社
- 9787302370314
- 3-1
- 155396
- 16开
- 2014年10月
- 工学
- 软件工程
- TP311.5
- 计算机
- 本专科、高职高专
内容简介
本书共分为三篇: 软件测试的原理与方法、技术和实践。本书首先系统地介绍软件测试相关概念,从不同的视角来探讨软件测试的本质及其内涵; 全面而又系统地讲解了软件测试所需的基本方法,按照SWEBOK 3.0对方法进行了重新分类和组织,能够满足不同应用系统的测试需求; 并且简要地介绍了软件测试规范、软件测试过程及其改进等内容,有利于读者提纲挈领地掌握软件测试的知识全貌。 本书的第2篇介绍了软件测试各个层次(单元测试、集成测试、系统测试和验收测试)的测试技术及其工具,系统、务实而有效,和业界的实践保持高度一致,学以致用; 而且还介绍了软件国际化和本地化的测试、软件测试自动化的原理和框架,可使读者有效地提高动手能力。为了更好地将测试方法和技术应用于实际项目中,本书的第3篇从软件测试需求分析、测试计划开始,逐步深入测试用例设计、测试环境部署、测试执行、缺陷报告跟踪与报告、测试结果分析与报告,贯穿整个软件开发生命周期。 本书在内容组织上力求自然而条理清晰、丰富而实用,通俗易懂、循序渐进,并提供了丰富的实例和实践要点,使理论和实践能够有机地结合起来,更好地满足软件测试学科的特点,使读者更容易理解所学的理论知识、掌握测试方法和技术的应用之道。本书可作为高等学校软件工程专业、计算机应用专业和相关专业的教材,以及其他各类软件工程技术人员的参考书。
目录
第1篇软件测试的原理与方法
第1章引论
1.1软件测试的必要性
1.1.1迪士尼并不总是带来笑声
1.1.2一个缺陷造成了数亿美元损失
1.1.3火星探测飞船坠毁
1.1.4更多的悲剧
1.2为什么要进行软件测试
1.3什么是软件测试
1.3.1软件测试学科的形成
1.3.2正反两方面的争辩
1.3.3软件测试的定义
1.3.4软件测试的其他观点
1.4测试和开发的关系
1.5测试和质量保证的关系
1.6测试驱动开发的思想
小结
思考题
第2章软件测试的基本概念
2.1软件缺陷
2.1.1软件质量的内涵
2.1.2软件缺陷的定义
2.1.3软件缺陷的产生
2.1.4软件缺陷的构成
2.1.5修复软件缺陷的代价
2.2软件测试的分类
2.3静态测试和动态测试
2.3.1产品评审
2.3.2静态分析
2.3.3验证和确认
2.4主动测试和被动测试
2.5黑盒测试和白盒测试
2.6软件测试级别
2.7软件测试计划和测试用例
2.7.1测试计划
2.7.2测试用例
2.8专业测试人员的责任和要求
2.8.1专业软件测试人员的责任
2.8.2对专业测试人员的要求
2.8.3优秀测试工程师应具备的素质
小结
思考题
第3章软件测试方法
3.1基于直觉和经验的方法
3.1.1Adhoc测试方法和ALAC测试
3.1.2错误推测法
3.2基于输入域的方法
3.2.1等价类划分法
3.2.2边界值分析法
3.3基于组合及其优化的方法
3.3.1判定表方法
3.3.2因果图法
3.3.3Pairwise方法
3.3.4正交试验法
3.4基于逻辑覆盖的方法
3.4.1判定覆盖
3.4.2条件覆盖
3.4.3判定条件覆盖
3.4.4条件组合覆盖
3.4.5基本路径覆盖
3.5基于缺陷模式的测试
3.5.1常见的缺陷模式
3.5.2DPBT的测试过程
3.6基于模型的测试
3.6.1功能图法
3.6.2模糊测试方法
3.7形式化测试方法
3.7.1形式化方法
3.7.2形式化验证
3.7.3扩展有限状态机方法
小结
思考题
第4章软件测试流程和规范
4.1传统的软件测试过程
4.1.1W模型
4.1.2TMap NEXT
4.2敏捷测试过程
4.2.1敏捷测试的特征
4.2.2敏捷测试流程
4.2.3基于脚本测试和探索式测试
4.3软件测试学派
4.4基于风险的测试策略
4.5测试过程改进
4.5.1TMMi
4.5.2TPI NEXT
4.5.3CTP
4.5.4STEP
4.6软件测试规范
小结
思考题
第2篇软件测试的技术
第5章单元测试与集成测试
5.1单元测试的目标和任务
5.1.1为何要进行单元测试
5.1.2单元测试的目标和要求
5.1.3单元测试的任务
5.2静态测试
5.2.1编码的标准和规范
5.2.2代码评审
5.3动态测试
5.3.1驱动程序和桩程序
5.3.2类测试
5.4代码评审案例分析
5.4.1空指针保护
5.4.2格式化数字错误
5.4.3字符串或数组越界错误
5.4.4资源不合理使用
5.4.5不当使用synchronized导致系统性能下降
5.5分层单元测试
5.5.1Action层的单元测试
5.5.2数据访问层的单元测试
5.5.3Servlet的单元测试
5.6单元测试工具
5.6.1JUnit介绍
5.6.2Eclipse中JUnit应用举例
5.6.3JUnit Ant 构建自动的单元测试
5.6.4代码的静态检测工具
5.6.5SourceMonitor 检测代码复杂度
5.6.6开源的单元测试工具
5.6.7商业的单元测试工具
5.7系统集成的模式与方法
5.7.1集成测试的模式
5.7.2自顶向下和自底向上集成方法
5.7.3混合策略
5.7.4持续集成
小结
思考题
第6章系统测试
6.1系统级功能测试
6.1.1功能测试要求
6.1.2Web服务器的功能测试
6.1.3一套Web功能测试工具
6.1.4AutoIT及其客户端测试工具
6.1.5嵌入式测试工具
6.2回归测试
6.2.1目的
6.2.2策略及其方法
6.3性能测试
6.3.1系统性能指标和测试类型
6.3.2系统负载及其模式
6.3.3性能测试的基本过程
6.3.4性能测试结果分析
6.3.5JMeter及系统性能测试工具
6.3.6Web性能测试
6.3.7用JProfiler完成应用服务器的性能测试
6.3.8压力测试
6.3.9容量测试
6.4安全性测试
6.4.1安全性测试的范围与方法
6.4.2Web安全性测试
6.4.3安全性测试工具
6.5容错性测试
6.5.1容错性测试的要点
6.5.2数据库并发控制测试
6.6兼容性测试
6.6.1软件兼容性测试
6.6.2数据共享兼容性测试
6.6.3硬件兼容性测试
6.7可靠性测试
小结
思考题
第7章验收测试
7.1验收测试过程
7.2产品规格说明书的验证
7.2.1产品规格说明书的评审
7.2.2产品规格说明书的验证
7.2.3文档的测试
7.3用户界面和可用性测试
7.4安装测试和可恢复性测试
小结
思考题
第8章软件本地化测试
8.1什么是软件本地化
8.1.1软件本地化与国际化
8.1.2字符集问题
8.1.3软件国际化标准
8.1.4软件本地化基本步骤
8.1.5软件本地化测试
8.2翻译验证
8.3本地化测试的技术问题
8.3.1数据格式
8.3.2页面显示和布局
8.3.3配置和兼容性问题
8.4本地化的功能测试
小结
思考题
第9章测试自动化及其框架
9.1测试自动化的内涵
9.1.1手工测试的局限性
9.1.2什么是测试自动化
9.1.3软件测试自动化的优势
9.2测试自动化实现的原理
9.2.1代码分析
9.2.2对象识别
9.2.3脚本技术
9.2.4自动比较技术
9.2.5测试自动化系统的构成
9.3测试自动化的实施
9.3.1测试工具的分类
9.3.2测试工具的选择
9.3.3测试自动化普遍存在的问题
9.3.4自动化测试的引入和应用
9.4功能测试工具特性要求
9.5性能测试工具特性要求
9.6测试自动化的框架
小结
思考题
第3篇软件测试项目实践
第10章测试需求分析与测试计划
10.1测试的目标和准则
10.2测试需求分析
10.2.1测试需求分析的基本方法
10.2.2测试需求分析的技术
10.2.3功能测试范围分析
10.2.4非功能性的系统测试需求
10.3测试项目的估算与进度安排
10.3.1测试工作量估算
10.3.2工作分解结构表方法
10.3.3资源的安排
10.3.4测试里程碑和进度表
10.4测试风险和测试策略
10.4.1测试风险管理计划
10.4.2测试策略的确定
10.5测试计划的内容与编制
10.5.1测试计划内容
10.5.2测试项目的计划过程
10.5.3制定有效的测试计划
小结
思考题
第11章设计和维护测试用例
11.1测试用例构成及其设计
11.1.1测试用例的重要性
11.1.2测试用例设计书写标准
11.1.3测试用例设计考虑因素
11.1.4测试用例设计的基本原则
11.2测试用例的组织和跟踪
11.2.1测试用例的属性
11.2.2测试套件及其构成方法
11.2.3跟踪测试用例
11.2.4维护测试用例
11.2.5测试用例的覆盖率
小结
思考题
第12章部署测试环境
12.1测试环境的重要性
12.2测试环境要素
12.2.1硬件
12.2.2网络环境
12.2.3软件
12.2.4数据准备
12.3虚拟机的应用
12.3.1虚拟机软件
12.3.2VMware的虚拟机解决方案
12.3.3辅助工具
12.4如何建立项目的测试环境
12.5自动部署测试环境
12.6测试环境的维护和管理
小结
思考题
第13章测试执行、缺陷报告与跟踪
13.1软件测试执行与跟踪
13.1.1测试执行过程的要点
13.1.2测试项目进度的管理方法
13.1.3测试过程管理工具
13.2软件缺陷的描述
13.2.1软件缺陷的生命周期
13.2.2严重性和优先级
13.2.3缺陷的其他属性
13.2.4完整的缺陷信息
13.2.5缺陷描述的基本要求
13.2.6缺陷报告示例
13.3软件缺陷相关的信息
13.3.1软件缺陷的图片信息
13.3.2使用WinDbg记录软件缺陷信息
13.3.3使用SoftICE记录软件缺陷信息
13.3.4分离和再现软件缺陷
13.4软件缺陷跟踪和分析
13.4.1软件缺陷处理技巧
13.4.2缺陷趋势分析
13.4.3缺陷分布分析
13.4.4缺陷跟踪方法
13.5软件缺陷跟踪系统
小结
思考题
第14章软件测试和质量分析报告
14.1软件产品的质量度量
14.1.1软件度量及其过程
14.1.2软件质量的度量
14.1.3质量度量的统计方法
14.2评估系统测试的覆盖程度
14.2.1对软件需求的估算
14.2.2基于需求的测试覆盖评估
14.2.3基于代码的测试覆盖评估
14.3基于缺陷分析的产品质量评估
14.3.1缺陷评测的基线
14.3.2经典的种子公式
14.3.3基于缺陷清除率的估算方法
14.3.4软件产品性能评估
14.4测试报告的具体内容
小结
思考题
参考文献
附录A软件测试英文术语及中文解释
附录B测试计划模板
附录C测试用例设计模板
附录D软件缺陷模板
附录E测试报告模板
附录FJava Code Inspection Checklist