| Swing Extreme Testing | ||
|---|---|---|
| Author | Tim Lavers, Lindsay Peters | ![]() |
| Publisher | Packt Publishing / Birmingham | |
| First published | May 2008 | |
| Pages | 306 | |
| ISBN | 978-1-847194-82-4 | |
| List price | €30.99 (Ordering / Product information) | |
Software development is an expensive process and one of the most costly components in it is maintenance. This is an oddity, since software is not actually subject to wear and tear. It is however prone to error or malfunction and having to fix bugs in already deployed software is what can cause costs to explode.
In that respect, bugs are like aging wine. The older they get, the more expensive, they become. This makes it desirable to catch them as early as possible, by rigorously testing code before it makes it's way into a finished product.
Testing program code seems like a trivial thing to do and this is certainly true for isolated pieces of it. Complete software projects however, do not consist of isolated, but of integrated code. Testing by simply printing debug messages to the console quickly becomes unmanageable here, especially if bugs are introduced through the interaction of individual components, which worked fine by themselves.
For large systems, complete testing methodologies are required instead of ad-hoc methods. Such methodologies must be easy understand, easy to implement and able to run automatically without human supervision.
In "Swing Extreme Testing", Tim Lavers and Lindsay Peters introduce the reader to the Grand Test Auto framework and especially how it can be used to test-drive GUI applications as part of the quality assurance process.
Structure and Content
"Swing Extreme Testing" is structured in a large number of rather short chapters, taking into account, that complex systems are usually build from small, individual components, which can each fail and therefore need testing in their own particular ways.
The chapters themselves mostly do not rely on and can be read separate from each other, making "Swing Extreme Testing" primarily a reference book for testing methodology, using the Grand Test Auto framework.
Chapter one starts with motivation for and outlining of product testing as well as an introduction to methodology. Chapter two then moves on by showing how to test a toy class in order to provide an example of the concept.
Chapter three and four each deal with getting the application ready for being tested by GTA as well as providing the drivers, which will simulate user input. These two chapters are the foundation, later chapters will rely upon.
Chapters five to eighteen are each dedicated to one aspect of an interactive application, which needs to be tested, including elusive topics such as networking and multi threading. These chapters can be read in any order.
For those readers not already familiar with Grand Test Auto, an introduction to this framework is given in chapter nineteen.
The final chapter of the book discusses elusive bugs, which are hard to test for and how to discover them anyway.
Conclusion
"Swing Extreme Testing" focuses on catching bugs in GUI applications. It does however not, even though the title suggests otherwise, limit itself to just this topic. The methodology laid out in the book can easily be used to test non GUI applications as well.
Through the course of the chapters, it becomes obvious, that Tim Lavers and Lindsay Peters have vast experience with all the ways, in which an interactive application can fail and how to write quality assurance tests, safeguarding against deploying a faulty product. The motivation for each chapter is written clearly and concise, helping to defeat the impression, that the authors occasionally seem to take their testing approach a bit over the top.
One issue, I have with "Swing Extreme Testing" is, that readers, not familiar with the Grand Test Auto framework will likely find themselves having to read the book twice, as the actual GTA framework is described in the second to last chapter.
I would recommend this book to every Java developer, who understands the importance of software quality assurance and is in search of a suitable methodology.

