登上 Rings
许多事物都有环:手机有极其烦人的铃声,珠宝商有极其昂贵的戒指,而地狱——至少根据但丁的说法——有极其详细的环。过去三年里,由于一家名为 Coverity 的政府承包商,开源也发出了响声。
2006 年,在国土安全部开始质疑联邦政府使用的开源产品的质量后,Coverity 开始与联邦政府签订合同。该公司构建代码分析工具,旨在查找编程过程中的漏洞和其他问题,由于政府的好奇心,这些工具在过去三年中一直用于开源。
该公司的系统不同于更传统的查找、报告和修复方法,在这种方法中,开发人员和运行应用程序的用户会识别出现的问题区域,并根据需要进行更正。 Coverity 使用静态分析,它在不运行软件的情况下执行审查。Forrester Research 的 Jeffrey Hammond 向 IDG News 指出,该方法无法识别某些类型的问题:“静态分析[工具]不会告诉你你的业务流程是否正常运行......但它们会告诉你代码本身在技术上是可靠的。”
根据 Hammond 的说法,静态分析主要关注糟糕的编程——“代码中的结构性‘反模式’”——识别“更奇特的”问题,包括并行代码执行,以及更常见的问题,如缓冲区溢出和内存泄漏。该过程识别代码是否“遵循你在经过适当的代码审查的代码中期望看到的编程最佳实践”。
分析过程依赖于自愿提交代码以进行审查,它使用环系统来对项目在纠正分析过程中发现的问题方面取得的进展进行分类。 Coverity 已将四个项目——OpenPAM、Ruby、Samba 和 tor——分配到环 3,这是消除错误的最后一步。
Coverity 报告称,已有 280 个项目提交代码进行审查,代表超过 6000 万行代码。 超过 11,200 个错误已被消除,约 180 个项目的编码人员正在努力扫描提交的代码。 该计划大大降低了 Coverity 所谓的“缺陷密度”,三年内下降了 16%。