Regression testing based-on slicing of component-based software architectures

We propose an efficient dynamic slicing algorithm for component-based software architectures. We first transform a software architecture into an intermediate representation which we have named architecture component dependence graph(ACDG). Our slicing algorithm is based on marking and unmarking the in-service and out-of-service edges on an ACDG as and when dependencies arise and cease on occurrence of events. We use the computed dynamic architectural slices to select test cases for regression testing of component based systems. One important advantage of our approach is that a slice is available for use even before a request for a slice is made. This appreciably reduces the response time of slicing commands, and help regression testing. We show that our architectural slicing algorithm is more time and space efficient than the existing algorithms. We also briefly discuss a prototype tool SRTWA(Slicer-based Regression Testing of Wright Architectures) which we have developed to implement our algorithm

[1]  Rajib Mall,et al.  An efficient interprocedural dynamic slicing method , 2006, J. Syst. Softw..

[2]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[3]  Sigrid Eldh Software Testing Techniques , 2007 .

[4]  Jianjun Zhao Using Dependence Analysis to Support Software Architecture Understanding , 2001, ArXiv.

[5]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[6]  Jaiprakash T. Lallchandani,et al.  Computation of dynamic slices for object-oriented concurrent programs , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[7]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[8]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[9]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[10]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[11]  Alexander L. Wolf,et al.  Architecture-Level Dependence Analysis for Software Systems , 2001, Int. J. Softw. Eng. Knowl. Eng..

[12]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[13]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[14]  Bixin Li,et al.  Matrix-based component dependence representation and its applications in software quality assurance , 2005, SIGP.

[15]  Jianjun Zhao,et al.  Architectural Slicing to Support System Evolution , 2005 .

[16]  Jianjun Zhao,et al.  Applying slicing technique to software architectures , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[17]  Rajib Mall,et al.  An efficient dynamic program slicing technique , 2002, Inf. Softw. Technol..

[18]  Lawrence Chung,et al.  Software architecture analysis: a dynamic slicing approach , 2000 .

[19]  Alexander L. Wolf,et al.  Aladdin: A Tool for Architecture-Level Dependence Analysis of Software Systems , 1998 .

[20]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[21]  Alexander L. Wolf,et al.  The Application of Dependence Analysis to Software Architecture Descriptions , 2003, SFM.

[22]  Zhao Jianjun,et al.  Slicing Software Architectures , 1997 .

[23]  Lawrence Chung,et al.  Dynamic software architecture slicing , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[24]  Robert J. Allen A formal approach to software architecture , 1997 .

[25]  David W. Binkley,et al.  The application of program slicing to regression testing , 1998, Inf. Softw. Technol..