Amplifying tests to validate exception handling code
@article{Zhang2012AmplifyingTT, title={Amplifying tests to validate exception handling code}, author={Pingyu Zhang and Sebastian G. Elbaum}, journal={2012 34th International Conference on Software Engineering (ICSE)}, year={2012}, pages={595-605} }
Validating code handling exceptional behavior is difficult, particularly when dealing with external resources that may be noisy and unreliable, as it requires: 1) the systematic exploration of the space of exceptions that may be thrown by the external resources, and 2) the setup of the context to trigger specific patterns of exceptions. In this work we present an approach that addresses those difficulties by performing an exhaustive amplification of the space of exceptional behavior associated…
59 Citations
Amplifying Tests to Validate Exception Handling Code: An Extended Study in the Mobile Application Domain
- Computer ScienceTSEM
- 2014
An approach that performs an systematic amplification of the program space explored by a test by manipulating the behavior of external resources that can be fully automated, is powerful enough to detect 67% of the faults reported in the bug reports of this kind, and is precise enough that 78%" of the detected anomalies are fixed.
Exception handling bug hazards in Android
- Computer ScienceEmpirical Software Engineering
- 2016
Key insights from this study include common causes for system crashes, and common chains of wrappings between checked and unchecked exceptions.
A Reflection on “An Exploratory Study on Exception Handling Bugs in Java Programs”
- Computer Science2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)
- 2020
The goal of this reflection paper is to investigate the state of the art in exception handling research, with a particular emphasis on exception handling bugs, and how the paper investigating the prevalence and nature of exception handle bugs in two large, widely adopted Java systems has influenced other studies in the area.
How Java Programmers Test Exceptional Behavior
- Education2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR)
- 2021
A large-scale study of exceptional tests in 1 157 open-source Java projects hosted on GitHub finds that exceptional tests are only 13% of all tests, but tend to be larger than other tests on average and unchecked exceptions are tested twice as frequently as checked ones.
Exception handling bug hazards in Android - Results from a mining study and an exploratory survey
- Computer ScienceEmpir. Softw. Eng.
- 2017
Key insights from this study include common causes for system crashes, and common chains of wrappings between checked and unchecked exceptions.
Testing Java Exceptions: An Instrumentation Technique
- Computer Science2014 IEEE 38th International Computer Software and Applications Conference Workshops
- 2014
The Verify Ex, a Java class prototype, together with a Java source code instrumentation technique to exercise exception handling structures is presented, resulting in an increase of code coverage rate due to the inclusion of programs exceptional behavior in the testing execution and code coverage analysis.
Exception handling analysis and transformation using fault injection: Study of resilience against unanticipated exceptions
- Computer ScienceInf. Softw. Technol.
- 2015
Crash consistency validation made easy
- Computer ScienceSIGSOFT FSE
- 2016
This work proposes C3, a novel approach that makes crash consistency validation as easy as pressing a single button and finds 14 bugs in open-source software that have severe consequences at crash and 11 of them were previously unknown to the developers.
An exploratory study on exception handling bugs in Java programs
- Computer ScienceJ. Syst. Softw.
- 2015
Unveiling exception handling bug hazards in Android based on GitHub and Google code issues
- Computer ScienceMSR 2015
- 2015
This paper reports on a study mining the exception stack traces included in 159,048 issues reported on Android projects hosted in GitHub and Google Code to investigate whether stack trace information can reveal bug hazards related to exception handling code that may lead to a decrease in application robustness.
References
SHOWING 1-10 OF 25 REFERENCES
Automatic documentation inference for exceptions
- Computer ScienceISSTA '08
- 2008
A fully automated tool that statically infers and characterizes exception-causing conditions in Java programs based on an inter-procedural, context-sensitive analysis that is well-suited for use as human-readable documentation of exceptional conditions.
Testing of java web services for robustness
- Computer ScienceISSTA '04
- 2004
A new compile-time analysis that enables a testing methodology for white-box coverage testing of error recovery code in Java web services using compiler-directed fault injection, and incorporates refinements that establish sufficient context sensitivity to ensure relatively precise def-use links.
Exception-Chain Analysis: Revealing Exception Handling Architecture in Java Server Applications
- Computer Science29th International Conference on Software Engineering (ICSE'07)
- 2007
A new static analysis is presented that, when combined with previous exception-flow analyses, computes chains of semantically-related exception- flow links, and thus reports entire exception propagation paths, instead of just discrete segments of them.
Analysis and Testing of Programs with Exception Handling Constructs
- Computer ScienceIEEE Trans. Software Eng.
- 2000
Analysis techniques, such as control flow, data flow, and control dependence, are used for a variety of software engineering tasks, including structural and regression testing, dynamic execution…
Static analysis to support the evolution of exception structure in object-oriented systems
- Computer ScienceTSEM
- 2003
This article presents a model that encapsulates the minimal concepts necessary for a developer to determine exception flow for object-oriented languages that define exceptions as objects, and describes Jex, a static analysis tool developed to provide exception-flow information for Java systems based on this model.
Software assurance by bounded exhaustive testing
- Computer ScienceIEEE Transactions on Software Engineering
- 2005
The results suggest that BET, combined with specification abstraction and factoring techniques, could become a valuable addition to the authors' verification toolkit and that further investigation is warranted.
Automated testing of refactoring engines
- Computer ScienceESEC-FSE '07
- 2007
The core of the technique is a framework for iterative generation of structurally complex test inputs that instantiate the framework to generate abstract syntax trees that represent Java programs that represent refactoring engines.
Mining Temporal Specifications for Error Detection
- Computer Science, EconomicsTACAS
- 2005
A novel automatic specification mining algorithm that uses information about error handling to learn temporal safety rules based on the observation that programs often make mistakes along exceptional control-flow paths, even when they behave correctly on normal execution paths is presented.
Context-Aware Adaptive Applications: Fault Patterns and Their Automated Identification
- Computer ScienceIEEE Transactions on Software Engineering
- 2010
This paper defines and applies a new model of adaptive behavior called an Adaptation Finite-State Machine (A-FSM) to enable the detection of faults caused by both erroneous adaptation logic and asynchronous updating of context information, with the latter leading to inconsistencies between the external physical context and its internal representation within an application.
Mining API Error-Handling Specifications from Source Code
- Computer ScienceFASE
- 2009
This paper presents a novel framework for mining API error-handling specifications automatically from API client code, without any user input, and applies data mining techniques on the static traces to mine specifications that define correct handling of API errors.