Books on software testing fall into two basic categories: (1) those that deal with the test process and (2) those that deal with the actual techniques. Most of the more recent books fall into the first category; although there is some degree of crossover in many of the books. This book, however, deals strictly with techniques. The author doesn't dwell on the process or the associated administrative tasks, although he does touch upon them.
Techniques are presented within the context of formal mathematics. This isn't because the material is academic - it's all based on realistic testing scenarios - but, instead, provides you with proven and effective techniques for testing software in a systematic manner. Because many testers have not been exposed to the formal techniques and underlying math, the first section covers the basics: discrete math, set theory and graph theory. Once you've mastered the basics, which are heavily used in the chapters that address the actual techniques, you'll have all the knowledge that you need to go forward.
The remainder of the book is divided into four sections, each of which covers a specific type of testing. These types are: functional, structural, integration and system, and object-oriented testing. For each there are two to three techniques, plus a retrospective on the section that ties everything together. Also, issues and factors associated with each test type, as well as testing in the whole are discussed, giving you a complete picture of the full suite of testing categories.
Overall, this book is well written and illustrated, but requires effort to get through. This isn't a criticism of the author, who did an outstanding job of conveying information and clearly explaining complex concepts and topics, but reflects the depth of the material. In my opinion a copy of this book should be among the top five in any serious software test professional's library.
Techniques are presented within the context of formal mathematics. This isn't because the material is academic - it's all based on realistic testing scenarios - but, instead, provides you with proven and effective techniques for testing software in a systematic manner. Because many testers have not been exposed to the formal techniques and underlying math, the first section covers the basics: discrete math, set theory and graph theory. Once you've mastered the basics, which are heavily used in the chapters that address the actual techniques, you'll have all the knowledge that you need to go forward.
The remainder of the book is divided into four sections, each of which covers a specific type of testing. These types are: functional, structural, integration and system, and object-oriented testing. For each there are two to three techniques, plus a retrospective on the section that ties everything together. Also, issues and factors associated with each test type, as well as testing in the whole are discussed, giving you a complete picture of the full suite of testing categories.
Overall, this book is well written and illustrated, but requires effort to get through. This isn't a criticism of the author, who did an outstanding job of conveying information and clearly explaining complex concepts and topics, but reflects the depth of the material. In my opinion a copy of this book should be among the top five in any serious software test professional's library.