Increasing the Testability of Object-Oriented Frameworks with Built-in Tests

Object-oriented frameworks require thorough testing as they are reused repeatedly in developing numerous applications. Moreover, frameworks must be retested each time they are adapted and extended for reuse. Frameworks, however, have properties that make it difficult to control and observe the testing of the parts that were modified or extended. This paper describes a scheme of encapsulating test support code as built-in test (BIT) components and embedding them into the hook classes of an object-oriented framework so that defects caused by the modification and extension of the framework can be detected effectively and efficiently through testing. The test components built into a framework in this way increase the testability of the framework by making it easy to control and observe the process of framework testing without incurring changes or intervention to the framework code.

[1]  J. Voas,et al.  Software Testability: The New Verification , 1995, IEEE Softw..

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

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

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

[5]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[6]  Douglas C. Schmidt,et al.  Implementing application frameworks: object-oriented frameworks at work , 1999 .

[7]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[8]  Wim Codenie,et al.  From custom applications to domain-specific frameworks , 1997, CACM.

[9]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[10]  Jeffrey M. Voas,et al.  Predicting where faults can hide from testing , 1991, IEEE Software.

[11]  Douglas C. Schmidt,et al.  Building application frameworks: object-oriented foundations of framework design , 1999 .

[12]  Ralph Johnson,et al.  Domain-specific application frameworks: framework experience by industry , 1999 .

[13]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[14]  Stephen H. Edwards,et al.  A framework for practical, automated black‐box testing of component‐based software † , 2001, Softw. Test. Verification Reliab..

[15]  Hans Albrecht Schmid,et al.  Systematic framework design by generalization , 1997, CACM.

[16]  Kevin Benner,et al.  Managing Object-Oriented Framework Reuse , 1996, Computer.

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

[18]  Paul C. Jorgensen,et al.  Object-oriented integration testing , 1994, CACM.

[19]  Phyllis G. Frankl,et al.  The ASTOOT approach to testing object-oriented programs , 1994, TSEM.

[20]  David Chenho Kung,et al.  Testing Object-Oriented Software , 1998 .

[21]  Daniel Hoffman,et al.  ClassBench: a framework for automated class testing , 1997 .

[22]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .