Supplemental files and examples for this book can be found at http://examples.oreilly.com/9780596159825/. Please use a standard desktop web browser to access these files, as they may not be accessible from all ereader devices.
All code files or examples referenced in the book will be available online. For physical books that ship with an accompanying disc, whenever possible, weve posted all CD/DVD content. Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to .
I dont think Beautiful Testing could have been proposed, much less published, when I started my career a decade ago. Testing departments were unglamorous places, only slightly higher on the corporate hierarchy than front-line support, and filled with unhappy drones doing rote executions of canned tests.
There were glimmers of beauty out there, though.
Once you start seeing the glimmers, you cant help but seek out more of them. Follow the trail long enough and you will find yourself doing testing that is:
Fun
Challenging
Engaging
Experiential
Thoughtful
Valuable
Or, put another way, beautiful.
Testing as a recognized practice has, I think, become a lot more beautiful as well. This is partly due to the influence of ideas such as test-driven development (TDD), agile, and craftsmanship, but also the types of applications being developed now. As the products we develop and the ways in which we develop them become more social and less robotic, there is a realization that testing them doesnt have to be robotic, or ugly.
Of course, beauty is in the eye of the beholder. So how did we choose content for Beautiful Testing if everyone has a different idea of beauty?
Early on we decided that we didnt want to create just another book of dry case studies. We wanted the chapters to provide a peek into the contributors views of beauty and testing. Beautiful Testing is a collection of chapter-length essays by over 20 people: some testers, some developers, some who do both. Each contributor understands and approaches the idea of beautiful testing differently, as their ideas are evolving based on the inputs of their previous and current environments.
Each contributor also waived any royalties for their work. Instead, all profits from Beautiful Testing will be donated to the UN Foundations Nothing But Nets campaign. For every $10 in donations, a mosquito net is purchased to protect people in Africa against the scourge of malaria. Helping to prevent the almost one million deaths attributed to the disease, the large majority of whom are children under 5, is in itself a Beautiful Act. Tim and I are both very grateful for the time and effort everyone put into their chapters in order to make this happen.
How This Book Is Organized
While waiting for chapters to trickle in, we were afraid we would end up with different versions of this is how you test or keep the bar green. Much to our relief, we ended up with a diverse mixture. Manifestos, detailed case studies, touching experience reports, and war stories from the trenchesBeautiful Testing has a bit of each.
The chapters themselves almost seemed to organize themselves naturally into sections.
Part I, Beautiful Testers
Testing is an inherently human activity; someone needs to think of the test cases to be automated, and even those tests cant think, feel, or get frustrated. Beautiful Testing therefore starts with the human aspects of testing, whether it is the testers themselves or the interactions of testers with the wider world.
Linda Wilkinson brings her unique perspective on the testers psyche.
Rex Black has been satisfying stakeholders for 25 years. He explains how that is beautiful.
Open source projects live and die by their supporting communities. Clint Talbert and Martin Schrder share their experiences building a beautiful community of testers.
Think performance testing is all about measuring speed? Scott Barber explains why, above everything else, beautiful performance testing needs to be collaborative.
Part II, Beautiful Process
We then progress to the largest section, which is about the testing process. Chapters here give a peek at what the test group is doing and, more importantly, why.
To Kamran Khan, beauty in office suites is in hiding the complexity. Fuzzing is a test technique that follows that same pattern.
Brian Nitz and Emily Chen believe that how you track your test cases and bugs can be beautiful. They use their experience with OpenSolaris to illustrate this.
Remko Tronon is deeply involved in the XMPP community. In this chapter, he explains how the XMPP protocols are tested and describes their evolution from ugly to beautiful.
Working at Microsoft, Alan Page knows a thing or two about large-scale test automation. He shares some of his secrets to making it beautiful.
Beauty has always been central to the development of Python. Neal Noritz, Michelle Levesque, and Jeffrey Yasskin point out that one aspect of beauty for a programming language is stability, and that achieving it requires some beautiful testing.
John D. Cook is a mathematician and applies a classic definition of beauty, one based on complexity and unity, to testing random number generators.
Testing code that has not changed is neither efficient nor beautiful, says Murali Nandigama; however, change-centric testing is.
Karen N. Johnson shares how she tested a piece of medical software that has had a direct impact on her nonwork life.
Chris McMahon was a professional musician before coming to testing. It is not surprising, then, that he thinks beautiful testing has more to do with jazz bands than manufacturing organizations.