图书目录

目    录 

第1章  软件代码可靠性基础 1

1.1  软件代码可靠性基础 1

1.2  软件代码可靠性设计与编程 3

1.2.1  软件代码可靠性设计 3

1.2.2  软件代码可靠性编程 6

1.3  软件代码可靠性保障因素 9

1.3.1  需求分析保障 9

1.3.2  配置管理保障 10

1.3.3  跟踪控制保障 10

1.4  软件代码可靠性分析与测试 11

1.4.1  软件代码可靠性分析 11

1.4.2  软件代码可靠性测试综述 13

第2章  软件代码可靠性测试需求 15

2.1  软件代码可靠性测试的概念 15

2.1.1  代码可靠性测试的基本概念 15

2.1.2  代码可靠性测试的意义 16

2.2  软件需求、设计及分析实现 18

2.2.1  软件需求分析 18

2.2.2  软件需求实现 18

2.2.3  软件设计实现 21

2.3  软件代码可靠性测试需求分析 24

第3章  软件代码可靠性测试的方法与技术 27

3.1  软件代码可靠性测试方法 27

3.1.1  静态测试 27

3.1.2  动态测试 28

3.2  软件代码可靠性测试过程 28

3.2.1  软件测试过程 29

3.2.2  软件代码可靠性测试过程 32

3.3  软件代码可靠性测试技术 35

3.3.1  黑盒测试技术 35

3.3.2  白盒测试技术 35

3.3.3  单元测试技术 36

3.3.4  集成测试技术 36

3.3.5  系统测试技术 36

第4章  被测样例系统 39

4.1  被测样例系统的需求说明 39

4.1.1  引言 39

4.1.2  系统概述 40

4.1.3  功能性需求 41

4.1.4  非功能性需求 43

4.1.5  外部接口说明 44

4.2  被测样例系统设计说明 44

4.2.1  引言 44

4.2.2  全局数据说明 44

4.2.3  功能设计说明 49

4.2.4  需求可追溯性 79

第5章  软件质量度量 81

5.1  软件质量 81

5.1.1  软件质量定义 82

5.1.2  软件质量特性 83

5.1.3  软件质量模型 85

5.2  软件质量度量与评价 92

5.2.1  产品质量度量的分类 92

5.2.2  软件质量评价策略 93

5.2.3  软件质量评价过程 95

5.3  软件质量度量方法 97

5.3.1  行数度量 97

5.3.2  扇入/扇出数度量 98

5.3.3  McCabe度量 99

5.4  软件质量度量实践 103

5.4.1  软件质量度量工具 103

5.4.2  被测样例系统质量度量实践 108

第6章  软件代码静态分析 131

6.1  软件代码静态分析的概念 131

6.2  C语言编码规范 132

6.2.1  编码规范 132

6.2.2  MISRA-C 2004编码规范 133

6.3  MISRA-C 2004典型编码规范介绍 135

6.3.1  数据类型及数据类型转换规范 135

6.3.2  初始化规范 139

6.3.3  指针的规范 140

6.3.4  表达式规范 143

6.3.5  程序流的控制规范 147

6.3.6  函数相关规范 152

6.4  软件代码静态分析实践 156

6.4.1  代码静态分析工具 156

6.4.2  被测样例系统静态分析实践 161

第7章  软件代码动态分析 169

7.1  软件代码动态分析的概念 169

7.2  软件代码动态分析的原理 170

7.2.1  数据流分析 170

7.2.2  控制流分析 172

7.2.3  接口分析 173

7.2.4  表达式分析 173

7.3  典型错误分析 173

7.3.1  缓冲区溢出 173

7.3.2  内存泄漏 176

7.3.3  引用未初始化变量 179

7.3.4  指针与数组错误 180

7.4  软件代码动态分析的实践 184

7.4.1  代码动态分析工具 184

7.4.2  被测样例系统代码动态分析 194

第8章  软件黑盒测试 205

8.1  软件黑盒测试概述 205

8.1.1  黑盒测试的基本概念 205

8.1.2  黑盒测试的优点和缺点 206

8.1.3  黑盒测试的意义 206

8.2  软件黑盒测试环境构建 206

8.2.1  黑盒测试环境的重要性 207

8.2.2  黑盒测试环境构建要素 207

8.2.3  黑盒测试环境的管理与维护 207

8.3  软件黑盒测试方法和技术 207

8.3.1  功能分解法 208

8.3.2  等价类划分法 209

8.3.3  边界值分析法 211

8.3.4  因果图分析法 214

8.3.5  场景测试法 217

8.3.6  随机测试法 223

8.3.7  猜错法 223

8.3.8  测试方法的评价 223

8.4  软件黑盒测试原则和策略 224

8.4.1  黑盒测试的原则 225

8.4.2  黑盒测试的策略 225

8.4.3  黑盒测试的类型 225

8.5  软件黑盒测试实践 227

第9章  软件白盒测试 241

9.1  软件白盒测试概述 241

9.1.1  白盒测试的基本概念 241

9.1.2  白盒测试的原则 242

9.1.3  白盒测试的意义 242

9.2  软件白盒测试方法和技术 243

9.2.1  静态白盒测试 243

9.2.2  对判定的测试 243

9.2.3  对路径的测试 244

9.2.4  对循环的测试 251

9.2.5  对变量的测试 254

9.2.6  白盒测试策略 255

9.3  系统级动态白盒测试实践 255

