图书目录

目 录

第 1 章 软件测试概述    1

 1.1  软件缺陷 1

1.1.1  Bug与软件缺陷 1

1.1.2  软件缺陷的普遍性 2

 1.2  软件质量 4

 1.3  软件测试定义 5

 1.4  软件测试学科 6

1.4.1  软件测试的发展历程 6

1.4.2  软件工程与软件测试 7

1.4.3  软件测试学派 8

 1.5  软件测试目的和原则 9

1.5.1  软件测试目的 9

1.5.2  软件测试原则 11

 1.6  软件测试分类 14

 1.7  测试用例 19

 1.8  软件测试资质认证 22

1.8.1  ISTQB 22

1.8.2  CSTQB 25

1.8.3  软件测评师 26

 1.9  思考题 27

第 2 章 黑盒测试    29

 2.1  黑盒测试概述 29

 2.2  等价类划分 31

2.2.1  等价类划分概述 31

2.2.2  等价类划分的设计规则 32

2.2.3  测试用例完整性划分 32

2.2.4  等价类划分的设计过程 33

2.2.5  等价类划分的示例 33

 2.3  边界值分析法 35

2.3.1  边界值选取原则 35

2.3.2  边界值选取方法 36

2.3.3  边界值分析法示例 37

2.3.4  边界值分析法的特点 37

 2.4  判定表 38

2.4.1  判定表的要素 38

2.4.2  判定表的实例 39

2.4.3  判定表的特点 40

 2.5  因果图 40

2.5.1  因果图的原理 41

2.5.2  因果图的实例 42

2.5.3  因果图的特点 44

 2.6  正交实验法 44

2.6.1  正交实验法的原理与实例 45

2.6.2  正交实验法的标准与工具 46

 2.7  场景法 47

2.7.1  场景法的设计流程 47

2.7.2  场景法的特点 49

 2.8  状态迁移法 49

 2.9  错误推测法 50

 2.10  黑盒测试实施策略 51

 2.11  思考题 51

第 3 章 白盒测试   53

 3.1  白盒测试概述 53

 3.2  静态白盒测试 54

3.2.1  编码规范 54

3.2.2  代码静态检测 57

3.2.3  代码静态检测工具 59

 3.3  逻辑覆盖测试 61

3.3.1  语句覆盖 62

3.3.2  判定覆盖 63

3.3.3  条件覆盖 63

3.3.4  判定条件覆盖 64

3.3.5  条件组合覆盖 64

3.3.6  路径覆盖 65

 3.4  基本路径测试 65

 3.5  循环测试 68

 3.6  程序插桩 69

 3.7  灰盒测试 72

 3.8  其他白盒测试方法 73

 3.9  白盒测试实施策略 76

 3.10  思考题 76

第 4 章 软件测试过程  79

 4.1  软件测试标准 79

4.1.1  标准概述 79

4.1.2  软件测试相关标准 80

 4.2  软件测试过程模型 84

4.2.1  V模型 86

4.2.2  W模型 87

4.2.3  H模型 88

4.2.4  X模型 88

4.2.5  前置测试模型 89

 4.3  软件测试过程管理 90

 4.4  软件测试管理工具 91

 4.5  敏捷测试 94

4.5.1  敏捷测试方法 96

4.5.2  敏捷测试技术 97

4.5.3  敏捷测试工具 99

 4.6  DevOps测试 100

 4.7  思考题 103

第 5 章 单元测试与集成测试  105

 5.1  单元测试 105

5.1.1  单元测试概述 106

5.1.2  单元测试的内容 107

5.1.3  单元测试的过程 109

5.1.4  驱动程序、桩程序和Mock 110

5.1.5  单元测试工具 111

 5.2  集成测试 118

5.2.1  集成测试概述 118

5.2.2  集成测试的模式 119

5.2.3  微服务架构的集成测试 122

5.2.4  持续集成与测试 123

 5.3  思考题 125

第 6 章 系统测试(一)  127

 6.1  功能测试 128

6.1.1  功能测试与非功能测试 128

6.1.2  功能测试的内容 129

 6.2  性能测试 131

6.2.1  性能测试的分类 131

6.2.2  性能测试的指标 134

6.2.3  性能测试的过程 137

6.2.4  负载测试 138

6.2.5  压力测试 138

6.2.6  容量测试 139

6.2.7  性能测试工具 140

 6.3  安全性测试 145

6.3.1  安全性测试概述 146

6.3.2  安全性测试原则 146

6.3.3  安全性测试评价 147

6.3.4  安全性测试方法 148

 6.4  思考题 154

第 7 章 系统测试(二)与验收测试  155

 7.1  可靠性测试 155

7.1.1  可靠性测试概述 156

7.1.2  可靠性测试相关标准与规范 157

7.1.3  可靠性模型 158

7.1.4  可靠性测试过程 160

 7.2  易用性测试 161

7.2.1  易用性测试概述 161

7.2.2  易用性测试方法 162

7.2.3  A/B测试 163

7.2.4  人机交互的软件工程 165

 7.3  兼容性测试 167

7.3.1  硬件兼容性测试 167

7.3.2  软件兼容性测试 168

7.3.3  数据兼容性测试 170

 7.4  本地化测试 170

7.4.1  本地化测试概述 170

7.4.2  软件国际化标准 171

7.4.3  国际化开发测试流程 172

7.4.4  本地化测试内容 172

 7.5  验收测试 174

7.5.1  验收测试的步骤 174

7.5.2  验收测试的策略 175

 7.6  思考题 177

第 8 章 软件测试管理  179

 8.1  项目管理 179

8.1.1  项目管理概述 180

8.1.2  项目管理软件 183

8.1.3  软件配置管理与测试 184

 8.2  软件缺陷管理 186

8.2.1  软件缺陷的属性 187

8.2.2  软件缺陷的生命周期 191

8.2.3  软件缺陷报告 192

8.2.4  软件缺陷的分离和再现 195

8.2.5  软件缺陷管理工具 196

 8.3  软件测试文档 197

8.3.1  IEEE 829-2008软件和系统测试文档标准 197

8.3.2  GB/T 9386-2008计算机软件测试文档编制规范 200

8.3.3  测试计划 200

 8.4  思考题 207

第9 章 软件测试工具与自动化  209

 9.1  软件测试工具总结 209

9.1.1  软件测试工具能力 210

9.1.2  软件测试工具的分类 210

9.1.3  软件测试工具的选择 214

9.1.4  软件测试工具的研发 214

 9.2  自动化软件测试 215

9.2.1  自动化软件测试概述 215

9.2.2  自动化软件测试的优势 216

9.2.3  自动化软件测试的关键技术 217

9.2.4  自动化测试框架 218

9.2.5  自动化测试工具 224

 9.3  自动软件测试的引入 226

9.3.1  引入过程中存在的问题 226

9.3.2  自动化测试的引入风险分析 229

9.3.3  适合引入自动化测试的软件项目 230

 9.4  思考题 231

第 10 章 软件测试领域 233

 10.1  软件测试环境 234

10.1.1  软件测试环境概述 234

10.1.2  虚拟化与容器技术 235

 10.2  软件测试的评估 237

10.2.1  测试评估的目的和方法 238

10.2.2  覆盖率评估 238

10.2.3  质量评估 240

10.2.4  性能评估 247

 10.3  软件质量保证与测试 247

 10.4  高质量编程与测试 249

 10.5  人工智能与测试 252

10.5.1  人工智能领域内的测试技术 252

10.5.2  人工智能辅助软件测试 254

 10.6  大数据与测试 257

 10.7  思考题 258

参考文献   259