An Early Investigation of Unit Testing Practices of Component-Based Software Systems

Component-based software development (CBSD) is one of the main programming paradigms of the last decades. The main idea of CBSD is to modularize a system as a configuration of multiple interacting components. Components interact with each other via dedicated component interfaces hiding a component's implementation and making components interchangeable. In this paper, we present an early investigation of unit testing practices of open source component-based software systems with the goal to find out how component-based software systems are actually tested and how to improve unit testing practices as part of future research. Our preliminary results show that unit tests typically directly test the component implementation and not dedicated component APIs. The method coverage of component APIs varied between 17% and 34% in the analyzed projects.

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

[2]  Ivica Crnkovic,et al.  Twenty-eight years of component-based software engineering , 2016, J. Syst. Softw..

[3]  Ye Wu,et al.  Testing and Quality Assurance for Component-Based Software , 2003 .

[4]  Myra B. Cohen,et al.  An orchestrated survey of methodologies for automated software test case generation , 2013, J. Syst. Softw..

[5]  Josef Pichler,et al.  Experience Report on Building ASTM Based Tools for Multi-language Reverse Engineering , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[6]  Elaine J. Weyuker,et al.  The trouble with testing components , 2001 .

[7]  George T. Heineman Unit Testing of Software Components with Inter-component Dependencies , 2009, CBSE.

[8]  Daniel Sundmark,et al.  Reuse with Software Components - A Survey of Industrial State of Practice , 2009, ICSR.

[9]  Elaine J. Weyuker,et al.  Testing Component-Based Software: A Cautionary Tale , 1998, IEEE Softw..

[10]  Ye Wu,et al.  Techniques for testing component-based software , 2001, Proceedings Seventh IEEE International Conference on Engineering of Complex Computer Systems.

[11]  Arvinder Kaur,et al.  Component Based Software Engineering , 2010 .

[12]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.