代码评审可以有效地发现代码中的可读性问题、逻辑问题,是代码动态测试的有益补充。
可是,很多组织,即使是已经实施GJB5000A的软件过程体系组织,仍然把软件质量寄托于测试,忽略代码评审的作用,根本不组织代码评审,或者组织不了有效的代码评审。
这些组织中代码评审的常见问题包括:
被评审的代码可读性差,导致代码评审效率低下。
代码评审发现都是一些轻微缺陷,有价值的不多。
代码评审绩效差,形式上评审了很多代码,却没有发现什么问题。
没有时间做代码评审。
代码评审发现的问题不能被编码人员认可。
那么,怎样才能组织起有效的评审呢?这里提供几个最佳实践仅供参考:
最佳实践1:先做个人评审,再进行专家评审。
在组织正式的代码评审之前,先由QA或指定其他专人审查代码的规范性和可读性,去除那些低层次的错误,以提高正式代码评审的绩效。
最佳实践2:坚持使用代码评审检查单,不断细化补充检查单。
评审检查单是专家经验的总结。一个好的评审检查单可以帮助评审人员更好地发现问题。代码评审要坚持使用评审检查单,并且要对检查单不断优化和改进。
最佳实践3:即使不能对所有代码做检查,也要对部分核心代码检查。
代码评审确实费时费力,对于一个几千行规模的软件,要对全部代码做评审,所需的代价也是很高的。但是,我们不能因为代码评审的代价很高就将其舍弃不做,因为一旦不做代码评审,仅依赖于动态测试来保证软件质量,很可能会出现一些遗漏的缺陷让你付出高昂的修复成本。一个合理的决策可能是要把代码评审和动态测试结合起来,把代码评审作为动态测试的补充,让代码评审至少要覆盖软件的关键功能和常用功能。
最佳实践4:轻量级代码走查更高效,每次检查少于200~400行代码,每次代码检查不超过90分钟。
代码评审最好要分批多次地进行。评审方式也要更加灵活,不必非得组织正式的评审会。代码评审要追求高效。
最佳实践5:建立量化目标,并获得相关指标数据,从而不断改进流程
组织应对代码评审建立性能基线,以此来衡量每次代码评审的绩效。对于不符合性能基线的代码评审,要分析其原因,以不断改进。
最佳实践6:优先使用静态检查工具。
代码评审中部分编码规范符合性的检查可以利用静态检查工具来完成,不能全部依靠人脑。
最佳实践7:建立代码评审的文化。
在组织当中营造代码评审的文化,鼓励经常性地代码评审,鼓励贡献代码评审的经验,鼓励代码评审的改进。
这正是:
代码评审活动好,组织得当才有效
最佳实践送给你,期望人人能高效
参考书目:术以载道:软件过程改进实践指南,作者:任甲林,出版社:人民邮电出版社
联系客服