Eclat: Automatic Generation and Classification of Test Inputs
This paper describes a technique that helps a test engineerselect, from a large set of randomly generated testinputs, a small subset likely to reveal faults in the softwareunder test. The technique takes a program or software component,plus a set of normal executionsÂ say, from an existingtest suite, or from observations of the software runningproperly. The technique works by extracting an operationalmodel of the softwareÂ s operation, and comparingeach inputÂ s operational pattern of execution against themodel. Test inputs whose operational pattern is suggestiveof a fault are further reduced by selecting only one inputper such pattern. The result is a small portion of the originalinputs, deemed most likely to reveal faults. Thus, ourtechnique can also be seen as an error-detection technique.We have implemented these ideas in the Eclat tool, designedfor unit testing of Java classes. Eclat generates alarge number of inputs and uses our technique to select onlya few of them as fault-revealing. The inputs that it selectsare an order of magnitude more likely to reveal faults thannon-selected inputs.