A Good Text and Reference for Software Testing
Vahid Garousi
Software Testing and Quality Assurance: Theory and Practice, by Sagar Naik and Piyu Tripathy, ISBN-20: 0471789119, ISBN-13: 978-0471789116, John Wiley & Sons, 2008
We’re entering a golden age of software testing. The increasing competitiveness and complexity of software systems, the growing dominance of Web-based software, the ubiquity of embedded software, and the increase in security vulnerabilities—all are contributing to software problems that force the industry to spend dramatically more resources on software testing.
Many authors have written software testing books. One early classic on the topic is Boris Beizer’s Software System Testing and Quality Assurance, published by Van Nostrand Reinhold in 1984. In December 2008, a Google book search for “software testing” returned 624 titles on the subject. I’ve been surprised, as both a testing researcher and an educator, to see at least three high-quality books software testing books published in the past year: Foundations of Software Testing by Aditya P. Mathur (Pearson Education), Introduction to Software Testing by Paul Ammann and Jeff Offutt (Cambridge University Press), and this book by Sagar Naik and Piyu Tripathy.
Concise and Useful
The table of contents shows the book’s logical order. I especially appreciated the presentation of testing’s theoretical foundations in chapter 2, because this topic is less discussed and less familiar, even to many experienced testers. Different test techniques follow the theoretical material: unit testing, control-flow testing, data-flow testing, domain testing, and so on. Clear examples throughout book help readers understand the material. Each chapter concludes with a list of reference papers for readers who want more comprehensive resources.
The last few chapters focus on advanced but very practical topics such as test team organization, software quality attributes and standards, and test process maturity models. The authors have also set up a useful companion website, which includes a set of PowerPoint Slides and the solution manual for instructors who are using the book. The website also maintains a list of errata.
The authors briefly discuss the JUnit framework for unit testing, but I was expecting more on different testing tools—for example, functional, mutation, or even performance testing tools. Both students and testing practitioners could benefit from including cutting-edge tools used in the market.
I believe the book would be suitable as a textbook for an advanced 4th-year undergraduate or a graduate level course on software testing and quality assurance for software engineering students. It might also serve as a reference for software development or software management courses. It’s a good resource for both practitioners and researchers in the subject area.
I’ve recently had the chance to look at and quickly compare the three recent testing books I mentioned earlier: Mathur’s, Ammann and Offutt’s, and now Naik and Tripathy’s. A systematic comparison of them would require much more effort, which wasn’t feasible for me and so remains to be done. All three books are well written by leaders in the field. I believe different people will come up with different conclusions as to which book is the best. However, Naik and Tripathy have made a good contribution to the collection of resources emerging on this topic. I recommend the book to all testers.
Happy testing!
Vahid Garousi is an assistant professor of software engineering in the University of Calgary’s Schulich School of Engineering. Contact him at vgarousi@ucalgary.ca; www.enel.ucalgary.ca/~vgarousi.