Test Case Generation by Means of Learning Techniques
Abstract
Given a program P and a set of alternative programs P, we generate a sequence of test cases that are adequate, in the sense that they distinguish the given program from all alternatives. The method is related to fault-based approaches to program testing, but programs in P need not be simple mutations of P. The technique for generating an adequate test set is based on the inductive learning of programs from finite sets of input-output examples: given a partial test set, we generate inductively a program P'E P which is consistent with P on those input values; then we look for an input value that distinguishes P from P', and repeat the process until no program except P can be induced from the generated examples. We show that the so obtained test set is adequate w.r.t. the alternatives belonging to P. The method is made possible by a practical program induction procedure, which has evolved from recent research in Machine Learning and Inductive Logic Programming.