Coverity Report Finds OSS Bug Density Down Since 2006
eldavojohn writes "In 2008, static analysis company Coverity analyzed security issues in open source applications. Their recent study of 11.5 billion lines of open source code reveal that between 2006 and 2009 static analysis defect density is down in open source. The numbers say that open source defects have dropped from one in 3,333 lines of code to one in 4,000 lines of code. If you enter some basic information, you can get the complimentary report that has more analysis and puts three projects at the top tier in quality of the 280 open source projects: Samba, tor, OpenPAM, and Ruby. While Coverity has developed automated error checking for Linux, their static analysis seems to be indifferent toward open source."
"...puts three projects at the top tier in quality of the 280 open source projects: Samba, tor, OpenPAM, and Ruby."
Counting, apparently, was low in quality.
"... and puts three projects at the top tier in quality of the 280 open source projects: Samba, tor, OpenPAM, and Ruby."
Our chief weapon is surprise...surprise and fear...fear and surprise....
Our two weapons are fear and surprise... and ruthless efficiency....
Our three weapons are fear, surprise, and ruthless efficiency...
and an almost fanatical devotion to the Pope....
Our four... no...
Amongst our weapons... Amongst our weaponry...
are such elements as fear, surprise...
I'll come in again.
The question of course is "Is 4000 good, average or bad?" can't be answered because closed source companies just aren't going to publish this sort of information.
So what we can say is that the quality of OSS is trending upwards, but we can't say whether this makes it better, equivalent or worse than close source competitors.
What are the odds on any of them taking up the challenge?
An Eye for an Eye will make the whole world blind - Gandhi
Survivorship bias
http://en.wikipedia.org/wiki/Survivorship_bias
The projects that were alive back then, and now, are obviously more mature, thus would have fewer bugs. Unless you believe in spontaneous generation of bugs at a constant rate in unchanged code (in my experience, actually not too unbelievable for old C++ compiled by the newest G++ due to specification drift)
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
If they check 1 line of code every second it would take 133,101.85 years to check 11.5 billion lines of code. At 1000 lines of code every second you are looking at 133.10 years to check that much code. At 4000 lines of code every second (e.g. 4GHz) you are looking at 33.2 years to check that much code.
And if they were only using one system to do this, I'd imagine that would be a problem. I wonder, though, if you spread the processing across, oh, say, 512 processors, if you could get that time down under a month...
Isn't 4000 lines/code a second 4 kHz, not GHz, if we're using Hz to measure the frequency of line-processing?
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
At 4000 lines of code every second (e.g. 4GHz) you are looking at 33.2 years to check that much code.
GHz = 1 billion cycles per second. You're only about 6 orders of magnitude off.
A: We know they didn't check the code by hand.
Of course not, do you know what static code analysis is? I repeatedly said that in the summary.
B: The methodology didn't classify defects (cosmetic, seucrity, minor, major. etc.)
From the report, which is linked to in the article and you obviously didn't care to read before criticizing:
NULL Pointer Deference
Resource Leak
Unintentional Ignored Expressions
Use Before Test (NULL)
Use After Free
Buffer Overflow (statically allocated)
Unsafe Use of Returned NULL
Uninitialized Values Read
Unsafe Use of Returned Negative
Type and Allocation Size Mismatch
Buffer Overflow (dynamically allocated)
Use Before Test (negative)
They then go on to discuss Function Length and Complexity Metrics.
C: The numbers aren't normalized nor broken by application size.
I don't understand how this is statistically relevant. The summary I gave lists by static code defect per line of code and looks at function length. Of course a project with 4 million lines of code would have more defects than one of 4 thousand lines of the code. The lines of code is the normalization!
D: The use of a bug reporting database needs to be measured in regards to a baseline filing\fix % not a total volume (as we need to correlate new lines of code being added)
Does it make any difference to the end user whether 90% of the project is new lines of code or 9% of the project is new lines of code?
It reads like something from the Onion.
You didn't read the report so you can't really speak.
Dear Lord journalism is dead...
Says the poster who didn't read or understand the report.
My work here is dung.
If you fix the issues, Coverity moves the project to a new rung and performs stricter analysis to find more types of errors.
how to invest, a novice's guide