Automatic Generation of Basis Component Path Coverage for Software Architecture Testing

Architecture-centric development is one of the most promising methods for improving software quality, reducing software cost and raising software productivity. Software architecture research not only focuses on the design phase, but also covers every phase of software life cycle. Software architecture has characteristics different from traditional software, conventional testing methods do not apply directly to software architecture. Basis path testing is a very simple and efficient white-box testing method. Traditional methods generate basis path according to the control flow graph, they are not suitable for generating component path when we detect more software architecture errors. This paper presents a new concept - Basis Component Path (BCP) for C2-style architecture, and proposes a method to generate the BCPs. C2-style architecture is represented by components, connectors, and interfaces, and uses an architecture component interaction graph (CIG) to describe interface connection relationship. We also provide an algorithm to generate BCP set. Experiments apply the proposed method in a typical C2-style architecture and the result shows that the proposed method can generate BCP set which contains as many BCPs as possible efficiently, and it meets the requirements of the basis component path testing.

[1]  Dolores R. Wallace,et al.  Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric , 1996 .

[2]  Xuemei Ding,et al.  Edge Coverage Analysis for Software Architecture Testing , 2012, J. Softw..

[3]  Henry Muccini,et al.  What Industry Needs from Architectural Languages: A Survey , 2013, IEEE Transactions on Software Engineering.

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

[5]  Nor Laily Hashim,et al.  Architectural Test Coverage for Component-Based Integration Testing , 2007, Seventh International Conference on Quality Software (QSIC 2007).

[6]  Xuemei Ding,et al.  C2-Style Architecture Testing and Metrics Using Dependency Analysis , 2013, J. Softw..

[7]  Henry Muccini,et al.  An explorative journey from architectural tests definition downto code tests execution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[8]  David S. Rosenblum Adequate Testing of Component-Based Software , 1997 .

[9]  A. Jefferson Offutt,et al.  Deriving tests from software architectures , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[10]  Du Qingfeng,et al.  An improved algorithm for basis path testing , 2011, 2011 International Conference on Business Management and Electronic Information.

[11]  Zhang Zhonglin,et al.  An improved method of acquiring basis path for software testing , 2010, 2010 5th International Conference on Computer Science & Education.

[12]  Jun Yan,et al.  An efficient method to generate feasible paths for basis path testing , 2008, Inf. Process. Lett..

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

[14]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[15]  Jingsha He,et al.  Testing coverage analysis for software component validation , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[16]  Joseph P. Poole A Method to Determine a Basis Set of Paths to Perform Program Testing | NIST , 1995 .

[17]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

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

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

[20]  Antonia Bertolino,et al.  Automatic Generation of Path Covers Based on the Control Flow Analysis of Computer Programs , 1994, IEEE Trans. Software Eng..