Abstract

I have found this book to be a thoroughly workmanlike and practical guide to a certain type of software testing. That is, I expect both its strength and, arguably, its weakness. Anyone buying this book (and it's not cheap) might expect it to be a fairly all-round review of modern software testing practices but in reality I found restricted in two ways. Firstly, it deals almost exclusively with ‘business application’ testing, taking its example from the world of Web developments and the like. There is thus little coverage of the real-time/high-integrity arena. Secondly, despite the sub-title, it deals little with early-stage testing in the lifecycle, such as unit testing, but focuses almost entirely on testing the finished system. These restrictions are unlikely to lessen the book's appeal in the marketplace because (at a rough guess) 95% of the world's software development is in support of business systems and these are indeed mainly tested only at the application level. I did find the authors' definition of the software lifecycle somewhat at odds with my own. At one point (Chapter 5) I found what I thought was a familiar diagram looking somewhat like the V-model, but when I looked closely I found it was called the ‘bathtub model’ and is really (in my opinion) more a representation of the old waterfall diagram with testing details made more explicit than is usual. So, if you take the authors' understanding of the lifecycle, then their sub-title begins to make sense. Another oddity I encountered was the term ‘static testing’ (Chapter 6), which seemed at first glance to be a contradiction in terms. When the relevant chapter was read closely, it turned out that the authors are using the phrase in a way that corresponds very closely to what we in Europe tend to call validation. So here already are two aspects of the book that had a somewhat disquieting effect but maybe that's just me. For the less easily troubled reader what does it offer? As already mentioned, there is plenty of good stuff here in terms of frameworks for test organization, the need for and practicalities of testing, and some very clear expositions of the principal testing techniques. Apart from Static Testing already mentioned, there are good chapters on Functional Testing, Structural Testing, and Performance Testing. There are chapters on Automated Testing Tools and Analyzing Test Results. The book concludes with a thoroughly worked example and a nod in the direction of testing ‘complex’ systems. The chapter (12) on Analyzing Test Results is a particular strength of the book, as the authors make plain in the introduction, with its unique emphasis on the role of statistics to help you decide how good your testing has been, and to give an indication of the number of defects that may remain still to be discovered. There are a mass of graphs, a few simple formulae, and plenty of examples to coax the reader through some interesting discussion. The value here lies, in my opinion, in what you can additionally gain from data, which, it is hoped, a project would be keeping anyway. The over-arching conceptual framework adopted by the authors for hanging it all together is called SPRAE, which stands for Specification, Premeditation, Repeatability, Accountability, and Economy. These are held up by the authors as the best guiding principles existing for running a testing operation. It is difficult to disagree that these are certainly good principles, although whether I'd use exactly those terms with those meanings is another question. However, if you're new to the business they'll certainly stand you in good stead if you manage to keep them all in focus all the time. I'd probably settle for a reasonable score of 3 out of the 5 and consider I'd done well! The question arises about who would gain most from such a book. I'd pitch this mainly at practitioners rather than students. Although one of the authors is based at the University of Texas, Austin, the book does not have an academic approach or tone. The authors have a practitioner-friendly readable style, and every aspect of the text is well-presented, from the liberal use of examples to the clear diagrams. Another question I am fond of asking about such text books is whether it will age rapidly or whetherits appeal will endure beyond, say, 2 years. In this case I would give the book a life of about 5 years, which is probably fairly good. There are references to products, organizations, and Websites, etc., which you estimate may not be with us in that period of time, but on the whole the subject matter is fairly timeless, and the commonsense approaches to the problem areas are of equally universal relevance. As I am fond of saying, software testing shares with death and taxes the property that ultimately there is no avoiding it, so best get on and do it properly from the start. This book will help you achieve that aim.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call