A functional testing technique is provided employing an abstraction matrix that
describes a complex software component to be tested. The abstraction matrix includes
state and event information. The technique is an automated process which parses
the abstraction matrix to generate test cases and mapped expected results therefore.
The test cases are separated based on layers of the software component and data
structures are associated with the separated test cases of the layers. The data
structures allow the test cases of the various layers to be uncorrelated. The software
component executable is employed to generate test case execution threads from the
test cases and mapped expected results for a particular layer. These execution
threads can then be executed in parallel, thereby testing the software component.