Data Diversity: An Approach to Software Fault Tolerance
IEEE Transactions on Computers - Fault-Tolerant Computing
A case for redundant arrays of inexpensive disks (RAID)
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
A survey of rollback-recovery protocols in message-passing systems
ACM Computing Surveys (CSUR)
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
System structure for software fault tolerance
Proceedings of the international conference on Reliable software
Software Rejuvenation: Analysis, Module and Applications
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
Automatic detection and repair of errors in data structures
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Rx: Treating bugs as allergies—a safe method to survive software failures
ACM Transactions on Computer Systems (TOCS)
Exception Handling and Software Fault Tolerance
IEEE Transactions on Computers
The N-Version Approach to Fault-Tolerant Software
IEEE Transactions on Software Engineering
Assertion-based repair of complex data structures
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
In-field healing of integration problems with COTS components
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatic mining of functionally equivalent code fragments via random testing
Proceedings of the eighteenth international symposium on Software testing and analysis
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Generating Fixes from Object Behavior Anomalies
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Automated fixing of programs with contracts
Proceedings of the 19th international symposium on Software testing and analysis
DSDSR: a tool that uses dynamic symbolic execution for data structure repair
Proceedings of the Eighth International Workshop on Dynamic Analysis
A transactional model for automatic exception handling
Computer Languages, Systems and Structures
Automatic workarounds for web applications
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Using feature locality: can we leverage history to avoid failures during reconfiguration?
Proceedings of the 8th workshop on Assurances for self-adaptive systems
Detecting and escaping infinite loops with jolt
Proceedings of the 25th European conference on Object-oriented programming
Atomic boxes: coordinated exception handling with transactional memory
Proceedings of the 25th European conference on Object-oriented programming
MAJOR: An efficient and extensible tool for mutation analysis in a Java compiler
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Automated repair of HTML generation errors in PHP applications using string constraint solving
Proceedings of the 34th International Conference on Software Engineering
Current challenges in automatic software repair
Software Quality Control
Hi-index | 0.00 |
We present a technique to make applications resilient to failures. This technique is intended to maintain a faulty application functional in the field while the developers work on permanent and radical fixes. We target field failures in applications built on reusable components. In particular, the technique exploits the intrinsic redundancy of those components by identifying workarounds consisting of alternative uses of the faulty components that avoid the failure. The technique is currently implemented for Java applications but makes little or no assumptions about the nature of the application, and works without interrupting the execution flow of the application and without restarting its components. We demonstrate and evaluate this technique on four mid-size applications and two popular libraries of reusable components affected by real and seeded faults. In these cases the technique is effective, maintaining the application fully functional with between 19% and 48% of the failure-causing faults, depending on the application. The experiments also show that the technique incurs an acceptable runtime overhead in all cases.