Knowlege-Based Refinement During Testing

(with Chris Wild)

Most testing methods generate test descriptions which define the desired characteristics of the input data in a test case. There may be many different test inputs that will satisfy one of these descriptions.

We refine a test case by adding additional constraints that focus the description upon those inputs that we believe are especially likely to reveal errors. We propose the use of accumulated knowledge about a problem domain to refine these test descriptions.

A knowledge base is introduced to hold information about object semantics and object class/subclass relationships. Knowledge accumulates with experience in a particular domain and can be focused on those objects and relationships in that domain which experience has shown to be error-prone. In particular, we are exploring the use of information from failures on previous projects as a key source of new refinements.