Isolated Testing of Software Components in Distributed Software Systems

Component-based software engineering emphasizes the composition of software systems through loosely coupled independent components. Although software components are binary units of independent software artifacts, they typically interact with other components as they form a functioning system and thus implicitly define dependency relations. However, in case of distributed component-based software systems current testing strategies either assume total independence of components or require usage of mock-up frameworks which do not facilitate testing of the entire component but only a subset of it. Consequently, the dependency structure between components is not really taken into account. Therefore, those tests are limited in their effectiveness of detecting defects in software systems with distributed components. In this paper the ”Effective Tester in the Middle” (ETM) approach is presented, which improves testing of components depending on other distributed components. The approach relies on test scenario specific interaction models and network communication models which facilitate isolated testing of entire components without the need to run the overall system. We evaluate the approach by implementing test scenarios for a system integration platform. The prototypic implementation demonstrates that software testers are able to create unit test like integration tests with minimal effort and that it increases the quality of the system by enabling the injection of fault-messages.

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

[2]  Dieter Hogrefe,et al.  On the Design of the New Testing Language TTCN-3 , 2000, TestCom.

[3]  Yuen-Hsien Tseng,et al.  Theory in Practice , 2002 .

[4]  Debra Richardson,et al.  The role of dependencies in component-based systems evolution , 2002, IWPSE '02.

[5]  Stefan Biffl,et al.  A Platform for Service-Oriented Integration of Software Engineering Environments , 2009, SoMeT.

[6]  Stefan Biffl,et al.  Quality assurance for data from low-tech participants in distributed automation engineering environments , 2011, ETFA2011.

[7]  Michael T. Minella Pro Spring Batch , 2011 .

[8]  Svetlana G. Shasharina,et al.  Web Service Validation Enabling Test-Driven Development of Service-Oriented Applications , 2009, 2009 Congress on Services - I.

[9]  Hans-Gerhard Groß,et al.  Component-based software testing with UML , 2004 .

[10]  P. S. Grover,et al.  Dependency analysis for component-based software systems , 2009, SOEN.

[11]  Debra J. Richardson,et al.  Analyzing dependencies in large component-based systems , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[12]  Thomas Bauer,et al.  Enabling Statistical Testing for Component-based Systems , 2010, GI Jahrestagung.

[13]  Ji Wu,et al.  Jata: A Language for Distributed Component Testing , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[14]  Gaoyan Xie Decompositional verification of component-based systems-a hybrid approach , 2004 .

[15]  Jasminka Matevska Rekonfiguration komponentenbasierter Softwaresysteme zur Laufzeit , 2010 .

[16]  Stefan Biffl,et al.  A framework for automated testing of automation systems , 2010, 2010 IEEE 15th Conference on Emerging Technologies & Factory Automation (ETFA 2010).

[17]  David A Chappell,et al.  Enterprise Service Bus , 2004 .

[18]  Yingxu Wang,et al.  A framework for testing distributed software components , 2005, Canadian Conference on Electrical and Computer Engineering, 2005..

[19]  P. S. Grover,et al.  Reusability assessment for software components , 2009, SOEN.