Practical Software Testing
Based on the needs of software professionals, "Practical Software Testing" takes a unique approach to teaching readers how to effectively plan for testing, design test cases, test at multiple levels, organize a testing team, and optimize use of testing tools. It introduces testing concepts that are managerial-, technical-, and process-oriented, using the Testing Maturity Model (TMM) as a framework.
Features:
- includes a sample test plan, comprehensive exercises, and definitions for software testing and quality
- introduces both technical and managerial aspects of testing in a clear and precise style, for integrated learning
- balanced perspective and comprehensive view of all testing aspects
- uses the TMM framework to introduce testing in a systematic, evolutionary way, and describes industrial TMM applications
- covers testing topics with either procedurally based or object-oriented programming code
With its accessible, practical, and well-focused framework, this new resource provides an integrated presentation of software-testing processes and practices. Professionals and practitioners in software testing, software quality assurance, or software validation and verification will benefit greatly from using this essential resource.
Review By: Harry Acosta
10/24/2005The evolution of the subject matter presented in "Practical Software Testing" follows a well-designed instructional plan, from theory, to practice, to model. Ilene Burnstein's writing style keeps the reader's interest. The way she highlights and emphasizes new concepts, organizes tables, along with her use of simple figures for complex topics, enables the reader to quickly capture the most important ideas with little effort. She provides a nice balance of text and graphics while explaining complex topics with simple graphic depictions. The organization in "Practical Software Testing" emphasizes cumulative knowledge that allows a professor to pick specific chapters for classroom use.
The author outlines some key practical guidelines for testing organization, and provides details about functional testing, stress testing, security, and recovery testing. She also adds the aspect of managing both the testing process and the various positions required for this process to work smoothly.
Excellent detail is given to the critical aspect of software quality and prevention of defects, including the benefits of a defect prevention program when well implemented.
The book provides a concise explanation of the testing maturity model (TMM), assessing the requirements and goals for each level, and follows with details on quantitative process control, reusable processes, and the actual TMM assessment. The sample test plan located in Appendix II is a valuable example to follow for other software projects.
This is the best book I have read on the subject of software testing to date. The flow of the information follows a very logical path and provides a clear and appropriate separation of topics that strategically fits the material. The exercises prove challenging enough for a classroom environment or seasoned professionals, but not too difficult for the leisure reader.
Burnstein outlines a strategy to prevent defects and test failures, and gives a prescription for the best management organization of almost any software project. If followed thoroughly, the cost of testing software is minimized while the impact of defects is reduced significantly.
In summary, I would recommend "Practical Software Testing" to those new to the software testing industry or to people wanting to help a company’s bottom line by achieving a level of TMM suitable to its size and complexity. The book can serve as a background resource as well for the reader who, in addition to software configuration and testing, works on the day-to-day implementation of complex software applications.