How Often Do Unintended Inconsistencies Happen? Deriving Modification Patterns and Detecting Overlooked Code Fragments

What an intriguing title! Let’s go.

Yoshiki Higo argus that it often happens that when a method changes, it often happens that some invocations are forgotten. We can use grep of clone detection tools, but both have limitations.

Yoshiki proposes to mine the history of a system, to derive ‘modification patterns’: pieces of code that are often modified together.

The authors performed an exeriment on HTTPD and FreeBSD They identifies 18 candidates from HTTPD and 94 from BSD. In total, they found 15 bug fixes and 55 refactorings and unfortunately 27  false positives.

This blog post is so short, because the idea is simple and the explanation was very clear. So: read this paper!