目录
第1章软件质量和软件测试概述
1.1软件质量
1.1.1质量概念
1.1.2软件及软件质量概念
1.1.3软件质量评价体系
1.2软件测试
1.2.1软件测试的意义
1.2.2软件失效的实例
1.2.3软件测试的定义
1.2.4软件测试的方法
1.2.5软件缺陷的修复代价
1.3软件质量保证和软件测试的关系
1.4本章小结
第2章软件质量标准
2.1标准的定义及分类
2.1.1国际标准
2.1.2国家标准
2.1.3行业标准
2.1.4地方标准
2.1.5企业标准
2.2软件质量标准概述
2.3ISO/IEC/IEEE 12207: 2017标准
2.3.1合同过程组
2.3.2组织性项目使能过程组
2.3.3技术过程组
2.3.4技术管理过程组
2.4CMM与CMMI标准
2.4.1从CMM到CMMI
2.4.2CMM标准
2.4.3CMMI标准
2.5本章小结
第3章软件全面质量管理
3.1全面质量管理概述
3.1.1发展阶段
3.1.2全面质量管理与ISO 9000
3.1.3全面质量管理与统计技术
3.2六西格玛(6σ)项目管理
3.2.1六西格玛(6σ)管理简介
3.2.2六西格玛(6σ)管理的特征与优点
3.2.3六西格玛管理与零缺陷管理
3.3DFSS流程及主要设计工具
3.3.1DFSS简介
3.3.2DFSS内涵及其重要性
3.3.3DFSS步骤及其主要方法论
3.3.4DFSS实际应用案例
3.4本章小结
第4章软件质量保证
4.1软件质量保证面临的挑战
4.2深入理解软件质量保证的上下文
4.2.1软件开发维护环境
4.2.2软件需求、软件制品和软件质量保证的关系
4.3软件质量保证的定义
4.4软件质量保证组织
4.4.1独立的SQA部门
4.4.2独立的SQA工程师
4.4.3独立的SQA小组
4.5软件质量保证活动
4.5.1软件评审
4.5.2验证与确认
4.5.3纠正和预防措施
4.6软件质量保证过程
4.6.1SQA过程的实施
4.6.2产品质量保证
4.6.3过程质量保证
4.7本章小结
第5章软件测试基础
5.1目的和原则
5.1.1软件测试的目的
5.1.2软件测试的原则
5.2测试过程
5.2.1测试计划和监控
5.2.2测试分析
5.2.3测试设计
5.2.4测试实施
5.2.5测试执行
5.2.6测试评估和报告
5.2.7测试结束活动
5.3案例: 测试工作流程
5.4本章小结
第6章软件生命周期中的测试
6.1软件测试模型
6.1.1V模型
6.1.2W模型
6.1.3H模型
6.1.4X模型
6.1.5前置测试模型
6.1.6小结
6.2测试级别
6.2.1组件测试
6.2.2集成测试
6.2.3系统测试
6.2.4验收测试
6.2.5案例: 四个测试级别的测试
6.3测试类型
6.3.1功能测试
6.3.2性能测试
6.3.3自动化测试
6.3.4结构测试
6.3.5与变更相关的测试
6.4黑盒测试和白盒测试
6.4.1黑盒测试
6.4.2白盒测试
6.4.3黑盒测试和白盒测试的比较
6.5本章小结
第7章软件静态测试技术
7.1静态测试和测试过程
7.1.1静态测试的基本内容
7.1.2静态测试的过程
7.2评审
7.2.1正式评审过程
7.2.2评审角色和职责
7.2.3评审类型
7.2.4评审技术
7.2.5支持评审的工具
7.2.6评审成功的因素
7.3代码检查
7.3.1代码检查种类
7.3.2代码审查的过程
7.3.3高效的代码检查
7.3.4案例: 代码审查
7.4静态结构分析与工具支持
7.4.1静态分析工具
7.4.2规范标志一致性
7.4.3控制流分析
7.4.4数据流分析
7.4.5案例: 静态结构分析技术的应用
7.5软件静态质量度量
7.6本章小结
第8章软件测试设计技术
8.1黑盒测试技术(基于规格说明的测试技术)
8.1.1等价类划分法
8.1.2边界值分析法
8.1.3决策表测试
8.1.4基于状态的测试
8.1.5基于用例的测试
8.1.6基于用户故事(敏捷开发)的测试
8.1.7黑盒测试技术的比较与选择
8.2基于缺陷的测试技术
8.2.1基于缺陷的技术
8.2.2缺陷分类法
8.3基于经验的测试技术
8.3.1错误推测法
8.3.2基于检查表测试
8.3.3探索性测试
8.4白盒测试技术(基于结构的测试技术)
8.4.1语句覆盖及其覆盖率
8.4.2判定覆盖及其覆盖率
8.4.3条件覆盖及其覆盖率
8.4.4路径测试
8.4.5基本路径测试
8.4.6几种常用覆盖的比较
8.5基于模型的测试
8.5.1将MBT集成到软件开发生命周期
8.5.2MBT建模
8.5.3建模语言
8.6测试用例设计案例
8.7本章小结
第9章软件测试管理
9.1组织和项目周境的软件测试
9.2测试组织
9.2.1测试角色
9.2.2测试组织和测试独立性
9.3测试过程管理
9.3.1组织级测试过程
9.3.2测试管理过程
9.3.3测试监测和控制过程
9.3.4测试完成过程
9.3.5测试子过程
9.4测试管理的支持工作流
9.4.1软件项目管理与软件测试
9.4.2配置管理与软件测试
9.5测试成熟度模型集成TMMi
9.5.1TMMi的测试成熟度级别
9.5.2TMMi的结构
9.6本章小结
第10章软件测试工具
10.1测试管理工具
10.1.1测试管理及其工具
10.1.2测试管理工具应用实例
10.1.3测试管理工具的特殊考虑
10.2测试设计及执行工具
10.2.1测试设计与测试数据准备工具
10.2.2测试执行及评估工具
10.2.3测试执行工具的特殊考虑
10.3静态测试工具
10.3.1静态测试及其工具
10.3.2静态测试工具应用实例
10.4性能测试工具
10.4.1性能测试
10.4.2性能测试及其工具
10.5特定的测试工具
10.5.1缺陷植入/错误输入工具
10.5.2基于网页的测试工具
10.5.3基于模型测试的工具支持
10.5.4组件测试工具和构建工具
10.6测试工具的有效使用
10.6.1工具选择的主要原则
10.6.2组织引入工具的试点项目及其成功因素
10.6.3测试工具生命周期及其度量
10.6.4常用的测试工具
10.7本章小结
第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.3自动化测试案例
11.3.1自动化测试执行
11.3.2自动化性能测试: 内存测试
11.3.3自动化性能测试: 语音传输质量测试
11.4持续集成及其案例
11.5本章小结
参考文献
附录A代码审查规范及代码审查
附录BJava语言编码规范标准