Detecting missing method calls as violations of the majority rule

@article{Martin2013DetectingMM,
  title={Detecting missing method calls as violations of the majority rule},
  author={Monperrus Martin and Mira Mezini},
  journal={ArXiv},
  year={2013},
  volume={abs/1306.0762}
}
When using object-oriented frameworks it is easy to overlook certain important method calls that are required at particular places in code. In this article, 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… 
Bugram: Bug detection with n-gram language models
TLDR
This paper proposes a new approach - Bugram - that leverages n-gram language models instead of rules to detect bugs, and suggests that Bugram is complementary to existing rule-based bug detection approaches.
On the Impact of Order Information in API Usage Patterns
TLDR
This paper presents a meta-modelling framework that automates the very labor-intensive and therefore time-heavy and therefore expensive process of manually cataloging and cataloging API usage patterns from code repositories.
Inferring API Correct Usage Rules: A Tree-based Approach
TLDR
A tool based on the idea for inferring API correct usages rules hierarchically by leveraging an API tree structure is developed, developed and applied to the source code of Linux kernel v4.3 drivers and found 24 previously reported bugs.
Investigating Next Steps in Static API-Misuse Detection
TLDR
MUDetect is designed, an API-misuse detector that builds on the strengths of existing detectors and tries to mitigate their weaknesses, and uses a new graph representation of API usages that captures different types of API misuses and a systematically designed ranking strategy that effectively improves precision.
API Misuse Correction: A Statistical Approach
TLDR
SAM is a novel approach to detect and repair API misuses automatically, using statistical models to describe five factors involving in any API method call: related method calls, exceptions, pre-cond conditions, post-conditions, and values of arguments.
API-Misuse Detection Driven by Fine-Grained API-Constraint Knowledge Graph
TLDR
A pilot user study with 12 developers shows that the knowledge-driven API misuse detection is very promising in helping developers avoidAPI misuses and debug the bugs caused by API misuses.
A Case Study of Dynamic Analysis to Locate Unexpected Side Effects Inside of Frameworks
TLDR
A case study to find a wrong API call using a dynamic analysis technique to find unexpected side effects inside of frameworks using the authors' technique is introduced.
Assisting Example-based API Misuse Detection via Complementary Artificial Examples
Application Programming Interfaces (APIs) allow their users to reuse existing software functionality without implementing it by themselves. However, using external functionality can come at a cost.
A Systematic Approach to Benchmark and Improve Automated Static Detection of Java-API Misuses
TLDR
A systematic analysis of the problem of API misuse is presented and it is found that API misuse causes 9.1% of all software bugs in real-world projects, including many critical issues, such as program crashes, data loss, and security vulnerabilities.
A Systematic Evaluation of API-Misuse Detectors
TLDR
A systematic root-cause analysis reveals that, most importantly, detectors need to go beyond the naive assumption that a deviation from the most-frequent usage corresponds to a misuse and need to obtain additional usage examples to train their models, and several other novel insights that enable more powerful API-misuse detectors are provided.
...
1
2
3
4
...

References

SHOWING 1-10 OF 42 REFERENCES
Detecting Missing Method Calls in Object-Oriented Software
TLDR
A new system is proposed, which automatically detects missing method calls during both software development and quality assurance phases and has a low false positive rate (<5%) and is able to findMissing method calls in the source code of the Eclipse IDE.
Detecting object usage anomalies
TLDR
The JADET prototype has detected yet undiscovered defects and code smells in five popular open-source programs, including two new defects in AspectJ.
DynaMine: finding common error patterns by mining software revision histories
TLDR
The combination of revision history mining and dynamic analysis techniques leveraged in DynaMine proves effective for both discovering new application-specific patterns and for finding errors when applied to very large applications with many man-years of development and debugging effort behind them.
Detecting missing method calls as violations of the majority rule
TLDR
In this article, a comprehensive set of empirical studies are provided that show the importance of knowing when to call certain method calls at particular places in code.
Finding and preventing run-time error handling mistakes
TLDR
A dataflow analysis for finding a certain class of error-handling mistakes: those that arise from a failure to release resources or to clean up properly along all paths, and a programming language feature that keeps track of obligations at run time and ensures that they are discharged.
Tracking down software bugs using automatic anomaly detection
TLDR
DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes, is introduced and suggests that detecting and checking program invariants dynamically is a simple and effective methodology for debugging many different kinds of program errors across a wide variety of application domains.
Finding what's not there: a new approach to revealing neglected conditions in software
TLDR
A novel approach to revealing neglected conditions that integrates static program analysis and advanced data mining techniques to discover implicit conditional rules in a code base and to discover rule violations that indicate neglected conditions is presented.
Recurring bug fixes in object-oriented programs
TLDR
Based on graph-based representation of object usages, this work has developed several techniques to identify code peers, recognize recurring bug fixes, and recommend changes for code units from the bug fixes of their peers.
Lightweight Defect Localization for Java
TLDR
Comparing object-specific sequences predicts defects better than simply comparing coverage of passing and failing program runs; this technique pinpointed the defective class in 39% of all test runs.
Automatic mining of source code repositories to improve bug finding techniques
TLDR
A static source code checker is implemented that searches for a commonly fixed bug and uses information automatically mined from the source code repository to refine its results, identifying 178 warnings that are likely bugs in the Apache Web server source code and 546 warnings in Wine.
...
1
2
3
4
5
...