[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2024436.2024443acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Using feature locality: can we leverage history to avoid failures during reconfiguration?

Published: 04 September 2011 Publication History

Abstract

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.

References

[1]
M. Adler. Mars exploration rover Spirit sol 18 anomaly. In AIAA Space Conference/International Mars Conference, Sept. 2004.
[2]
D. Batory. Scaling step-wise refinement. IEEE Transactions on Software Engineering, 30(6):355--371, 2004.
[3]
Y. Brun and N. Medvidovic. Fault and adversary tolerance as an emergent property of distributed systems' software architectures. In Proceedings of the Workshop on Engineering Fault Tolerant Systems, page 7, 2007.
[4]
G. Candea, S. Kawamoto, Y. Fujiki, G. Friedman, and A. Fox. Microreboot -- a technique for cheap recovery. In OSDI'04: Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, pages 3--3, Berkeley, CA, USA, 2004. USENIX Association.
[5]
A. Carzaniga, A. Gorla, and M. Pezzè. Self-healing by means of automatic workarounds. In International Workshop on Software Engineering for Adaptive and Self-managing Systems, pages 17--24, 2008.
[6]
H. Chang, L. Mariani, and M. Pezze. In-field healing of integration problems with COTS components. In Proceedings of the International Conference on Software Engineering, pages 166--176, 2009.
[7]
P. Clements and L. Northrup. Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.
[8]
M. B. Cohen, M. B. Dwyer, and J.Shi. Coverage and adequacy in software product line testing. In Proceedings of the Workshop on the Role of Architecture for Testing and Analysis, pages 53--63, July 2006.
[9]
M. B. Cohen, M. B. Dwyer, and J. Shi. Interaction testing of highly-configurable systems in the presence of constraints. In International Symposium on Software Testing and Analysis, pages 129--139, July 2007.
[10]
K. Czarnecki, S. She, and A. Wasowski. Sample spaces and feature models: There and back again. In International Software Product Line Conference, pages 22--31, 2008.
[11]
E. M. Dashofy, A. van der Hoek, and R. N. Taylor. Towards architecture-based self-healing systems. In Proceedings of the First Workshop on Self-healing Systems, pages 21--26, 2002.
[12]
G. Denaro, M. Pezzè, and D. Tosi. Ensuring interoperable service-oriented systems through engineered self-healing. In Proceedings of the Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 253--262, 2009.
[13]
A. Ebnenasir. Designing run-time fault-tolerance using dynamic updates. In International Workshop on Software Engineering for Adaptive and Self-Managing Systems, page 15, 2007.
[14]
A. Elkhodary, N. Esfahani, and S. Malek. FUSION: A framework for engineering self-tuning self-adaptive software systems. In Proceedings of the International Symposium on the Foundations of Software Engineering, Nov. 2010.
[15]
Free Software Foundation. GNU 4.1.1 manpages. Available at http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/, 2005.
[16]
Free Software Foundation. GCC Bugzilla. http://gcc.gnu.org/bugzilla/, Mar. 2010.
[17]
B. Garvin and M. Cohen. Feature interaction faults revisited: An exploratory study. in submission 2011.
[18]
J. C. Georgas, A. van der Hoek, and R. N. Taylor. Architectural runtime configuration management in support of dependable self-adaptive software. In Workshop on Architecting Dependable Systems, pages 1--6, 2005.
[19]
H. Gomaa and M. Hussein. Model-based software design and adaptation. In International Workshop on Software Engineering for Adaptive and Self-Managing Systems, page 7, 2007.
[20]
A. Hassan and R. Holt. The top ten list: Dynamic fault prediction. In Software Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE International Conference on, pages 263--272, 2005.
[21]
IEEE Standards Board. ANSI\slash IEEE Std 610.121990:Standard Glossary of Software Engineering Terminology. IEEE, New York, NY, USA, 1990.
[22]
S. Kim, T. Zimmermann, E. Whitehead Jr, and A. Zeller. Predicting faults from cached history. In Proceedings of the 29th international conference on Software Engineering, pages 489--498. IEEE Computer Society, 2007.
[23]
D. Kuhn, D. R. Wallace, and A. M. Gallo. Software fault interactions and implications for software testing. IEEE Transactions on Software Engineering, 30(6):418--421, 2004.
[24]
F. Munoz and B. Baudry. Artificial table testing dynamically adaptive systems. Technical report, Institut National de Recherche en Informatique et en Automatique, 2009.
[25]
J. H. Perkins, S. Kim, S. Larsen, S. Amarasinghe, J. Bachrach, M. Carbin, C. Pacheco, F. Sherwood, S. Sidiroglou, G. Sullivan, W.-F. Wong, Y. Zibin, M. D. Ernst, and M. Rinard. Automatically patching errors in deployed software. In Symposium on Operating Systems Principles, pages 87--102, 2009.
[26]
K. Pohl, G. Böckle, and F. van der Linden. Software Product Line Engineering. Springer, Berlin, 2005.
[27]
X. Qu, M. B. Cohen, and G. Rothermel. Configuration-aware regression testing: An empirical study of sampling and prioritization. In International Symposium on Software Testing and Analysis, pages 75--85, July 2008.
[28]
M. Salehie and L. Tahvildari. Self-adaptive software: Landscape and research challenges. ACM Transactions on Autonomous and Adaptive Systems, 4(2):1--42, 2009.
[29]
N. Siegmund, M. Pukall, M. Soffner, V. Köppen, and G. Saake. Using software product lines for runtime interoperability. In Workshop on AOP and Meta-Data for Software Evolution, pages 1--7, 2009.
[30]
E. Strunk and J. Knight. Assured reconfiguration of embedded real-time software. In International Conference on Dependable Systems and Networks, pages 367--376, 2004.
[31]
W. Weimer, T. Nguyen, C. Le Goues, and S. Forrest. Automatically finding patches using genetic programming. In International Conference on Software Engineering, pages 364--374, 2009.
[32]
C. Yilmaz, M. B. Cohen, and A. Porter. Covering arrays for efficient fault characterization in complex configuration spaces. IEEE Transactions on Software Engineering, 31(1):20--34, Jan 2006.
[33]
J. Zhang and B. H. C. Cheng. Model-based development of dynamically adaptive software. In International Conference on Software engineering, pages 371--380, 2006.

Cited By

View all
  • (2021)Testing of adaptive and context‐aware systems: approaches and challengesSoftware Testing, Verification and Reliability10.1002/stvr.177231:7Online publication date: 3-May-2021
  • (2020)An Empirical Study on Configuration-Related Code WeaknessesProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422409(193-202)Online publication date: 21-Oct-2020
  • (2020)Software Configuration Engineering in Practice Interviews, Survey, and Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2018.286784746:6(646-673)Online publication date: 1-Jun-2020
  • Show More Cited By

Index Terms

  1. Using feature locality: can we leverage history to avoid failures during reconfiguration?

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASAS '11: Proceedings of the 8th workshop on Assurances for self-adaptive systems
    September 2011
    50 pages
    ISBN:9781450308533
    DOI:10.1145/2024436
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 September 2011

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. highly-configurable systems
    2. self-adaptive software

    Qualifiers

    • Research-article

    Conference

    ESEC/FSE'11
    Sponsor:

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 15 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)Testing of adaptive and context‐aware systems: approaches and challengesSoftware Testing, Verification and Reliability10.1002/stvr.177231:7Online publication date: 3-May-2021
    • (2020)An Empirical Study on Configuration-Related Code WeaknessesProceedings of the XXXIV Brazilian Symposium on Software Engineering10.1145/3422392.3422409(193-202)Online publication date: 21-Oct-2020
    • (2020)Software Configuration Engineering in Practice Interviews, Survey, and Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2018.286784746:6(646-673)Online publication date: 1-Jun-2020
    • (2019)Dimensions of Robust Security Testing in Global Software EngineeringHuman Factors in Global Software Engineering10.4018/978-1-5225-9448-2.ch010(252-272)Online publication date: 2019
    • (2018)Assessing an architecture's ability to support feature evolutionProceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196346(297-307)Online publication date: 28-May-2018
    • (2018)Automatic Software RepairACM Computing Surveys10.1145/310590651:1(1-24)Online publication date: 23-Jan-2018
    • (2016)Using dynamic adaptive systems in safety-critical domainsProceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems10.1145/2897053.2897062(115-121)Online publication date: 14-May-2016
    • (2016)Security Testing10.1016/bs.adcom.2015.11.003(1-51)Online publication date: 2016
    • (2015)An empirical study on configuration-related issues: investigating undeclared and unused identifiersACM SIGPLAN Notices10.1145/2936314.281420651:3(35-44)Online publication date: 26-Oct-2015
    • (2015)An empirical study on configuration-related issues: investigating undeclared and unused identifiersProceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/2814204.2814206(35-44)Online publication date: 26-Oct-2015
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media