9.3.1  系统级动态白盒测试工具介绍 255

9.3.2  被测样例系统动态白盒测试 266

第10章  软件单元测试 275

10.1  单元测试概述 275

10.1.1  单元测试基本概念 276

10.1.2  单元测试的重要性 276

10.1.3  单元测试的主要任务 277

10.2  单元测试方法和技术 279

10.2.1  单元测试方法 279

10.2.2  单元测试技术 280

10.2.3  单元测试要求 284

10.3  单元测试策略和过程 285

10.3.1  单元测试策略 285

10.3.2  单元测试过程 286

10.3.3  单元测试环境 290

10.4  单元测试实践 291

10.4.1  单元测试工具 291

10.4.2  被测样例系统单元测试实践 296

第11章  软件集成测试 331

11.1  集成测试概述 331

11.1.1  集成测试基本概念 331

11.1.2  集成测试的重要性 332

11.1.3  集成测试的主要任务 333

11.2  集成测试方法和技术 335

11.2.1  集成测试方法 335

11.2.2  集成测试技术要求 335

11.3  集成测试策略和过程 336

11.3.1  集成测试策略 336

11.3.2  集成测试过程 343

11.3.3  集成测试环境 347

11.4  集成测试实践 349

11.4.1  集成测试工具 349

11.4.2  被测样例系统集成测试实践 349

第12章  测试策略与测试方法 375

12.1  软件系统测试策略 375

12.1.1  功能测试策略 377

12.1.2  性能测试策略 377

12.1.3  接口测试策略 378

12.1.4  人机交互界面测试策略 378

12.1.5  强度测试策略 379

12.1.6  余量测试策略 379

12.1.7  安全性测试策略 379

12.1.8  恢复性测试策略 380

12.1.9  边界测试策略 380

12.1.10  数据处理测试策略 380

12.1.11  容量测试策略 380

12.1.12  互操作性测试策略 380

12.1.13  敏感性测试策略 380

12.1.14  标准符合性测试策略 381

12.1.15  兼容性测试策略 381

12.2  软件系统测试方法 381

12.2.1  多任务测试 382

12.2.2  临界测试 382

12.2.3  中断测试 382

12.2.4  其他系统测试方法 382

12.3  软件系统测试过程 383

12.3.1  系统测试需求分析 383

12.3.2  制定系统测试计划 384

12.3.3  设计系统测试用例 387

12.3.4  系统测试的前期准备工作 388

12.3.5  系统测试实施 388

12.4  软件系统测试环境构建 389

12.4.1  系统测试环境的要求 389

12.4.2  系统测试环境构建要素 390

12.4.3  系统测试环境确认 390

12.4.4  系统测试环境的管理与维护 391

12.5  系统测试实践 393

第13章  基于模型的软件需求验证 417

13.1  基于模型的软件测试 417

13.1.1  基于模型的软件测试概念 418

13.1.2  一致性测试 418

13.1.3  软件测试模型 418

13.2  基于模型的软件测试过程及支持工具 420

13.2.1  分析理解被测软件 420

13.2.2  选择合适的测试模型 420

13.2.3  构造测试模型 421

13.2.4  生成和执行测试用例 421

13.2.5  收集测试结果进行分析 421

13.2.6  支持工具 421

13.3  基于模型的软件测试的优缺点 422

13.3.1  基于模型的软件测试优点 422

13.3.2  基于模型的软件测试缺点 422

13.4  有限状态机及其测试理论 423

13.4.1  有限状态机 423

13.4.2  状态和迁移覆盖 423

13.4.3  状态迁移矩阵 424

13.5  基于模型的软件测试实践 424

13.5.1  基于模型的软件需求验证工具 424

13.5.2  被测样例系统模型化需求验证 426

第14章  软件测试数据、测试用例管理 441

14.1  软件测试数据的准备与生成 441

14.1.1  软件测试数据的定义 442

14.1.2  软件测试数据的准备与生成 443

14.1.3  软件测试数据的验证 444

14.2  软件测试用例管理 444

14.2.1  测试用例的基本要素 445

14.2.2  测试用例的管理 446

14.2.3  测试用例的评审 447

14.2.4  测试用例的修改/更新 447

14.3  软件测试管理实践 448

14.3.1  测试用例管理工具的使用 448

14.3.2  被测样例系统测试用例的管理 448

第15章  软件缺陷管理与跟踪 453

15.1  软件缺陷的定义与分类 453

15.1.1  软件缺陷的定义 453

15.1.2  软件缺陷的分类 454

15.2  软件缺陷管理 455

15.2.1  软件缺陷生命周期概述 455

15.2.2  软件缺陷管理流程 456

15.3  软件缺陷报告和软件缺陷度量 457

15.3.1  软件缺陷报告 457

15.3.2  软件缺陷度量 458

15.4  软件缺陷管理实践 461

第16章  软件测试文档的编写与管理 467

16.1  软件测试文档类型 467

16.1.1  测试计划 468

16.1.2  测试报告 469

16.2  软件测试文档编写要点 469

16.2.1  测试计划编写要点 469

16.2.2  测试报告编写要点 472

16.3  软件测试文档管理 474

16.3.1  测试文档管理的意义 474

16.3.2  如何管理测试文档 475

16.3.3  测试文档评审 475

16.4  软件测试文档编写实践 476

16.4.1  被测样例系统测试计划编写 476

16.4.2  被测样例系统测试报告编写 487