Part 1. How to read this book
1 Every Thing is a System
2 Systems of Objects
3 Object Road Map
4 Class Taxonomy
5 Requirements Document for the Defect Tracking System Example
Part 2. The Process System
6 The approach to Optimization
7 The Software Development Life Cycle
Part 3. The Test System
8 The Hierarchical Approach
9 Test Environment
10 Test Repository
11 Hierarchical-Incremental Test Suite
12 Conditional Test Suite
13 Integration Test Suite
14 System Component Test Suite
15 Regression Test Suite
16 Test Evaluation
17 Test Standards
Part 4. The Software Development System
18 Development Document
19 Technical Review
20 Software Component
21 The Development Environment
Part 5. TheProject System
22 Project Document
23 Project Plan
24 Project Environment
I was most disappointed when I first read this book because as I flicked through it, I saw many of the diagrams and models that I had conceptualised during my long testing education spread out in front of me on the printed page, all that hard work for nothing.
But I do recommend this book to everyone. It is not an easy book. Judging by the readers' comments on Amazon many people find this book tremendously difficult or overly pompous. I can understand why that might be, but this is the first book I read on testing which properly tried to model the testing process.
It is a difficult book to describe because it is an annotated model of testing. That doesn't sound so hard, there are other books which are models of testing - well, there are other books that describe models of testing, this book is a model of testing and that is both its strongest unique selling point and the attribute that lets it down.
Anyone that has been involved in an object-oriented project will appreciate that an object model is easier to explore and understand when it is accessible via a computer tool which allows the user to traverse the class hierarchies quickly, to click on objects and have their properties available, to drill down through the package diagrams and zoom in to the areas of interest, all under their control. They will also appreciate the difficulty associated with trying to present an object model in a linear form.
If object oriented tools have been used then you can typically do a number of different extracts of different format because each extract is just a view of the model and you can find the view which is most suitable for the reader. Shel Siegel doesn't have that advantage, he has to construct a single view of his model and hope that it works for the majority of readers, sadly it doesn't. But then I'm basing that comment on the various reviews of it I have read dotted around the internet (not just on amazon) and on my initial experiences with the book.
As with any object model the reader first has to learn how to read it. This book is no different. The reader must learn how to read it. Seeking out the models, conceptualising visually the model terrain and then zooming in on the areas of interest, following the links to other part of the model as appropriate. This is hard to do with the book but it pays dividends.
Siegel describe the object oriented techniques and diagrams needed to understand the book but that may not be enough for people unfamiliar with Object Oriented techniques. I suspect it should be, but some readers may prefer a gentler introduction to OO, perhaps Ambler's OO Primer. But the brain loves a challenge and diving straight in to the book after the initial explanations and exploring wildly will pay dividends.
If this book was presented in an electronic form then I have no doubt that many of the reservations that people have with it would vanish, as it too would vanish from the shelves.
Anyone who has tried to model testing already will have a slight advantage when reading the book as they will be expanding their own model and coming to terms with Seigel's Hierarchical model at the same time, and there is a lot of information in here to come to terms with.
There is a lack of linking narrative, because it is a model and not strictly a description of a model. This means that more of the text is actually relevant and it becomes a very dense book. Again this is a strength of the book but a weakness in terms of selling it to the average reader.
I have a great deal of affinity with the book because of its focus on models, yes models are modelled within the book, and the high degree of importance that Siegel attaches to their use.
Processes are treated as objects and described with attributes, methods and relationships to other objects (other processes and test entities). This is a wonderful mechanism for chunking testing and making it more understandable, but paradoxically works better the more you already understand.
The focus on testing object oriented systems is rigidly adhered to and the reader is pointed to other relevant texts for additional information. The recommendations are all good ones and if the reader follows them all then they will have a quality set of software development books on their bookshelf.
Seigel knows his business. Buy this book and dip in and out of it. It explores what we do, why we do it, how we do it and how we can do it better. It will not be the easiest book on testing that you have ever read but I guarantee that you will get more out of it each time you read it and it will become more important to your education the longer you read it.