某公司拟在公司推广代码走查技术,请外部咨询顾问进行一下实战指导,于是请项目组挑选了一个类,执行了代码走查的演练。2012年7月11日下午14:05分至15:15分,对110行有效代码(不含空行、注释、调试语句)进行了走查,该代码是Andriod平台下的JAVA代码,参与的评审专家包括:
作者:工作经验1年;
项目经理:工作经验6年,熟悉C语言的开发;
项目组成员:工作经验3年,熟悉JAVA语言开发;
外部咨询顾问:工作经验19年,曾经熟悉C、C++、PB、DELPHI、C#、JAVA等多种开发语言,但是最近几年缺少实际编码经验;
并有4名QA人员参与了整个过程的观摩。
在评审之前,项目经理与外部咨询顾问均没有阅读过此代码,项目组成员曾经阅读过代码。评审的开始,作者先介绍本段代码的功能,然后以处理功能的时序为顺序介绍了在该类中的每个方法,边讲解代码与会专家边查找代码中的缺陷。
本次代码评审累计发现13处改进项,包括程序错误3处,13处改进项汇总如下:
1无用的变量两个。定义了2个变量,赋了值,但是后续没有引用。
2有两处在if语句中只编写了一种yes或no的处理逻辑,遗漏了另外一个分支的处理逻辑,比如应该有提示信息等。
3有两处执行了new语句后,没有异常处理,如果new失败,没有判断和处理。
4有一处有无用的语句。
5有两处注释与代码不一致,注释有错误。
6在程序中多处出现常数值,没有使用宏替换或变量替换之。
7在计算图标在屏幕上的坐标值有多处数值错误。
8有一处程序逻辑不够灵活,不能适应未来的变化,而且很容易出错。
9有一处方法的命名不合理,不能准确表达方法的功能。
本次代码评审的度量数据分析如下:
评审速度:94.3行代码/小时
评审效率:2.8个缺陷/人时
缺陷密度:118.2个缺陷/KLOC
评审结束后请作者本身保留评审前的版本,根据评审意见进行重构代码后,整理为典型案例,在公司内进行宣讲。