刘洪鹏 发表于 2007-11-26 17:11:15

如何丈量软件的质量

主要通过对代码,测试代码进行自动的分析,获得一系列相应的数据指标来说明软件的质量。主要做两个分析:

1.静态分析Static Metrics Analysis

      静态分析通过分析代码后获得的基本数据:

1)文件总数

2)代码总行数

3)对象类的总数

4)方法的总数

5)平均每个方法的代码行数

6)注释的行数

7)每个方法中可执行语句的行数

8)每个方法中符值语句的行数

9)条件语句的行数

      每个项目可以根据不同的需要定出需要符合的指标。例如美国国土安全局的软件项目规定每个方法的行数不可以超过62行,可执行语句不超过50行,而符值语句不可以超过12行。

      在此基础上,还可以加入重复代码分析( 防止开发人员简单的拷贝重复代码,重复代码会使软件的可扩展性大大降低),逻辑分析路径分析等智能分析功能,进一步检测软件的质量。

2.覆盖分析 (Coverage Analysis)

      静态分析的指标能反映质量的一个侧面,而覆盖分析则能展现软件的性能,可维护性,可测试性,也是软件质量最直观的体现。覆盖分析主要是运行各种单元测试,集成测试,并记录测试所覆盖的代码的信息。

      覆盖分析采集的基本数据:

1)代码行覆盖率。即多少代码行确实被测试所运行和测试。

2)方法覆盖率。即多少方法确实被测试所运行和测试。

3)条件语句覆盖率。即多少条件语句的分支是否被覆盖。

      同样的每个项目可以根据需要定出项目合格的标准。例如军方项目的条件语句/方法覆盖率必须是100%的。

      在此基础上,还可以添加更加智能/复杂的逻辑路径覆盖分析。

      通过上面两个方面的分析产生的数据综合反映软件的质量。有了这些数据我们就可以丈量软件的质量。而且我们可以随时知道软件开发的质量并做出调整,而不是等到交付的时候才发现问题(管理学中的风险提前)。
页: [1]
查看完整版本: 如何丈量软件的质量