Software error detection is one of the most challenging problems in software engineering. Now, you can learn how to make the most of software testing by selecting test cases to maximize the probability of revealing latent errors. Software Error Detection through Testing and Analysis begins with a thorough discussion of test-case selection and a review of the concepts, notations, and principles used in the book.
Code-based test-case selection methods
Specification-based test-case selection methods
Additional advanced topics in testing
Analysis of symbolic trace
Each chapter begins with a clear introduction and ends with exercises for readers to test their understanding of the material. Plus, appendices provide a logico-mathematical background, glossary, and questions for self-assessment. Assuming a basic background in software quality assurance and an ability to write nontrivial programs, the book is free of programming languages and paradigms used to construct the program under test.
Review By: Chris A. Grady 09/02/2010This book is an interesting text in which the author states many of the methods discussed in this book are not widely used in the industry. That said, the book does provide interesting insight into some lesser-used methods of error detection allowing the readers to decide where they may or may not want to take their testing program.
This book read more like a college statistics or mathematical text book. It seems as if every other page was presenting some equation to use for test case selection or analysis. I struggled trying to figure out exactly what was being relayed as key information constantly got lost among the various equations and C++ code examples. This book is clearly geared for a college course. The author indicates it is also for practitioners leading quality assurance efforts. I have lead many QA efforts and I cannot see how this would have provided me much use. In the real world, testing is often left for the final stages of development and thus usually receives minimal time for completion. The ideas presented in the text would likely take up a lot of the allotted time just to setup. I can't recommend this for real world implementation as I don't know of a lot of places that have many of the ideas implemented nor the time to implement. I can say, however, mini versions of the ideas are widely in use. The information was presented logically, however, again I was lost with all of the equations presented. The author did attempt to explain them, but the language used was clearly for someone with a technical background.
The weakest part of the book for me was the glossary. I would've elaborated more on all of the ideas presented. The end of chapter discussion and exercises flowed fine with the information provided, yet I kept looking for a common persons entry or discussion point. The author I believe assumes the reader has certain skills that may or may not be present.
I recommend that you read this book, because it does offer a lot of insight and examples that might allow the reader to tweak his current quality systems on a smaller scale. I would also recommend it to college professors and students looking for some insight into furthering their knowledge of test case selection and analysis and some of the behind the scenes calculations. I might also recommend this book for someone starting a new quality assurance program as I do think the information discussed is valuable.