|
主要通过对代码,测试代码进行自动的分析,获得一系列相应的数据指标来说明软件的质量。主要做两个分析:
1. 静态分析Static Metrics Analysis
静态分析通过分析代码后获得的基本数据:
1) 文件总数
2) 代码总行数
3) 对象类的总数
4) 方法的总数
5) 平均每个方法的代码行数
6) 注释的行数
7) 每个方法中可执行语句的行数
8) 每个方法中符值语句的行数
9) 条件语句的行数
每个项目可以根据不同的需要定出需要符合的指标。例如美国国土安全局的软件项目规定每个方法的行数不可以超过62行,可执行语句不超过50行,而符值语句不可以超过12行。
在此基础上,还可以加入重复代码分析( 防止开发人员简单的拷贝重复代码,重复代码会使软件的可扩展性大大降低),逻辑分析路径分析等智能分析功能,进一步检测软件的质量。
2. 覆盖分析 (Coverage Analysis)
静态分析的指标能反映质量的一个侧面,而覆盖分析则能展现软件的性能,可维护性,可测试性,也是软件质量最直观的体现。覆盖分析主要是运行各种单元测试,集成测试,并记录测试所覆盖的代码的信息。
覆盖分析采集的基本数据:
1) 代码行覆盖率。即多少代码行确实被测试所运行和测试。
2) 方法覆盖率。即多少方法确实被测试所运行和测试。
3) 条件语句覆盖率。即多少条件语句的分支是否被覆盖。
同样的每个项目可以根据需要定出项目合格的标准。例如军方项目的条件语句/方法覆盖率必须是100%的。
在此基础上,还可以添加更加智能/复杂的逻辑路径覆盖分析。
通过上面两个方面的分析产生的数据综合反映软件的质量。有了这些数据我们就可以丈量软件的质量。而且我们可以随时知道软件开发的质量并做出调整,而不是等到交付的时候才发现问题(管理学中的风险提前)。 |
|