학술논문

T++: a test case generator using a debugging information based technique for source code manipulation
Document Type
Conference
Source
Proceedings of TOOLS USA 97. International Conference on Technology of Object Oriented Systems and Languages Technology of object-oriented languages and systems Technology of Object-Oriented Languages and Systems, 1997. TOOLS 23. Proceedings. :272-281 1997
Subject
Computing and Processing
Computer aided software engineering
Debugging
Software testing
System testing
Automatic testing
Data mining
Gas insulated transmission lines
Software systems
Laboratories
Computer science
Language
Abstract
T++ is a C++ language extension that aids in systematic testing of C++ code. For each type t used in the code, T++ maintains the set of "typical" values of t, denoted by T(t) (typicals of t). The authors propose an object-oriented testing scheme in which each class t has a test method implemented as a static member function that runs a test script on each of the values in T(t). T++ supports this scheme by automatically generating a default T(t) based on the declaration of t and on the typicals of each of the types used in this declaration. This default can be easily tuned by the class implementor and users to reflect the particularities of the class. T++ also provides an easily tuned by the class implementor and users to reflect the particularities of the class. T++ also provides an easy-to-use mechanism for iterating over the typicals of a type. Thus, T++ gives a supporting environment for the design and implementation of test scripts with the familiar techniques of equivalence testing, boundary value analysis, or functional testing approaches. Most language extensions are realized by either a dedicated pre-processor or by a modification to the compiler. Both techniques suffer from serious drawbacks related to the complexity of C++ and the accessibility of the compiler code. In contrast, the implementation of T++ sidesteps these difficulties by relaying on a novel technique that creates a knowledge base of the source code from the debugging information.