Tracking down software bugs using automatic anomaly detection
By Sudheendra Hangal, Monica S. Lam. Proceedings of the 24th International Conference on Software Engineering. ICSE 2002, 2002
723 citations recorded by the source corpus.
Subfields: Computer Networks and Communications, Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/967d7851686eff583311a3a3c69fe14064dfc049
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
In Information Systems
- Zhendong Su
- Xifeng Yan
- Jiawei Han
- Charles Sutton
- Koushik Sen
- Michael Pradel
- Chao Liu
- Swarat Chaudhuri
In Software
- Zhendong Su
- Koushik Sen
- Michael Pradel
- Sriram K. Rajamani
- Thomas Ball
- Swarat Chaudhuri
- Mayur Naik
- Michael D. Ernst
Citations in the corpus
- Statistical Debugging: A Hypothesis Testing-Based Approach (2006, methodology): “Within dynamic analyses, techniques based on predicate evaluations have been shown to be promising for fault localization [13], [14], [7], [12].”
- Automatic generation of software behavioral models (2008, methodology): “Dynamic models of software behavior are used to dynamically detect anomalous behaviors [30] [12], statically and dynamically check compatibility between software components [19] [18], verify protocols [2], generate test cases [13] [17], capture unexpected event sequences [34] and verify program…”
- The road ahead for Mining Software Repositories (2008, background): “Several types of rules could be mined from the source code: Coverity and PR-Miner [41] mine function-pairing rules; Daikon [17] and DIDUCE [23] mine variable-value invariants by analyzing execution traces; MUVI mines variable-pairing rules [44]; and AutoISES mines function and variable access rules ”
- Carat: collaborative energy diagnosis for mobile devices (2013, methodology): “Such methods have been used to identify code paths correlated with failure [16, 17], concurrency bugs [14], shared influence (surprising behavior that is correlated in time) [26, 28], invariant violation [13], and configuration errors [41].”
- Perracotta: mining temporal API rules from imperfect traces (2006, background): “Dynamic specification inference has shown promising results in many areas, including bug detection [25, 36, 37, 39], test case selection [24, 26, 50], and program steering [ 35].”
- Bugram: Bug detection with n-gram language models (2016, background): “Software bug detection techniques have been shown to improve software reliability by finding previously unknown bugs in mature software projects [13, 16].”
- Finding latent code errors via machine learning over program executions (2004, background): “Hangal and Lam [10] use dynamic invariant detection to find program errors.”
- Isolating cause-effect chains from computer programs (2002, background): “Dynamic invariants[16] can be used to detect anomalous program behavior [ 17 ].”
- Automatic extraction of object-oriented component interfaces (2002, background): “This system has proven successful at finding the sources of errors in difficult corner cases[13].”
- Following Devil's Footprints: Cross-Platform Analysis of Potentially Harmful Libraries on Android and iOS (2016, background): “Invariants are widely used in finding a program’s vulnerabilities [21], [24], [61], [25], which are typically discovered through dynamically analyzing the program [21].”
- Addressing failures in exascale computing (2014, methodology): “The software-driven approach described has several advantages: (1) generality: it is oblivious to specific failure modes and microarchitectural or circuit details; (2) masked faults ignored: it naturally ignores all faults masked at the software level; (3) customizability: the software layer in char”
- The future of employment: How susceptible are jobs to computerisation? (2017, background): “Algorithms can further automatically detect bugs in software (Hangal and Lam, 2002; Livshits and Zimmermann, 2005; Kim et al., 2008), with a reliability that humans are unlikely to match.”
- Locating faults through automated predicate switching (2006, background): “Hangal et al. [4] identified the causes of some programming errors in Java programs by observing violations of program invariants.”
- SOBER: statistical model-based bug localization (2005, methodology): “Theorem 1 indicates that if a bug can be caught by invariant violations as implemented in the DIDUCE [9] project, our method can also detect it because the bug relevant score for a violated invariant is +8.”
- BugFix: A learning-based tool to assist developers in fixing bugs (2009, methodology): “Daikon [8] and DIDUCE [11] can be used to find bugs through invariant detection.”
- Deep Learning to Find Bugs (2017, background): “As a result, existing bug detectors that infer information from existing code learn only from correct examples [16] and then flag any code that is unusual as possibly incorrect, or search for inconsistencies within a single program [11].”
- AVIO: detecting atomicity violations via access interleaving invariants (2006, positive): “Its feasibility and powerful bug detection capability is shown in previous work like DAIKON [9], DIDUCE [14], AccMon [44] and Liblit’s work [20].”