A perennial bestseller, Software Testing: A Craftsman’s Approach, Third Edition has been thoroughly revised and updated to highlight issues such as how Agile and XP development environments have radically changed the role of software testers by making testing integral to every phase of the development process. Coverage also includes model-based and test-driven development, reexamination of all-pairs testing, and explanation of the four contexts of software testing. The author provides new downloadable programs that demonstrate white-box, black-box and other fundamental types testing. This text continues to serve as a valuable reference for software testers, developers, and engineers.
This book has some interesting points. Since it is a very academic book, I found interesting that it starts explaining discrete math topics and graph theory, with focus on software testing. The chapters until Integration Testing are very useful. Another positive point: the book is filled with examples about the topics it covers.
However, there are some tedious chapters, with very biased opinions from the author. Unfortunately, the author also has some misconceptions about Agile, which can be harmful to those who are starting to study Agile software development.
It provides a good overview of software testing and different sorts of testing along with various associated quality and adequacy metrics. In addition, it introduces few advance topics in software testing. However, the code fragments in form of pseudocode (or, is it VB?) leaves much to be desired. Lastly, topics such as state machines and petri-nets seem academic and distant from real-world practice. It would have been helpful to provide concrete real-world examples where these notions were used. Also, covering BDD would have been more helpful.
Maybe best reference for Software Testing. But the problem is Software Testing is still not even a science or approach. That's why this book is like a diary of someone just wrote what he innovated about how test software. For me after reading this book, my conclusion is there are lots of work to do only define what is Software Testing or just give up for testing a software. Which means just need to stop testing a software. Because user feedback and usability will do it.