为了改善我们的静态代码分析的方法论,以及改进我们的静态分析工具PVS-Studio,我们会定期地用他们验证各种各样的开源项目。我们找到了很多bug,事实证明,再牛的人也会拼写错误 / 注意力不集中,没有人能保证不犯错。即便是在Microsoft Code Contracts, Qt, Linux kernel, CryEngine, VirtualBox, LibreOffice, Firefox, Boost, Tor这些项目里,依旧如此。目前我们检测了262个项目,都是官方发布版!我们一共记录了10000个bug!
作为一个惯例,如果我们在一个项目中找到比较多的bug,我们就会写一篇文章描述这些bug。你可以在这个链接看到我们写的文章:http://www.viva64.com/en/inspections/ 。如果bug很少,我们就直接跟项目的贡献者说,让他们来处理。
当然,262个项目中找到10000个bug其实并不多,平均每个项目只有38个。但是值得注意的是,这些项目的质量差别也很大,有的项目只发现一个bug,而另外一些则包含上百个bug。
另外需要注意的是,我们的主要目的是提升自己的方法论和工具,并不是要找出尽量多的bug。我们需要找出很多有趣的例子来写文章,所以实际的bug数量应该是多于这个数目的。所以我总是奉劝为项目贡献代码的人好好测试一下自己的代码,避免提交太多的bug。在分析的时候,找到那些不可重现的bug更能够体现查错工具的优越性,但是对实际项目却没什么用,因为不可重现往往意味着无法修正。静态分析工具很重要的功能就是能够定期运行,这样它就能够在程序员编写的过程中纠错,而不是已经调试了50个小时之后才发现错误,或者等用户开始抱怨了才发现错误。
好,是时候给大家看看我们发现的10000个bug了,通过下面链接查看:
http://www.viva64.com/en/examples/
这些bug可以帮助大家完善自己团队的编码标准,给编程技巧文章提供材料,辅助提高软件可靠性的研究,等等。
文章转载自 开源中国社区[http://www.oschina.net]