Towards software architecture-based regression testing

When architecting dependable systems, in addition to improving system dependability by means of construction (fault-tolerant and redundant mechanisms, for instance), it is also important to evaluate, and thereby confirm, system dependability. There are many different approaches for evaluating system dependability, and testing always has been an important one. Previous work on software architecture testing has shown it is possible to apply conformance-testing techniques to yield confidence that the behavior of an implemented system conforms to the expected behavior of the software architecture, specified with Architecture Description Languages. In this work, we explore how regression testing can be systematically applied at the software architecture level in order to reduce the cost of retesting modified systems, and also to assess the regression testability of the evolved system. We consider assessing both “top-down” and “bottom-up” evolution, i.e., whether a slightly modified implementation conforms to the initial architecture, and whether the (modified) implementation conforms an evolved architecture. A better understanding on how regression testing can be applied at the software architecture level will help us to assess and identify architecture with higher dependability.

[1]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[2]  David Chenho Kung,et al.  Developing an object-oriented software testing and maintenance environment , 1995, CACM.

[3]  David Chenho Kung,et al.  Or Regression Testing of Object-Oriented Programs , 1996, J. Syst. Softw..

[4]  Jeff Magee,et al.  Analysing dynamic change in software architectures: a case study , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[5]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[6]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[7]  Mary Jean Harrold Architecture-Based Regression Testing of Evolving Systems , 1998 .

[8]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[9]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[10]  Ye Wu,et al.  Techniques of maintaining evolving component-based software , 2000, Proceedings 2000 International Conference on Software Maintenance.

[11]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.

[12]  Gregg Rothermel,et al.  An empirical study of regression test selection techniques , 2001, ACM Trans. Softw. Eng. Methodol..

[13]  M. J. Harrold,et al.  Using Component Metadata to Support the Regression Testing of Component-Based Software , 2001 .

[14]  Volker Gruhn,et al.  Integrating white- and black-box techniques for class-level regression testing , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[15]  Henry Muccini,et al.  Using software architecture for code testing , 2004, IEEE Transactions on Software Engineering.

[16]  Antonio Bucchiarone,et al.  Model-Checking Plus Testing: From Software Architecture Analysis to Code Testing , 2004, FORTE Workshops.

[17]  Henry Muccini,et al.  Systematic Testing of Software Architectures in the C2 Style , 2004, FASE.