图书目录

目    录

第1章  代码可靠性测试 1

1.1  软件代码可靠性测试 1

1.1.1  软件可靠性 2

1.1.2  软件不可靠的原因 3

1.1.3  软件代码可靠性测试 3

1.2  软件代码可靠性测试分析、设计与实现 4

1.2.1  软件需求分析 5

1.2.2  软件需求实现 5

1.2.3  软件设计实现 7

1.2.4  软件代码可靠性分析 8

1.2.5  软件代码可靠性设计 9

1.2.6  软件代码可靠性编程 12

1.2.7  软件代码可靠性保障因素 14

1.2.8  软件代码可靠性测试需求 17

1.3  代码可靠性测试的方法、过程与技术 19

1.3.1  测试方法 20

1.3.2  测试过程 21

1.3.3  测试技术 27

1.4  代码可靠性测试计划、用例(测试数据)设计 28

1.4.1  测试计划 28

1.4.2  测试报告 29

1.4.3  测试数据 29

1.4.4  测试用例 30

1.5  代码可靠性测试缺陷管理与跟踪 32

1.5.1  缺陷的定义与分类 32

1.5.2  缺陷管理 33

1.5.3  缺陷报告 34

1.6  实践环节:测试管理工具

TestLink与缺陷管理工具Mantis 35

1.6.1  测试管理工具TestLink 35

1.6.2  缺陷管理工具Mantis 36

1.6.3  测试计划编写与测试报告模板 36

1.6.4  本章各类模板说明 38

第2章  被测样例系统 43

2.1  被测样例系统一的需求说明 43

2.1.1  引言 43

2.1.2  系统概述 44

2.1.3  功能性需求 45

2.1.4  非功能性需求 47

2.1.5  外部接口说明 48

2.2  被测样例系统一的设计说明 48

2.2.1  引言 48

2.2.2  系统架构图 49

2.2.3  全局数据说明 49

2.2.4  功能设计说明 57

2.3  被测样例系统二的需求说明 68

2.3.1  引言 68

2.3.2  系统概述 68

2.3.3  功能性需求 69

2.3.4  非功能性需求 70

2.3.5  外部接口说明 70

2.4  被测样例系统二的设计说明 70

2.4.1  引言 70

2.4.2  系统架构设计 71

2.4.3  数据库设计 72

2.4.4  主窗体的格局设计 74

2.4.5  功能设计说明 77

第3章  软件质量度量 93

3.1  软件质量 93

3.1.1  软件质量定义 94

3.1.2  软件质量特性 95

3.1.3  软件质量模型 97

3.2  软件质量度量与评价 104

3.2.1  产品质量度量的分类 104

3.2.2  软件质量评价策略 105

3.2.3  软件质量评价过程 107

3.3  软件质量度量方法 110

3.3.1  行数度量 110

3.3.2  扇入/扇出数度量 111

3.3.3  McCabe度量 111

3.4  软件质量度量实践 116

3.4.1  软件质量度量工具 116

3.4.2  被测样例系统质量度量实践 122

第4章  软件代码静态分析 151

4.1  软件代码静态分析的概念 151

4.2  C语言编码规范 152

4.2.1  编码规范 152

4.2.2  MISRA-C 2004编码规范 153

4.3  MISRA-C 2004典型编码规范介绍 155

4.3.1  数据类型及数据类型转换规范 155

4.3.2  初始化规范 159

4.3.3  指针的规范 160

4.3.4  表达式规范 163

4.3.5  程序流的控制规范 167

4.4  软件代码静态分析实践 176

4.4.1  代码静态分析工具 176

4.4.2  被测样例系统静态分析

实践 186

第5章  代码安全性检查 195

5.1  软件代码安全性检查的概念 195

5.2  软件代码安全性检查的原理 196

5.2.1  数据流分析 196

5.2.2  控制流分析 198

5.2.3  接口分析 199

5.2.4  表达式分析 199

5.3  典型错误分析 199

5.3.1  缓冲区溢出 199

5.3.2  内存泄漏 202

5.3.3  引用未初始化变量 205

5.3.4  指针与数组错误 206

5.4  软件代码安全性检查的实践 210

5.4.1  代码安全性检查工具 210

5.4.2  被测样例系统代码安全性检查 221

第6章  动态白盒测试 231

6.1  软件白盒测试概述 231

6.1.1  白盒测试的基本概念 231

6.1.2  白盒测试的原则 232

6.1.3  白盒测试的意义 232

6.2  软件动态白盒测试方法和

技术 234

6.2.1  动态白盒测试 234

6.2.2  对逻辑结构的测试 234

6.2.3  对路径的测试 243

6.2.4  对循环的测试 250

6.2.5  对变量的测试 253

6.2.6  动态白盒测试策略 254

第7章  软件单元测试 255

7.1  单元测试概述 255

7.1.1  单元测试基本概念 256

7.1.2  单元测试的重要性 257

7.1.3  单元测试的内容 257

7.1.4  单元测试的原则 260

7.2  单元测试方法和技术 261

7.2.1  单元测试方法 261

7.2.2  单元测试技术 261

7.2.3  单元测试要求 262

7.3  单元测试策略和过程 263

7.3.1  单元测试策略 263

7.3.2  单元测试过程 264

7.3.3  单元测试环境 267

7.4  单元测试实践 269

7.4.1  C/C++应用程序单元测试 269

7.4.2  被测样例系统一单元测试实践 274

7.4.3  Java应用程序单元测试工具 309

7.4.4  被测样例系统二单元测试实践 324

第8章  软件集成测试 337

8.1  集成测试概述 337

8.1.1  集成测试的基本概念 338

8.1.2  集成测试的重要性 338 

8.1.3  集成测试的主要内容 339

8.2  集成测试用例设计方法和技术 341

8.2.1  集成测试用例的设计方法 341

8.2.2  集成测试设计用例技术要求 342

8.3  集成测试方法和过程 343

8.3.1  集成测试方法 343

8.3.2  集成测试过程 350

8.3.3  集成测试环境 355

8.3.4  集成测试原则 356

8.4  集成测试实践 357

8.4.1  C/C++集成测试工具 357

8.4.2  被测样例系统一集成测试实践 357

8.4.3  Java集成测试工具 382

8.4.4  被测样例系统二集成测试实践 382