Testing is one of the basis to create robust and correct code. O’Reilly has published in its “Beautiful” series a lot of books on different parts of the development process. This is the testing part.
Content and opinions
According to this book, testing has three aspects: testers, process and tools.
Perhaps the biggest issue in testing is getting motivated testers. The first part of the book has only three chapters. I guess there is no silver bullet for getting a beautiful team of testers, it’s mainly about people getting along.
The second part is the one that got the most attention in the book. In retrospective, thanks to this book, I’ve discovered many aspects of testing are never addressed , and I thought that some code couldn’t even be tested. I was obviously very wrong. For instance, testing mathematical code can be done, a chapter gives a pretty good direction to follow. Several chapters address fuzzing and thus an aspect of testing that is mainly done after discovering a flaw (whereas fuzzing may give a shot at fixing the bug before it is discovered), or also software testing over a network. In fact the broad scope of projects that participated in this part gives me hope and shame at the same time (because there are many things I didn’t test for, didn’t anticipate, …).
The last part handles tools that are used during testing. It’s not about the usual xUnit, but more about some of the once-upon-a-time small tools that morphed into one of the pillars of testing in its project, or Open Source tools (valgrind, …) or even others.
A very broad scope of projects, of people and of workflow are depicted inside this book. If there are many beautiful processes out there, there are not so many ways of getting beautiful people inside test teams. Also, it seems that many beautiful tools were mainly small project tools that were written for a simple crude purpose and that were progressively refactored into something more powerful.
I especially liked some chapters in the process part, for instance the statistical one. It’s something very difficult to test, and although the chapter doesn’t solve the ultimate issue of statistics, it helps creating something that looks like real random tests.
Also, I won’t see Q&A the same way now.