A semi-exhaustive testing technique for C++ classes based on the inter-member relationship

Imran Bashir · 1993

Object oriented software development techniques are becoming increasingly wide-spread. One of the major benefits of object-oriented approach is its ability to develop software components that can be reused. Since these components are likely to be reused again and again, it is essential that their correctness be ensured as best as possible. Testing is one way of ensuring the correctness of these software components. Object oriented software possesses attributes that cannot be completely tested with traditional software testing techniques. This dissertation proposes a new technique for testing object-oriented software. In this approach, the state of each data member of a class and its associated member functions, is exploited to validate a class. A test procedure is presented to test a C++ base class. Major steps are highlighted by applying the test procedure to two published case studies. The test procedure is then extended to test singly inherited derived classes. The details of the extended test procedure are explained by its application to another case study. Both of the test procedures are analyzed to determine the maximum number of test-cases required in each case. Finally it is shown that this approach satisfies the commonly used test-data adequacy axioms, and their modification. Some of the advantages of this technique are that it is semi-exhaustive in nature, requires no formal specifications, needs minimal change to a class-under-test, reuses the test-history of base classes, and is automatable.

Read the paper · More papers on PaperTik