Alun D. Preece, Clifford Grossner, P. Gokul Chander, and T. Radhakrishnan
There are two complementary aspects to testing a software system: functional testing determines how well the system performs its required operations; structural testing determines that the components of the system are sufficiently exercised during testing. Functional testing is based upon a specification of the system requirements; structural testing is based upon a model of the structure of the system. For rule-based systems, a structural model explicates the rule execution paths (possible causal sequences of rule firings). In this paper, a formal structural model for OPS5- like rule bases is developed; this model is designed to overcome weaknesses of previous structural models. Two software tools are introduced: Path Hunter uses the structural model to determine the execution paths in a rule base; Path Tracer analyzes dynamic rule firings that occur during functional testing, to determine the extent to which execution paths identified by the structural model are exercised at run-time. We present results obtained from using Path Hunter and Path Tracer on a complex expert system rule base which had previously been subjected to functional testing.