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}
}
  • Pingyu Zhang, S. Elbaum
  • Published 2 June 2012
  • Computer Science
  • 2012 34th International Conference on Software Engineering (ICSE)
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… 

Figures and Tables from this paper

Amplifying Tests to Validate Exception Handling Code: An Extended Study in the Mobile Application Domain
TLDR
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
TLDR
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”
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
Crash consistency validation made easy
TLDR
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.
Unveiling exception handling bug hazards in Android based on GitHub and Google code issues
TLDR
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.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 25 REFERENCES
Automatic documentation inference for exceptions
TLDR
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
TLDR
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
  • Chen Fu, B. Ryder
  • Computer Science
    29th International Conference on Software Engineering (ICSE'07)
  • 2007
TLDR
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
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
...
1
2
3
...