A review of “The Art of Software Testing”

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)

Published by Mike Harris

Mike has been working in testing for 20 years and is the lone tester for Geckoboard. He has been a Test Lead and has also worked as a part of waterfall, lean and agile teams. He has a B.Sc.(HONS) from Middlesex University and is an Associate of the University of Hertfordshire. He has set up and led a Testing Community of Practice and been part of a successful agile transition. He is Vice-Chair of the British Computer Society’s Specialist Interest Group in Software Testing. He also contributed to the e-books Testing Stories and How Can I test This? and has had articles published by the Ministry of Testing, LambdaTest and The QA Lead.

Join the Conversation

3 Comments

Leave a comment

Design a site like this with WordPress.com
Get started