The Art of Software Testing (2nd Edition) Date: 30 April 2011, 04:11
|
At the time this book was first published, in 1979, it was a well-known rule of thumb that in a typical programming project approximately 50 percent of the elapsed time and more than 50 percent of the total cost were expended in testing the program or system being developed. Today, a quarter of the century later, the same is still true. There are new development systems, languages with built-in tools, and programmers who are used to developing more on the fly. But testing still plays an important part in any software development project. Given these facts, you might expect that by this time program testing would have been refined into an exact science. This is far from true. In fact, less seems to be known about software testing than about any other aspect of software development. Furthermore, testing has been an out-of-vogue subject—it was true when this book was first published and, unfortunately, it is still true today. Today there are more books and articles about software testing, meaning that, at least, the topic has more visibility than it did when this book was first published. But testing remains among the “dark arts” of software development. This would be more than enough reason to update this book on the art of software testing, but there are additional motivations. At various times, we have heard professors and teaching assistants say, “Our students graduate and move into industry without any substantial knowledge of how to go about testing a program. Moreover, we rarely have any advice to provide in our introductory courses on how a student should go about testing and debugging his or her exercises.” So, the purpose of this updated edition of The Art of Software Testing is the same as it was in 1979: to fill these knowledge gaps for the professional programmer and the student of computer science. As the title implies, the book is a practical, rather than theoretical, discussion of the subject, complete with updated language and process discussions. Although it is possible to discuss program testing in a theoretical vein, this book is intended to be a practical, “both feet on the ground” handbook. Hence, many subjects related to program testing, such as the idea of mathematically proving the correctness of a program, were purposefully excluded. Chapter 1 is a short self-assessment test that every reader should take before reading further. It turns out that the most important practical information that you must understand about program testing is a set of philosophical and economic issues; these are discussed in Chapter 2. Chapter 3 discusses the important concept of noncomputer- based code walk-throughs or inspections. Rather than focus attention on the procedural or managerial aspects of this concept, as most discussions do, Chapter 3 discusses it from a technical, how-to-find-errors point of view. The knowledgeable reader will realize that the most important component in the bag of tricks of a program tester is the knowledge of how to write effective test cases; this is the subject of Chapter 4. Chapters 5 and 6 discuss, respectively, the testing of individual modules or subroutines and the testing of larger entities, with Chapter 7 presenting some practical advice on program debugging. Chapter 8 discusses the concepts of extreme programming and extreme testing, while Chapter 9 shows how to use other features of program testing detailed elsewhere in this book with Web programming, including e-commerce systems. This book has three major audiences. Although we hope that not everything in this book will be new information to the professional programmer, it should add to the professional’s knowledge of testing techniques. If the material allows you to detect just one more bug in one program, the price of the book will have been recovered many times over. The second audience is the project manager, since the book contains new, practical information on the management of the testing process. The third audience is the programming or computer science student; the goal here is to expose the student to the problems of program testing and to provide a set of effective techniques. It is suggested that the book be used as a supplement in programming courses such that the student is exposed to the subject of software testing at an early time in his or her education. Glenford J. Myers Tom Badgett Todd M. Thomas Corey Sandler
|
DISCLAIMER:
This site does not store The Art of Software Testing (2nd Edition) on its server. We only index and link to The Art of Software Testing (2nd Edition) provided by other sites. Please contact the content providers to delete The Art of Software Testing (2nd Edition) if any and email us, we'll remove relevant links or contents immediately.
|
|
|