Detecting Missing Method Calls as Violations of the Majority Rule
This addresses a specific issue for software developers using object-oriented frameworks, but it is incremental as it builds on existing bug analysis and code similarity techniques.
The paper tackled the problem of detecting missing method calls in object-oriented code by proposing a system that uses the majority rule from voting theory, where a call is flagged as missing if most similar code snippets include it; evaluation showed the system could identify missing calls and other code smells.
When using object-oriented frameworks it is easy to overlook certain important method calls that are required at particular places in code. In this paper, we provide a comprehensive set of empirical facts on this problem, starting from traces of missing method calls in a bug repository. We propose a new system that searches for missing method calls in software based on the other method calls that are observable. Our key insight is that the voting theory concept of majority rule holds for method calls: a call is likely to be missing if there is a majority of similar pieces of code where this call is present. The evaluation shows that the system predictions go further missing method calls and often reveal different kinds of code smells (e.g. violations of API best practices).