My employer publishes a lot of reports on the state of the world as experienced by our customers. One of those are the World Quality Report. Today I had a really interesting and rewarding lunch with one of the experts behind the report!
Rahman et al. have used a fixcache/bugcache approach to predicting which files should be singled out for code inspection. I have written about using a similair approach for regression test selection (here and here). Their main conclusion is:
When used for inspection, FixCache gets most of its
power by predicting that les that recently experienced
a bug x, do in fact contain additional, latent bugs.
So basically, what they have found is that bugs tend to occur grouped in the same file. I guess there is some profound truth here. But is this just some kind of random statistical property of software artefacts or does it tell us something fundamental about software development?
When you review documents, test applications etc it is very easy to get stuck on shallow problems and give comments which are not really helpful for the developers. Using checklists can be one way to force yourself to look beyond the most obvious things. I recently found two good checklists/protocols.