  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).

Software Engineering