Synopses & Reviews
Unit Testing in Java
How Tests Drive the Code
Johannes Link
With contributions by Peter Fröhlich
Forewords by Erich Gamma and Frank Westphal
"This...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...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 applications based on application servers. This book sheds light on these problems and is a highly welcome contribution to the field of automated unit testing."—Erich Gamma, Co-author of JUnit and Technical Director, Object Technology International
"This book brings together the knowledge that a number of pioneering extreme programmers wish they had when they started applying test-first programming five years ago. If you follow down that route, you will invariably run into testing problems. Even though you are writing your tests first, you will come to halt because you won't see how to test your code. That's natural. Actually, that's the perfect time to reflect. Or to pick up this book and read what Johannes tells us."—Frank Westphal, independent trainer and consultant
Programmers understand that if errors are found at the early stage of a project they can be removed faster and at less cost than at later stages. For a variety of reasons, however, testing has lagged behind in software development practice. Now, complex distributed systems and new software development techniques have brought a resurgent interest in testing. In this book Johannes Link gives clear guidance on how to make tests work for you, and shows how test-driven development works in practice.
Features
*Shows how the discovery and avoidance of software errors is a demanding and creative activity in its own right and can build confidence early in a project.
*Demonstrates how automated tests can detect the unwanted effects of small changes in code within the entire system.
*Discusses how testing works with persistency, concurrency, distribution, and web applications.
*Includes a discussion of testing with C++ and Smalltalk.
Johannes Link is project manager and software developer at andrena objects ag in Karlsruhe, Germany. He came to andrena after years of practical software engineering research at the German Cancer Research Center and the German ABB Corporate Research Center in Ladenburg, Germany. Peter Fröhlich works for Robert Bosch GmbH as a software architect focusing on process improvement, conceptual modeling, and testing.
[Shelving] Java, Programming
1-55860-868-0
Synopsis
Software testing is indispensable and is one of the most discussed topics in software development today. Many companies address this issue by assigning a dedicated software testing phase towards the end of their development cycle. However, quality cannot be tested into a buggy application. Early and continuous unit testing has been shown to be crucial for high quality software and low defect rates. Yet current books on testing ignore the developer's point of view and give little guidance on how to bring the overwhelming amount of testing theory into practice.
Unit Testing in Java represents a practical introduction to unit testing for software developers. It introduces the basic test-first approach and then discusses a large number of special issues and problem cases. The book instructs developers through each step and motivates them to explore further.
*Shows how the discovery and avoidance of software errors is a demanding and creative activity in its own right and can build confidence early in a project.
*Demonstrates how automated tests can detect the unwanted effects of small changes in code within the entire system.
*Discusses how testing works with persistency, concurrency, distribution, and web applications.
*Includes a discussion of testing with C++ and Smalltalk.
About the Author
For 4 years Johannes Link has been project manager and software developer at andrena objects ag in Karlsruhe, Germany. He came to andrena after years of practical software engineering research at the German Cancer Research Center and the German ABB Corporate Research Center. Johannes is responsible for andrena's internal and external training activities and has published articles on software testing and software development. He holds a diploma degree in medical computer science from Heidelberg University.
andrena objects ag, Karlsruhe, Germany.
Table of Contents
Basic Techniques: Introduction. Automating Unit Tests. Basic Steps of the Test-First Approach. Test Ideas and Heuristics. The Inner Life of a Test Framework. Dummy and Mock Objects for Independence. Inheritance and Polymorphism. How Much is Enough?.
Advanced Topics: Persistant Objects. Concurrent Programs. Distributes Applications. Web Applications. Graphical User Interfaces. The Role of Unit Tests in the Software Process. Loose Ends and Opportunities.
Appendix: Notes to JUnit. Unit Tests with Other Programming Languages. Glossary. Bibliography and List of References.