第1章 程序设计缺陷静态分析 1
1.1软件测试分类 1
1.2静态分析方法 2
1.2.1文档审查 3
1.2.2代码审查 3
1.2.3技术评审 6
1.2.4代码走查 6
1.2.5评审类型比较 9
1.2.6静态分析的优点 10
第2章C/C++语言程序设计缺陷分析 11
2.1编码风格 11
2.1.1符号误用问题 11
2.1.2变量初始化问题 20
2.1.3函数返回值问题 34
2.1.4其他 38
2.2内存管理 53
2.3内存泄漏 65
2.4缓冲区溢出 81
2.5指针问题 104
2.5.1空指针解引用 104
2.5.2其他 112
26安全缺陷 119
2.7C++中和类有关的编程错误 143
2.8其他 152
第3章Java语言程序设计缺陷分析 172
3.1编码风格 172
3.2安全缺陷 188
第4章 软件质量静态度量 195
4.1有关概念 195
4.2软件质量模型 196
4.2.1McCall模型 197
4.2.2 Boehm模型 197
4.2.3 IS09126模型 198
4.2.4 ISO/IEC 25010质量模型 199
4.2.5关系模型 200
4.3软件质量静态度量方法 200
4.3.1软件质量静态度量简介 200
4.3.2源代码行(LOC)度量 202
4.3.3 Halstead软件科学度量 202
4.3.4 McCabe度量 204
4.3.5 Henry&Kafura方法 208
4.3.6 LCSAJ密度 209
4.3.7 C&K度量 211
4.3.8 MOOD度量 214
4.3.9其他软件质量度量 218
第5章 常用静态分析工具与使用实践 221
5.1 PolySpace——运行时错误静态检查工具 221
5.1.1 PolySpace Verifier 222
5.1.2 PolySpace Viewer 225
5.2 Klocwork—代码静态检查工具 228
5.2.1工程创建与分析 228
5.2.2分析结果查看 232
5.3 Testbed——静态和动态测试工具 237
5.3.1单个文件分析 238
5.3.2分析结果查看 242
5.3.3多个文件批量分析 52
5.4 McCabe IQ2——软件质量保证工具 254
5.4.1 McCabe EQ 254
5.4.2 McCabe Test 263
5.4.3 McCabe Reengineer 263
附录A软件需求规格说明审查单 265
附录B用户手册审查单 266
参考文献 267