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...

Full description

Bibliographic Details
Main Authors: Pacheo, Carlos, Ernst, Michael D.
Other Authors: Program Analysis
Language:en_US
Published: 2005
Online Access:http://hdl.handle.net/1721.1/30414
Description
Summary: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.