An apparatus and method for testing object oriented software includes a
software test framework that includes one or more test drivers and one or
more testcases for each test driver. Each testcase can also have multiple
variations. A TestDriver abstract class and a Testcase class are defined.
Each test driver is created as an extension of the TestDriver class, and
each testcase is created as an extension of the Testcase class, thereby
promoting uniformity between different test drivers and between different
test cases. When an instance of the TestDriver class is run, it
instantiates its testcases, determines which variations of the testcases
should be run, runs the variations, and reports the results. By providing
the software test framework in the same programming environment in which
the software under test is developed, the application programmer can
program the needed tests without requiring the specialized skills of a
test programmer.