Fault Injection Approach Based on Architectural Dependencies

In a previous paper we described a fault injection strategy that applies risk-based analysis to select the system’s riskiest components for testing. Among other criteria, this analysis considers the number of upstream and downstream dependencies of a component in a system. In order to obtain this number, we propose the use of architectural-level dependency analysis. One advantage of an analysis at architectural level is that systems may often contain COTS components from which no source code is available. The approach is illustrated with a case study, and the preliminary experimental results are also discussed.

[1]  Linda H. Rosenberg,et al.  Risk-Based Object Oriented Testing , 2000 .

[2]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[3]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach (McGraw-Hill Series in Computer Science) , 2004 .

[4]  Jean Arlat,et al.  Fault Injection for Dependability Validation: A Methodology and Some Applications , 1990, IEEE Trans. Software Eng..

[5]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[6]  Gary McGraw,et al.  Software fault injection: inoculating programs against errors , 1997 .

[7]  Susan A. Sherer,et al.  A cost-effective approach to testing , 1991, IEEE Software.

[8]  Eliane Martins,et al.  A Strategy for Validating an ODBMS Component Using a High-Level Software Fault Injection Tool , 2003, LADC.

[9]  Jeffrey M. Voas,et al.  Predicting How Badly "Good" Software Can Behave , 1997, IEEE Softw..

[10]  Cecília M. F. Rubira,et al.  A Dependable Architecture for COTS-Based Software Systems Using Protective Wrappers , 2003, WADS.

[11]  Baowen Xu,et al.  An overview of methods for dependence analysis of concurrent programs , 2002, SIGP.

[12]  Cecília M. F. Rubira,et al.  Jaca: a reflective fault injection tool based on patterns , 2002, Proceedings International Conference on Dependable Systems and Networks.

[13]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[14]  Drasko M. Sotirovski Towards fault-tolerant software architectures , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[15]  Volker Gruhn,et al.  State of the art in testing components , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[16]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[17]  Alexander Romanovsky,et al.  Protective Wrapper Development: A Case Study , 2003, ICCBSS.

[18]  Valérie Issarny,et al.  Developing Dependable Systems Using Software Architecture , 1999, WICSA.

[19]  George S. Avrunin,et al.  Applying static analysis to software architectures , 1997, ESEC '97/FSE-5.

[20]  Alexander L. Wolf,et al.  Chaining: A Software Architecture Dependence Analysis Technique , 1997 .

[21]  Mary Shaw,et al.  A field guide to boxology: preliminary classification of architectural styles for software systems , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[22]  Christof Fetzer,et al.  Automatic detection and masking of nonatomic exception handling , 2003, IEEE Transactions on Software Engineering.

[23]  Jean Arlat,et al.  Building dependable COTS microkernel-based systems using MAFALDA , 2000, Proceedings. 2000 Pacific Rim International Symposium on Dependable Computing.

[24]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.

[25]  Paola Inverardi,et al.  Checking Assumptions in Component Dynamics as the Architectural Level , 1997, COORDINATION.