The Art of Software Testing is a book that I often refer to. The book contains valuable views on how to approach testing and clear descriptions of some test case design methodologies. It was first published in 1979 by Glenford J. Myers and an updated third edition was published in 2012.
The book starts with “a self-assessment test” to define the test cases for a simple program and shows how difficult it is to define all the test cases for the program.
The chapter “The Psychology and the Economics of Testing” starts by discussing some definitions of testing, and argues that the most appropriate definition is that “testing is the process of executing a program with the intent of finding errors”[1]. The implications of this being the definition of testing are then explored, for instance, it means that a successful test is a test that fails. It is useful to consider how this definition of quality works in your context as this can help you develop your own testing philosophy.
Myers then discusses whether it is possible to test a program to find all of its errors. He does the maths and shows that it is not possible to exhaustively test a simple program using black-box or white-box testing.
Ten testing principles are then defined. The tenth principle is that “testing is an extremely creative and intellectually challenging task”[2].
The key issue of testing is “What subset of all possible test cases has the highest possibility of detecting the most errors?”[3]. Several methodologies are described for designing test cases for both black-box and white-box testing, this includes useful descriptions of both equivalence partitioning and boundary value analysis.
“A software error occurs when the program does not do what its end user reasonably expects it to do”[4]. Testing designed to find these errors is described as high-order testing. These types of errors would not necessarily be found by unit testing.
The book also includes chapters about code inspections and walkthroughs, debugging and unit testing.
The 2012 edition contains several new chapters.
It includes a new chapter on usability testing, which contains a useful list of questions that can be used to drive testing considerations[5].
There is a new chapter on testing in the agile environment, which contains an interesting overview of extreme programming and testing[6].
There are also new chapters on testing internet applications and mobile application testing.
The approach to testing described in The Art of Software Testing was relevant in 1979 and is still relevant today. That this approach has been relevant for so long means that it will continue to be relevant. This is a book that is very useful, and I would encourage all testers to read it.
References:
[1]The Art of Software Testing, 3rd Edition by Glenford J. Myers, Corey Sandler and Tom Badgett (2012, p6)
[2]The Art of Software Testing, 3rd Edition by Glenford J. Myers, Corey Sandler and Tom Badgett (2012, p18)
[3]The Art of Software Testing, 3rd Edition by Glenford J. Myers, Corey Sandler and Tom Badgett (2012, p41)
[4]The Art of Software Testing, 3rd Edition by Glenford J. Myers, Corey Sandler and Tom Badgett (2012, p113)
[5]The Art of Software Testing, 3rd Edition by Glenford J. Myers, Corey Sandler and Tom Badgett (2012, p113)
[6]The Art of Software Testing, 3rd Edition by Glenford J. Myers, Corey Sandler and Tom Badgett (2012, p179)
This book serves as a reminder that testing is not merely a mechanical procedure, but an art that requires expertise, critical thinking, and a commitment to delivering software that meets or exceeds user expectations. Thanks, Mike for talking about this awesome book! https://www.reliablegroup.com/services/software-testing-and-qa/
LikeLike