微软研究所发布了一项检验软件工程神话的经验研究结果报告。由 Nachi Nagappan 主持的这项工作,衡量了通用的软件工程实践给软件质量带来的真正影响。分析显示:
- 测试中更高的代码覆盖率与上线之后需要补丁数的减少之间并不具有必然相关性,也有许多其他因素在发挥着作用。
- TDD 改善了质量,但时间更长:“研究小组发现:相对没有使用 TDD 的团队所产出的代码,使用 TDD 的团队所产出的代码在缺陷分布密度上要低百分之六十到九十。他们同时发现采用 TDD 的团队要多花费百分之十五到三十五的时间才能完结项目。”
- 使用断言和代码验证能减少 bug 数。而且,“在代码里面能有效使用断言的软件工程师,往往是受过良好训练和经验丰富的,这对最终结果是一个利好因素。”
- 组织结构对质量有更深远的影响:“组织的衡量指标,如果跟代码不相干,我们预测软件会有 85% 的失败倾向。”
- 分布式团队开发对软件质量的影响实在是微不足道。
微软开发团队正在使用这些研究成果,其中包括帮助像 Windows Vista SP2 这样的项目进行风险分析和 bug 分类。
评论