Pragmatic Software Testing
Testing even a simple system can quickly turn into a potentially infinite task. Faced with tight costs and schedules, testers need to have a toolkit of practical techniques combined with hands-on experience and the right strategies in order to complete a successful project. World-renowned testing expert Rex Black provides you with the proven methods and concepts that test professionals must know. He presents you with the fundamental techniques for testing and clearly shows you how to select and apply successful strategies to test a system with budget and time constraints.
Black begins by discussing the goals and tactics of effective and efficient testing. Next, he lays the foundation of his technique for risk-based testing, explaining how to analyze, prioritize, and document risks to the quality of the system using both informal and formal techniques. He then clearly describes how to design, develop, and, ultimately, document various kinds of tests. Because this is a hands-on activity, Black includes realistic, life-sized exercises that illustrate all of the major test techniques with detailed solutions.

Review By: Harry Acosta
01/18/2008Pragmatism, according to one of the many definitions found on the Web means a method in philosophy where value is determined by practical results. That is where the real value of this book is, as applicable to software development and testing. It is written in simple and concise enough language that at some point in time I thought the title should have been 'Software Testing for Dummies.' Yet the exercise chapters will make some of the experienced software quality engineers think.
From the way that the subject matter is handled and without reading about the author's background, the reader can easily tell that there are many years of experience, not only theory, behind the knowledge that is being transferred. The graphics and overall presentation is excellent and easy to follow.
This book brings common sense and organization to a task that is, most of the time, hard to optimize, especially because the testing requirements and complexity can outgrow the groups involved in software testing. I especially like the chapters on how to optimize and reduce the testing required by implementing a quality risk analysis strategy. This book can easily be used as the textbook of a short course or seminar on software testing strategies.
The book's approach is as pragmatic as the title implies but also versatile enough for readers involved in the implementation of software applications rather than development. Its advice can provide assistance and some basic understanding during the preparatory work prior to an implementation. Looking at it from the manufacturing and services perspective, the book does not explain much beyond a solution fit for the needs of the customer and the testing requirements for this solution. It also does not provide advice on what additional tasks are required in order to successfully implement a software solution, such as physical and logical system design, change management strategy, training plans, operational impact assessments, as well as other computer system lifecycle documents that are produced by quality assurance professionals to ensure a smooth transition and minimal impact to business metrics and throughput for manufacturing environments. This could be the scope of another book.
For the next edition, I would suggest the author expand on the application of these principles to the manufacturing and service enterprises, especially those that are highly regulated by the Food and Drug Administration.