A Strategy to Improve Component Testability without Source Code

A software component must be tested every time it is reused, to guarantee the quality of both the component itself and the system in which it is to be integrated. To reduce testing costs, we propose a model to build highly testable components by embedding testing and monitoring mechanisms inside them. The approach is useful to component developers, who can use these builtin test capabilities in the testing phase, as well as to component users, who can verify whether the component fulfills its contract. Our approach proposes the insertion of built-in mechanisms directly into intermediate code, allowing its use even in COTS components.

[1]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[2]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[3]  John Morris,et al.  A software component verification tool , 2000, Proceedings International Conference on Software Methods and Tools. SMT 2000.

[4]  John D. McGregor,et al.  Incremental testing of object-oriented class structures , 1992, ICSE '92.

[5]  John D. McGregor,et al.  Parallel Architecture for Component Testing , 1997, J. Object Oriented Program..

[6]  Dolores R. Wallace,et al.  A Testability-Based Assertion Placement Tool for Object-Oriented Software, , 1998 .

[7]  Robert V. Binder,et al.  Design for testability in object-oriented systems , 1994, CACM.

[8]  Simon Shim,et al.  Monitoring software components and component-based software , 2000, Proceedings 24th Annual International Computer Software and Applications Conference. COMPSAC2000.

[9]  Volker Gruhn,et al.  State of the art in testing components , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[10]  Yingxu Wang,et al.  A method for built-in tests in component-based software maintenance , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[11]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[12]  Jerry Zeyu Gao,et al.  On Building Testable Software Components , 2002, ICCBSS.

[13]  Jean-Marc Jézéquel,et al.  Self-testable components: from pragmatic tests to design-for-testability methodology , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

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

[15]  Shinji Chiba OpenC++ 2.5 Reference Manual , 1997 .

[16]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[17]  John R. Callahan,et al.  Verification and validation in software product line engineering , 1999 .

[18]  Eliane Martins,et al.  Constructing self-testable software components , 2001, 2001 International Conference on Dependable Systems and Networks.

[19]  G. King,et al.  On testable object-oriented programming , 1997, SOEN.

[20]  Volker Gruhn,et al.  Merging components and testing tools: the self-testing COTS components (STECC) strategy , 2003, 2003 Proceedings 29th Euromicro Conference.

[21]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[22]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[23]  Jeffrey M. Voas,et al.  A Defensive Approach to Certifying COTS Software , 1998 .