Software Testing and Continuous Quality Improvement
This book helps accelerate the development of high quality software using continuous process improvement. The book starts with an overview of basic quality principles and how you can apply the continuous improvement cycle to software testing. It then reviews waterfall lifecycle testing, followed by an extensive RAD testing methodology for client/server and the Internet. The final section provides a comprehensive analysis of modern testing tools.
Review By: Sameer Khanwalker
07/08/2010The book is an excellent treatise on software quality processes. The author states in the introduction that he intends to “provide quality framework in the software testing process in the traditional structured as well as unstructured environments.” The book contains six sections, several appendixes, and a section on exhibits.
The first few sections cover software quality framework, lifecycle testing review, and client/server Internet-testing methodology. There are several templates that provide a framework for preparing test plans, test cases, and checklists.
The book focuses on the spiral testing process, which in itself has been built around the PDCA (Plan Do Check Act) cycle created by Shewhart and made famous by Dr. Deming. The spiral approach focuses on the continual-improvement-phased approach. The PDCA concept was developed originally for the manufacturing industry (the whole quality process was, in fact, originally designed for the manufacturing industry), but the software industry has tried for several years to integrate it into the software quality process. This book does a reasonably good job of weaving the PDCA into the testing process.
Another technique used well and frequently in the book is the “V” model popularized by the IEEE standard for Verification and Validation. The author has a “V” model for the continual-improvement process and uses it almost throughout the book to explain many concepts. There is also an overview of testing techniques. The book contains a useful taxonomy of software testing techniques. There is an exhaustive section on software maintenance, testing during the software maintenance phase, and maintenance testing tools.
The book is excellent reading for students of software engineering and those who are interested in an overview of the software quality process. One of the interesting features of the book is the treatment of Dr. Deming’s principles of quality. Rarely does a book on software quality mention Dr. Deming these days. The book also contains a very detailed section on software testing tools that includes an overview of the features of all tools.
The target audience for the book does appear to be the software process student. Certainly, it is not a book that a modern-day quality professional can pick up and run with. Modern-day software revolves around the Web and there is very little about it in the book. There are many issues that needed treatment and this book would have been ideal had it included them: transaction process management, security, reliability, performance, testing distributed systems…. There are many issues that simply beg a good book.
The current software environment is radically different from ten years ago and a separate process is required for testing. Iterative testing is a very broad-based term. Clear guidelines on analyzing the Web architecture and fitting a test process to it were very much required. Also, white box testing today is a different ball game from what it was in the days of COBOL and C. More information on what techniques a software QA professional should equip himself with to be able to execute his job would have been useful, rather than some redundant information, like a 28-page treatise on data modeling.