A methodology for expert systems testing and debugging
Shukri Abdallah · 1993
There is a lack of methodologies and support tools for debugging and testing expert systems. This dissertation describes methodologies for testing and debugging expert systems. A tool which supports these methodologies is described. In addition to the methodologies of testing and debugging expert systems, this dissertation presents a measure of expert system complexity, a new proposal for a variety of data structured testing, and some recommended restrictions on the design of expert systems. A measure of expert system complexity was designed for use in the methodologies. This measure is based on the pattern of data usage among the rules. The complexity measure guides the user in selecting the test case coverage criterion. Data structured testing is discussed as another test case coverage criterion. It is not included in the testing methodology. The methodology for testing expert systems contains steps before system execution, a list of the most common mistakes that knowledge engineers or expert system developers commit while developing expert systems and how to avoid or reduce them, coverage measures, test case generation, and test case application. The methodology for debugging expert systems contains hypotheses generation, hypotheses testing, hypotheses revision, problem correcting, and regression testing. The tool called Simpler Level Five (SL5) was designed and implemented to support the methodologies. The features of the tool are detection of infinite loops, detection of faulty paths in expert systems, identification of redundant conditions of a rule, detection of tautology rules, identification of contradictory rules, a capability to ask which rule last set the value of a particular variable, a capability to set initial breakpoints, automatic development of comprehensive test cases, single stepping mode, selective enabling and disabling of individual rules, a capability to make notes in a file without leaving the debugger, a capability to ask the system to detect and announce particular conditions, a capability to ask for the last six executed rules, a capability to ask for the current value of an attribute and change it, a capability to search for uses of an attribute, and a capability for the graphical display of execution paths through the rule set.