《软件质量保证与测试》共分10章,涵盖了软件质量保证与测试基础、软件测试策略、白盒测试、黑盒测试、单元测试、性能测试、自动化测试、软件评审、软件质量与质量保证、测试的组织和管理等内容。全书详细介绍了软件质量保证与测试的基础知识,讲解了软件测试涉及的所有流程,并介绍了多款软件测试工具,将理论知识与实践操作技能有机结合,有助于学生完整、系统地掌握软件质量保证与测试技术,提高实践创新能力。
《软件质量保证与测试》可作为软件工程、计算机科学与技术等相关本科专业教材,也可供相关的专业人员参考使用。
		
	
第1章  软件质量保证与测试基础
1.1 软件	001
1.1.1 软件生命周期	001
1.1.2 软件开发模型	002
1.1.3 软件质量概述	008
1.2 软件缺陷管理	012
1.2.1 软件缺陷产生的原因	012
1.2.2 软件缺陷分类	013
1.2.3 软件缺陷的处理流程	014
1.2.4 常见的软件缺陷管理工具	015
1.3 软件测试与软件开发	018
1.4 软件测试概述	018
1.4.1 软件测试简述	019
1.4.2 软件测试+AI	020
1.4.3 软件测试的目的	021
1.5 软件测试流程	022
1.5.1 分析测试需求	022
1.5.2 制订测试计划	023
1.5.3 设计测试用例	023
1.5.4 执行测试	023
1.5.5 编写测试报告	024
本章小结	024
本章习题	025
第2章  软件测试策略
2.1  软件测试模型	027
2.1.1 V模型	028
2.1.2 W模型	029
2.1.3 X模型	030
2.1.4 H模型	031
2.2 软件测试的方法和技术	032
2.2.1 静态测试和动态测试	032
2.2.2 黑盒测试和白盒测试	034
2.2.3 手工测试和自动化测试	035
2.3 软件测试的基本策略	036
2.3.1 单元测试	036
2.3.2 集成测试	037
2.4  软件测试的原则	037
本章小结	039
本章习题	039
第3章  白盒测试
3.1 引言	041
3.1.1 白盒测试的定义与重要性	041
3.1.2 白盒测试与黑盒测试的区别	041
3.1.3 白盒测试的应用场景	042
3.2 逻辑覆盖法	043
3.2.1 语句覆盖	043
3.2.2 分支覆盖	045
3.2.3 条件覆盖	045
3.2.4 判定-条件覆盖	046
3.2.5 条件组合覆盖	047
3.2.6  实例:三角形的逻辑覆盖	048
3.2.7 循环测试技术	050
3.3 基本路径测试覆盖	051
3.3.1 控制流图	051
3.3.2 环路复杂度	052
3.3.3 基本路径覆盖及实例	053
3.4  测试覆盖分析工具	056
3.4.1 JaCoCo	056
3.4.2 JCov	057
3.4.3 Cobertura	057
3.4.4 EclEmma	057
3.5  程序插桩法	066
3.5.1  目标代码插桩	066
3.5.2  源代码插桩	069
3.5.3  实例:对学生类插入代码	070
3.6 静态测试工具	071
3.6.1 FindBugs	072
3.6.2 PMD	074
3.6.3 CheckStyle	077
3.6.4 其他静态测试工具	078
本章小结	079
本章习题	079
第4章  黑盒测试
4.1 黑盒测试基础	081
4.1.1 黑盒测试的应用场景	081
4.1.2 测试需求分析与规格说明书	081
4.2 等价类划分法	081
4.2.1 等价类划分法的概念	082
4.2.2 实例:三角形问题的等价类划分	083
4.3 边界值分析法	085
4.3.1 边界值分析法的概念	085
4.3.2 实例:三角形问题的边界值分析	086
4.4 因果图与决策表法	087
4.4.1 因果图法	087
4.4.2 决策表的构建	090
4.5  错误推测法	093
4.5.1 基于经验的错误预测	093
4.5.2 错误推测法的应用示例	094
4.6 正交实验设计方法	094
4.6.1 正交实验设计方法概述	094
4.6.2 实例:微信Web页面运行环境正交实验设计	097
4.6.3 工具:正交设计助手的使用	098
4.7  组合测试方法	102
4.7.1 基本概念	102
4.7.2 详细方法	103
4.8 场景法	105
本章小结	106
本章习题	106
第5章  单元测试
5.1 单元测试的目的和任务	108
5.1.1 单元测试的目的	108
5.1.2 单元测试的目标和要求	109
5.1.3 单元测试的任务	110
5.2 单元测试的原则	112
5.3 JUnit框架介绍	113
5.3.1 JUnit的历史与发展	113
5.3.2 JUnit的关键注解	122
5.3.3 断言	124
5.3.4 参数化测试	130
5.3.5 测试套件	131
本章小结	132
本章习题	132
第6章  性能测试
6.1 性能测试概述	135
6.1.1 性能测试基础	135
6.1.2 性能测试失败案例	136
6.1.3 性能测试分类	137
6.1.4 性能测试指标	140
6.2 搭建性能测试环境	144
6.2.1 搭建基础环境	144
6.2.2 JMeter安装方法	148
6.2.3 JMeter包含目录	149
6.3 JMeter测试案例	152
6.3.1 新建测试计划	152
6.3.2 添加线程组	153
6.3.3 添加HTTP请求	155
6.3.4 添加查看结果树	157
6.3.5 测试执行	157
6.4 JMeter的核心组件	159
6.4.1 取样器	159
6.4.2 监听器	163
6.4.3 配置元件	169
6.4.4 断言	180
6.4.5 前置处理器	188
6.4.6 后置处理器	190
6.4.7 逻辑控制器	199
6.4.8 定时器	207
6.5 实例:Badboy结合JMeter测试飞机购票系统	213
6.5.1 Badboy简介	213
6.5.2 搭建测试环境	213
6.5.3 编写测试脚本	217
本章小结	225
本章习题	225
第7章  自动化测试
7.1 自动化测试概述	227
7.1.1 什么是自动化测试	227
7.1.2 自动化测试的基本流程	228
7.1.3 自动化测试的实施策略	229
7.1.4  自动化测试的优势和劣势	230
7.2 自动化测试常见技术	231
7.2.1 录制回放技术	231
7.2.2 数据驱动测试	231
7.2.3 关键字驱动测试	232
7.2.4 行为驱动测试	232
7.2.5 接口测试技术	232
7.2.6 性能测试技术	232
7.3 自动化测试常见工具	233
7.4 QTP自动化工具	233
7.4.1 搭建自动化测试QTP环境	234
7.4.2 QTP工具的基本应用	235
7.4.3 QTP常用的操作方法	236
7.4.4 QTP操作界面	238
7.4.5 QTP工作流程	239
7.4.6 Action知识	243
7.4.7 QTP参数化	246
7.4.8 QTP同步点	262
7.4.9 QTP检查点	265
7.4.10 QTP多Action操作	271
7.4.11 不同的Action中传递参数	292
本章小结	302
本章习题	303
第8章  软件评审
8.1  软件评审基础知识	305
8.1.1 软件评审的概念	305
8.1.2 软件评审的作用	306
8.1.3 软件评审的特点	306
8.2 软件评审活动	307
8.3 软件评审技术和工具	308
8.3.1 常用技术和工具	308
8.3.2 SourceMonitor工具	308
8.4 软件评审的组织	315
本章小结	316
本章习题	316
第9章  软件质量与质量保证
9.1 相关概念	318
9.1.1 软件质量保证(SQA)	318
9.1.2 软件质量控制(SQC)	318
9.1.3 SQC与SQA的区别	318
9.2 软件质量模型和质量度量	319
9.2.1 软件质量模型	319
9.2.2 软件质量的度量	320
9.3 软件质量管理与质量保证	321
9.3.1 软件质量管理	321
9.3.2 软件质量保证的活动	322
9.3.3 软件质量保证体系的构成	323
9.4 程序正确性软件质量	323
9.4.1 程序正确性的标准	323
9.4.2 软件错误的分类	324
9.5 程序中隐藏错误数量估计	324
9.5.1 种子模型法	325
9.5.2 Hyman估算法	325
9.5.3 回归分析	326
本章小结	326
本章习题	327
第10章 测试的组织和管理
10.1 人员和资源组织	328
10.1.1 软件测试工作的特点	328
10.1.2 软件测试人员组织	329
10.1.3 软件测试资源组织	331
10.2 过程和进度管理	331
10.2.1 软件测试项目的过程	331
10.2.2 测试进度管理	335
10.3 测试文档、测试用例和缺陷管理	336
10.3.1 测试文档管理	336
10.3.2 测试用例管理	337
10.3.3 缺陷管理	339
本章小结	340
本章习题	340
参考文献