第四章 缺陷管理
u 什么是缺陷
u 缺陷查找技术
u 代码复查
u 缺陷预测
4.3代码复查
表4.4 C++代码复查指南和检查表
目的 | 指导你进行有效的代码复查 | # | # | # | # | 累计 | 累计% |
一般性说明 | 在完成每个复查步骤之后,将发现的某个类型的缺陷的个数记录在右边的栏目中。如果该步骤没有发现缺陷,就在右边的栏目中打个表示检查无误的叉号(×)。在开始复查下一个程序之前,要按照检查表完整对程序、类、对象或方法的检查。 |
|
|
|
|
|
|
完整性 | 验证设计的所有功能都已经编码。 |
|
|
|
|
|
|
Includes | 验证Include语句是完全的。 |
|
|
|
|
|
|
初始化 | 检查变量和参数的初始化: ¨ 在程序的开始; ¨ 在每个循环的开始; ¨ 在函数/过程的入口。 |
|
|
|
|
|
|
调用 | 检查函数调用的格式: ¨ 指针; ¨ 阐述; ¨ “&”的使用。 |
|
|
|
|
|
|
名字 | 检查名字的拼写和使用: ¨ 是否前后一致? ¨ 是否在说明的作用域之内? ¨ 结构和类中变量的引用是否使用了“.”。 |
|
|
|
|
|
|
字符串 | 检查所有的字符串: ¨ 使用指针来表示的; ¨ 是以Null结尾的。 |
|
|
|
|
|
|
指针 | 检查所有的指针: ¨ 是初始化为Null; ¨ 是有在New(新建)之后才Delete(删除); ¨ 在New并使用之后要删除。 |
|
|
|
|
|
|
输出格式 | 检查输出格式: ¨ 换行是否合适; ¨ 间隔是否合适。 |
|
|
|
|
|
|
{}对 | 保证检查{}是适当的并且是成对的。 |
|
|
|
|
|
|
逻辑操作符 | 验证==,=,|| 逻辑操作符的使用是合适的; 检查每个逻辑函数的()是合适的。 |
|
|
|
|
|
|
逐行检查 | 检查每一行代码: ¨ 指令的语法是否正确? ¨ 标点是否正确? ¨ 符号是否正确? |
|
|
|
|
|
|
标准 | 保证所有代码符合编码标准。 |
|
|
|
|
|
|
文件的打开与关闭 | 验证所有的文件: ¨ 是合适的声明的; ¨ 是合适的打开的; ¨ 是合适的关闭的。 |
|
|
|
|
|
|
全面检查 | 对整个程序进行全面的检查已发现系统问题和非期望的问题。 |
|
|
|
|
|
|
总计 |
|
|
|
|
|
|
|
定期更新检查表。随着时间的推移,检查表自然的要变大。但是,检查表的主要作用是帮助你把注意力集中在关键的方面。太大以后,你将失去重点。所以要定期复查缺陷数据,删除那些不能找到问题的表项。
从个人检查表的方法可以认识到,每个工程师都有各自的特点,某个工程师的实践经验对别人不一定适用。因而要设计出适合自己的检查表,并定期的对它进行检查以保证检查表更有效。只要你在代码复查中还遗漏缺陷,就要不断寻找改进检查表的方法。
进展是很缓慢的。最初,你发现缺陷的能力随着每次复查都有所提高。此后,提高将变得很困难。要坚持收集和分析缺陷数据,并坚持思考如何才能预防缺陷的产生或怎样更好的找到缺陷。只要坚持不断的做下去,就能在代码复查中不断进步,不断提高自己编写程序的质量。