Defining dangerous developer "defect density"

bridgwatera | No Comments
| More


I'm on a personal mission this month to learn as much as I can about software defects, software integrity and code defects right down to the kernel level -- or least as close as I can get.

The issue at hand is that you'll typically find software code analysis firms talking at a high level about code defects, but they rarely sit back and lay down a succinct definition of what manifests a defect and how we measure it.

Put simply, defect density is:

Total Number of Known Defects
-------------------------------------
Total Size of Application Code

Or in other words, defect density is a ration of the ratio of number of defects in relation to the size of the software program -- and this is typically measured as a percentage used to express in lines of code (LOC) or function points (FP).

defect.png

Defect density can be used to analyse individual software components prior to roll out, or it can be applied between release cycles to gauge how well a code base is improving (or not!) over time.

Vocal companies in this field include Coverity and also Microsoft -- so on the MSDN resources the company features a white paper on this subject authored by Nachiappan Nagappan and Thomas Ball who say that, "Software systems evolve over time due to changes in requirements, optimisation of code, fixes for security and reliability bugs etc. Code churn, which measures the changes made to a component over a period of time, quantifies the extent of this change. We present a technique for early prediction of system defect density using a set of relative code churn measures that relate the amount of churn to other variables such as component size and the temporal extent of churn."

Leave a comment

Subscribe to blog feed

About this Entry

This page contains a single entry by Adrian Bridgwater published on February 22, 2011 10:41 AM.

Application migration for Windows 7 SP1 & Server 2008 R2 SP1 was the previous entry in this blog.

Adobe asks how do developers decide which platform to target? is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.