ITPub博客

首页 > 应用开发 > IT综合 > Crap4J力求通过算法判定代码质量http://www.crap4j.org/

Crap4J力求通过算法判定代码质量http://www.crap4j.org/

原创 IT综合 作者:nmtcolin 时间:2008-01-22 15:55:31 0 删除 编辑

Crap4J力求通过算法判定代码质量

Crap4J这个新项目的目标非常清晰:

现在没有一种特别简单的,100%准确并且客观的方法来判定一段代码是否糟透了。不过研究和经验都能证明我们的直觉:那些由其他人写的过于复杂和曲折的代码往往就是那些让人说出“这简直是垃圾”的代码。如果看这段代码的人将来还要负责维护这段代码,那么他的反应往往就会变成“有没有搞错!”

但光是抱怨还不够,我们需要更精确的测量。Crap4j根据复杂性和测试覆盖率得出了一个数值指标。

给定任意Java方法m,m的CRAP值如下式计算:

CRAP(m) = comp(m)^2 * (1 - cov(m)/100)^3 + comp(m)

其中 comp(m)是方法m的圈复杂性(cyclomatic complexity),cov(m)自动测试(如JUnit测试,非人工QA)达到的测试覆盖率。圈复杂性(cyclomatic complexity)是一个广泛使用的著名指标,它的取值等于方法中唯一决策(unique decisions)的数量加1。测试覆盖率计算我们采用的是基本路径覆盖(basis path coverage)。

跟任何指标一样,指标的数值必须小心使用,不可盲从;不过这个指标的确可以作为改善代码的出发点,它提供了一种手段去明确定位最需要改进的代码。

较低的CRAP值表示代码不太复杂和/或代码受到了自动化、可重复的测试的周全保护,因此修改和维护代码的风险较小。较高的CRAP值表示修改的风险较大,因为受到高度复杂性或者低自动化测试覆盖率(甚至没有自动化测试)的双重威胁。

Crap4j可从 www.junitfactory.com/crap4j/update/下载,它是一个Eclipse插件。要获得更详细的信息,可以阅读JUnitFactory提供的介绍。

查看英文原文:Crap4J Seeks to Use Algorithms to Determine Code Quality

http://www.artima.com/weblogs/viewpost.jsp?thread=215899

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4082/viewspace-998189/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
radarlab 金融其实很简单!

注册时间:2009-02-10

  • 博文量
    31
  • 访问量
    604936