See Also |

## Bibliographical References

Design by Contract and Unit Testing, by Jim Weirich, 2000.
This question/answer article explains that although unit tests and Design by Contract assertions have a lot of overlap, each has a different focus and different strong points. DbC preconditions are useful for checking inter-module correctness. Unit testing and DbC postconditions validate individual module behavior, with unit testing focusing on specific situations and DbC postconditions focusing on general behavior.

| eXtreme Programming eXplained, by K. Beck. Addison-Wesley, 2000. ISBN 0-201-61641-6. The author demonstrates how eXtreme Programming (XP) relies on simplicity, unit testing, programming in pairs, communal ownership of code and customer input on software to motivate code improvement during the development process.

## Related Resources

The Eiffel Zone Software Directory contains many links to Eiffel libraries sorted by category. Also of interest is the Cetus Links Eiffel page and its library section which provides links to numerous open-source and commercial Eiffel libraries.

EiffelUnit is a regression test framework for Eiffel modeled after the JUnit framework designed by Kent Beck and Eric Gamma. EiffelUnit makes it easy to write small unit tests for Eiffel classes with automatic validation. Unfortunately EiffelUnit currently only works with SmartEiffel. EiffelUnit has been developed by Jim Weirich and is distributed under the Eiffel Forum Freeware License.

EiffelTest is a library for testing classes and systems in a thorough and organized way. However EiffelTest currently only works with ISE Eiffel. EiffelTest has been developed by Patrick Schönbach and can be dowloaded from the EiffelShelf FTP site.

Simple Test Framework is based on the IEEE Standard for Software Test Documentation, IEEE 829-1983. It works with ISE Eiffel. Simple Test Framework has been developed by Thomas Beale and can be downloaded from the Eiffel Zone Software Directory page.

ETest is a unit-testing framework for Eiffel. Its advantage compared to getest is that it has a graphical interface. Its disadvantage is that users have to manually "register" routines (under the form of agents) that they want to be executed for the tests whereas getest automatically generates code to make the life of the users easier (and also to be sure that users do not forget any tests). Another disadvantage of ETest is that it currently only works with ISE Eiffel. ETest has been developed by Jonathan Ostroff and can be downloaded from the Eiffel Zone Software Directory page.

## Acknowledgements

Getest has been written after reverse-engineering EiffelUnit from Jim Weirich. A tool to help testing the Gobo Eiffel tools and libraries was needed and EiffelUnit met most of the requirements. However its main drawback is that it only works with SmartEiffel, whereas the Gobo Eiffel tools and libraries need to be tested with all supported Eiffel compilers. It was hence decided to develop the getest tool and its associated Gobo Eiffel Test Library.