This text offers a comprehensive and integrated approach to software quality engineering. By following the author's clear guidance, readers learn how to master the techniques to produce high-quality, reliable software, regardless of the software system's level of complexity.
The first part of the publication introduces major topics in software quality engineering and presents quality planning as an integral part of the process. Providing readers with a solid foundation in key concepts and practices, the book moves on to offer in-depth coverage of software testing as a primary means to ensure software quality; alternatives for quality assurance, including defect prevention, process improvement, inspection, formal verification, fault tolerance, safety assurance, and damage control; and measurement and analysis to close the feedback loop for quality assessment and quantifiable improvement.
The text's approach and style evolved from the author's hands-on experience in the classroom. All the pedagogical tools needed to facilitate quick learning are provided:
Figures and tables that clarify concepts and provide quick topic summaries
Examples that illustrate how theory is applied in real-world situations
Comprehensive bibliography that leads to in-depth discussion of specialized topics
Problem sets at the end of each chapter that test readers' knowledge
This is a superior textbook for software engineering, computer science, information systems, and electrical engineering students, and a dependable reference for software and computer professionals and engineers.
Review By: Mary Ann Overbaugh 11/11/2005Now that quality assurance and testing are being placed on an equal par with development efforts, there are many more books being written on the subject. "Software Quality Engineering" covers most quality assurance basics well, but this book goes much further to provide quality techniques and give mathematical expression to complex computing test strategies.
"Software Quality Engineering" defines how to gain the most advantage from the material in the book, includes a discussion defining QA, how QA activities fit into the various software development lifecycle processes.
Author Jeff Tian discusses software testing, most of which revolves around different approaches to testing such as boundary testing, state-based testing, and interactive testing. There are some very specific testing techniques within the chapter, which the author explains when and how to employ them. Tian also covers important parallel QA techniques beyond testing that go hand in hand to produce quality products.
It is not until the latter part of the book that he talks about how the verification process (defect prevention) supports the validation (defect detection) steps. The proper uses of appropriate techniques can be applied to block, prevent, and identify defects during the QA preventive steps or during the testing process itself.
"Software Quality Engineering" provides expressive mathematical tools for quality test processes to professionals who must report their findings metrically. Those of rational persuasion will delight in the many analytical techniques and equations liberally used to express mathematical relationships and ideas. There are many statistical approaches to less common types of testing, such as statistical and usage-based Web testing, with almost all of the techniques explained mathematically.
In summary, the author explains how different QA alternatives can be used to metrically support, prove, and enhance process outcomes and product quality. He suggests reviewing textbooks on mathematics and statistics for an understanding of algebra and set theory, Boolean logic and graph theory, along with an understanding of finite state. Thus this book was not meant for the novice.
The theoretical discussions of quality models and defect classification are interesting. One chapter provides detailed information on control flow, data flow, and data dependency testing, while another chapter deals with testing techniques for adaptation, specialization, and integration--an especially good treatment of testing techniques and considerations for large-scale testing efforts.
If you are statistically oriented and mathematically inclined, and you need to control or express the results of your quality process metrically, this book can help you manage your process, categorize your defects, and measure results. Many of the analysis activities, if used correctly, will provide feedback and useful information that can be used to help manage software quality engineering testing efforts.