如何进行有效的代码检查
2010-06-30 11:41
302 查看
如何进行有效的代码检查
代码检查包括代码的自查和互查,目的是保证在送测之前,消除一些低级的错误,提高代码的送测质量。
代码检查是很重要的一个环节,但是如何才能有效地检查代码,业界没有一个统一的认识。SmartBear SoftWare根据他们的调查和研究,给我们提供了11条代码互查的准则(英文原文下载),7条面向项目开发者,4条面向项目管理者,如下是我根据原文的理解,总结的面向开发者的7条准则,如有理解错误,欢迎大家指正。
1, 每次检查的代码应该少于200~400行
Cisco的代码检查研究显示:每次检查的代码应该少于200~400行,超过400行,检查错误的能力就会下降。
如下图所示,当代码检查行数超过400行时,几乎很少能检查出bug。
代码密度是指每千行检查出的bug数。
2, 代码检查的速度应该小于300-500行/小时
代码检查的速度太快和太慢都不好,如果没有占用足够的时间去检查,就不可能找到多的错误,如果检查的代码很多的话,就不可能去关注每一行改动。
研究显示,每小时检查300-500行代码,效果是最好的。
如上图,大家会发现,当我们每小时检查的代码超过1000行时,我们基本上是发现不了任何bug的。
3, 每次代码检查不要超过60-90分钟
上面我们讨论了代码检查的量和速度,同时,我们代码检查的持续时间也不能太长。代码检查持续的时间超过一个小时,检查者的会精疲力尽(审美疲劳更通俗一些),所以检查的效果也会大打折扣。证据显示,代码检查超过60-90分钟,效率会明显下降。另一方面,检查的时间也不能太短,至少也要超过5分钟,尽管检查的代码只有一行,有时候影响面也是非常大的,值得花5分钟去考虑清楚。
4, 开始代码检查时,被检查者应该事先检查代码修改的内容
让被检查者首先进行代码的修改点的自我检查,目的是在代码互查之前代码的作者重新检查和思考自己的代码,避免一些低级的错误出现。此外,先进行自我的检查也会加快代码互查的进度。
5, 要明确代码检查的目标和判断有效性的标准
在项目中,要事先确定检查的目标和判断有效性的标准。一旦确定目标,我们就可以判断是否达到了期望的结果。制定的目标要明确,不能太模糊,例如“修正尽可能多的bug”,这个目标根本无法判断是否完成。
在项目进行过程中,根据实际情况 和代码互查的执行情况,去及时调整和改进目标,使得代码检查的目标更好地完成。
6, 制定代码互查的checklists
checklists中记录容易犯的错误点,是在代码检查过程中需要检查的点。checklists可以让让你在检查过程中,保证经常犯错误的点都被检查。
在项目刚开始,尽可能多的列出经常出错的点,随着检查的进行,你会发现这些错误点都已经被深刻的理解,并且出错的几率也会下降。
7, 确认错误被修复
经过代码检查后,检查出的错误当然是需要修复的。但是许多的代码检查并不会追踪检查出的错误是否正确地被修复了。所以,应该把确认检查出的错误点被正确地修复也作为代码检查的一部分。
代码检查包括代码的自查和互查,目的是保证在送测之前,消除一些低级的错误,提高代码的送测质量。
代码检查是很重要的一个环节,但是如何才能有效地检查代码,业界没有一个统一的认识。SmartBear SoftWare根据他们的调查和研究,给我们提供了11条代码互查的准则(英文原文下载),7条面向项目开发者,4条面向项目管理者,如下是我根据原文的理解,总结的面向开发者的7条准则,如有理解错误,欢迎大家指正。
1, 每次检查的代码应该少于200~400行
Cisco的代码检查研究显示:每次检查的代码应该少于200~400行,超过400行,检查错误的能力就会下降。
如下图所示,当代码检查行数超过400行时,几乎很少能检查出bug。
代码密度是指每千行检查出的bug数。
2, 代码检查的速度应该小于300-500行/小时
代码检查的速度太快和太慢都不好,如果没有占用足够的时间去检查,就不可能找到多的错误,如果检查的代码很多的话,就不可能去关注每一行改动。
研究显示,每小时检查300-500行代码,效果是最好的。
如上图,大家会发现,当我们每小时检查的代码超过1000行时,我们基本上是发现不了任何bug的。
3, 每次代码检查不要超过60-90分钟
上面我们讨论了代码检查的量和速度,同时,我们代码检查的持续时间也不能太长。代码检查持续的时间超过一个小时,检查者的会精疲力尽(审美疲劳更通俗一些),所以检查的效果也会大打折扣。证据显示,代码检查超过60-90分钟,效率会明显下降。另一方面,检查的时间也不能太短,至少也要超过5分钟,尽管检查的代码只有一行,有时候影响面也是非常大的,值得花5分钟去考虑清楚。
4, 开始代码检查时,被检查者应该事先检查代码修改的内容
让被检查者首先进行代码的修改点的自我检查,目的是在代码互查之前代码的作者重新检查和思考自己的代码,避免一些低级的错误出现。此外,先进行自我的检查也会加快代码互查的进度。
5, 要明确代码检查的目标和判断有效性的标准
在项目中,要事先确定检查的目标和判断有效性的标准。一旦确定目标,我们就可以判断是否达到了期望的结果。制定的目标要明确,不能太模糊,例如“修正尽可能多的bug”,这个目标根本无法判断是否完成。
在项目进行过程中,根据实际情况 和代码互查的执行情况,去及时调整和改进目标,使得代码检查的目标更好地完成。
6, 制定代码互查的checklists
checklists中记录容易犯的错误点,是在代码检查过程中需要检查的点。checklists可以让让你在检查过程中,保证经常犯错误的点都被检查。
在项目刚开始,尽可能多的列出经常出错的点,随着检查的进行,你会发现这些错误点都已经被深刻的理解,并且出错的几率也会下降。
7, 确认错误被修复
经过代码检查后,检查出的错误当然是需要修复的。但是许多的代码检查并不会追踪检查出的错误是否正确地被修复了。所以,应该把确认检查出的错误点被正确地修复也作为代码检查的一部分。
相关文章推荐
- 如何进行有效的代码检查
- 如何进行有效的代码检查
- 你的团队会对所有代码进行代码评审吗?具体如何实施?如何评价代码评审的作用?
- Android Studio使用Lint进行代码检查
- 如何使用代码的方式进行Autoresizing布局
- 管理人员如何有效应用表扬与批评进行反馈
- 如何使用火狐Firefox的Zend Firefox Toolbar插件和Zend Studio进行代码调试
- 如何有效的进行项目文档管理
- 项目经理如何有效地进行项目沟通?
- 项目管理理论与实践(3)——如何进行有效的项目管理
- 如何在Keil中添加AStyle对代码进行格式化处理
- 如何做有效的代码审查?有这些建议
- maven工程的如何进行代码调试
- 使用JAVA如何对图片进行格式检查以及安全检查处理
- 项目管理理论与实践(3)——如何进行有效的项目管理
- 使用Xcode Analyze进行代码静态检查
- 如何用Qt和Java代码进行混合编程(在Qt for Anroid环境下)
- 如何有效地进行项目管理
- 如何在CSDN博客中的所贴的代码进行【代码块】显示
- 在自然语言处理中(NLP),如何对特征进行有效的降维?