Erich Gamma As a professional software developer, I want to develop software as fast as possible, as well as possible, and as stress-free as possible. Automated unit tests help to bring me closer to this goal. They are a small investment, which help me get confidence in the code I produce and maintain later on. When I don't have automated tests, I have to fall back on manual testing. However, manual tests cannot be automatically repeated. Consequently, the stress increases, particularly when they have to be done under time pressure, which isn't, of course, the exception. At the push of a button you can determine at any given time whether or not the last change impacts the fitness of your software. You can do this today, tomorrow, or any time in the future, regardless of whether or not a deadline is knocking at your door. This tutorial by Johannes Link and contributor Peter Fröhlich is a practical introduction to using automated unit tests and the test-first approach in your day-to-day software development. The automation framework used in the tutorial is JUnit. It is a small and simple framework for creating and managing tests. However, more is needed for successful development with unit tests. In fact, a developer has to be familiar with many different testing techniques, in particular when unit tests have to be created in the context of databases or distributed apps based on app servers. This tutorial sheds light on these problems and is a highly welcome contribution to the field of automated unit testing. JUnit itself was also developed with automated unit tests and the test-first approach, as explained in this tutorial. In fact, the techniques were even used under challenging conditions, such as while fighting jet lag or during electric power failures in alpine cabins. Still, the techniques have proven themselves every time. I hope that, thanks to this tutorial, you will become test infected and that in the future you will always be able to give a positive answer to the classical unit test control question, "Where are the unit tests?" Erich Gamma
Co-author of JUnit
Technical Director, Object Technology International