There are now three well-known books on the ISTQB syllabus for foundation software testing examinations. This was the first, and the others may have since taken a different emphasis. Originally written in German, the book has been translated into English, and covers basic testing topics.
The difficulty about a testing book is that it will be read by testers, trained to find faults as part of our role in life. This book may to be aimed at the non-English, European market place, following its origins. Some of the translation is `interesting', and is more literal than catching the meaning of the words, so can read in a stilted fashion. Annoyingly, there is reference to `chapters' in the chapter on techniques, when it clearly means `sections' or part-chapters. The discussion of the value of a certified tester in chapter 6 would be better in the introductory chapter 1.
Spillner, Linz and Schaefer are well respected in the testing community, and have written a book that covers the syllabus. However, it is not greatly geared towards the examination; although there are revision questions, these are neither multiple choice, nor are the answers provided. There are also areas where there is significant extension beyond the syllabus content (standards is a case in point - and can probably be correctly attributed to a specific one of the authors).
There is a good glossary of testing terms, and the text clearly identifies items that appear in the glossary. It is useful to not only have web links, but also to specify when the web links were known to be valid. I found the use of a case study that runs throughout the book to be helpful. There are some key thoughts that are well worth remembering; one for me was "Robustness has its costs".
Strangely, I would say that there is both too much code (pseudo-code) present, and too little. It is perfectly possible to pass the ISTQB examination with little or no knowledge of how to read or write code, and references to code in early chapters could have non-coders pressing the panic button. Conversely, any discussion of structural test techniques should have examples of code, as exams routinely have code-based questions concerning techniques. The treatment of statement testing was somewhat shallow, with the cases where there are `empty' branches and non-empty branches barely distinguished. However, the coverage of when to use particular techniques was good and comprehensive.
Discussion in an early chapter postulates determining whether a set is code is ready to exit a particular stage of testing by examining the number of incidents raised per testing hour. It even suggests than when down below 2, it may be time to ship. This is a good notion, but I suspect the numbers are out by some way. To be still finding 2 incidents per testing hour, even on very large, complex systems, would indicate to me that the product is NOT ready for shipping. Additionally, the treatment of cyclomatic complexity is adequate, but this useful measurement is only calculated one way, not using the alternatives that are available (the most straightforward being `the number of decisions + 1').
There is a lot of material covered, and in some places, this appears rather list-like in appearance, unclear when lists are contained in the syllabus, and when not. It is better to say that the book assists candidates in preparation for the ISTQB Foundation, rather than being a direct aid as the sole point of reference. Read it take good things from it and mind the short-comings, but do not use it as your only testing book.
Peter Morgan, Bath, UK (firstname.lastname@example.org)