Daistish: systematic algebraic testing for OO programs in the presence of side-effects

Daistish is a tool that performs systematic algebraic testing similar to Gannon's DAISTS tool [2]. However, Daistish creates effective test drivers for programs in languages that use side effects to implement ADTs; this includes C++ and most other object-oriented languages. The functional approach of DAISTS does not apply directly in these cases. The approach in our work is most similar to the ASTOOT system of Doong and Frankl [1]; Daistish differs from ASTOOT by using Guttag-style algebraic specs (functional notation), by allowing aliasing of type names to tailor the application of parameters in test cases, and by retaining the abilities of DAISTS to compose new test points from existing ones. Daistish is a Perl script, and is compact and practical to apply. We describe the implementation and our experiments in both Eiffel and C++. Our work has concentrated on solving the semantics-specific issues of correctly duplicating objects for comparison; we have not worked on methods for selecting specific test cases.Daistish consists of a perl script and supporting documentation. The current distribution can be obtained via WWW at URLhttp://www.cs.unc.edu/~stotts/Daistish/