Study Shows Open-source Code Quality Improving
The overall number of defects in open-source projects is dropping, a new study by vendor Coverity has found.
Coverity, maker of tools for analyzing programming code, received a contract in 2006 from the U.S. Department of Homeland Security to help boost the quality of open-source software, which is increasingly being used by government agencies.
The vendor has set up a Web site through which open-source projects and developers can submit code to be analyzed. The vendor assigns projects to a series of "rungs" depending on how many defects they resolve.
"Defect density" has dropped 16 percent during the past three years among the projects scanned through the site and some 11,200 defects have been eliminated, according to Coverity's latest report.
Four projects have been granted top-level "Rung 3" status, after resolving defects discovered during Rung 1 and 2, Coverity said. They are Samba, tor, OpenPAM and Ruby.
The Scan site has so far analyzed more than 60 million unique lines of code from 280 projects, according to Coverity. More than 180 projects have developers actively working to scan open-source projects.
Coverity's scanning service employs static analysis, which is used to check code for security or performance problems without having to run an application itself. This is preferable because "testing every path in a complex program as it runs requires constructing a large number of special test cases or structuring the code in special ways," Coverity said.
"Static analysis [tools] won't tell you that your business process is working correctly ... but they will tell you that the code itself is technically solid, and follows the kind of programming best practices you'd expect to see from code that has gone through a proper code review," said Forrester Research analyst Jeffrey Hammond via e-mail.
The tools tend to be most helpful for finding "structural 'anti-patterns' in code, poor programming practices that can result in performance and security issues like memory leaks and buffer overflows as well as more exotic conditions like errors due to parallel execution of code in a multicore CPU environment," he added.