Towards architecture-based self-healing systems
WOSS '02 Proceedings of the first workshop on Self-healing systems
IEEE Transactions on Software Engineering
Software Fault Interactions and Implications for Software Testing
IEEE Transactions on Software Engineering
Assured Reconfiguration of Embedded Real-Time Software
DSN '04 Proceedings of the 2004 International Conference on Dependable Systems and Networks
Architectural runtime configuration management in support of dependable self-adaptive software
WADS '05 Proceedings of the 2005 workshop on Architecting dependable systems
The Top Ten List: Dynamic Fault Prediction
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Software Product Line Engineering: Foundations, Principles and Techniques
Software Product Line Engineering: Foundations, Principles and Techniques
Covering Arrays for Efficient Fault Characterization in Complex Configuration Spaces
IEEE Transactions on Software Engineering
Model-based development of dynamically adaptive software
Proceedings of the 28th international conference on Software engineering
Coverage and adequacy in software product line testing
Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
Predicting Faults from Cached History
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Model-Based Software Design and Adaptation
SEAMS '07 Proceedings of the 2007 International Workshop on Software Engineering for Adaptive and Self-Managing Systems
Designing Run-Time Fault-Tolerance Using Dynamic Updates
SEAMS '07 Proceedings of the 2007 International Workshop on Software Engineering for Adaptive and Self-Managing Systems
Interaction testing of highly-configurable systems in the presence of constraints
Proceedings of the 2007 international symposium on Software testing and analysis
Fault and adversary tolerance as an emergent property of distributed systems' software architectures
Proceedings of the 2007 workshop on Engineering fault tolerant systems
Self-healing by means of automatic workarounds
Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems
Configuration-aware regression testing: an empirical study of sampling and prioritization
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Sample Spaces and Feature Models: There and Back Again
SPLC '08 Proceedings of the 2008 12th International Software Product Line Conference
Self-adaptive software: Landscape and research challenges
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
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
Using software product lines for runtime interoperability
Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
Ensuring interoperable service-oriented systems through engineered self-healing
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
FUSION: a framework for engineering self-tuning self-adaptive software systems
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Automated diagnosis of software configuration errors
Proceedings of the 2013 International Conference on Software Engineering
Automatic recovery from runtime failures
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Despite the best efforts of software engineers, faults still escape into deployed software. Developers need time to prepare and distribute fixes, and in the interim deployments must either tolerate or avoid failures. Self-adaptive systems, systems that adapt to meet changing requirements in a dynamic environment, have a daunting task if their reconfiguration involves adding or removing functional features, because configurable software is known to suffer from failures that appear only under certain feature combinations. Although configuration-dependent failures may be difficult to provoke, and thus hard to detect in testing, we posit that they also constitute opportunities for reconfiguration to increase system reliability. We further conjecture that the failures that are sensitive to a system configuration depend on similar feature combinations, a phenomenon we call feature-locality, and that this locality can be combined with historical data to predict failure-prone configurations. In a case study on 128 failures reported against released versions of an open source configurable system, we find evidence to support our hypothesis. We show that only a small number of features affect the visibility of these failures, and that over time we can learn these features to avoid future failures.