Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement / Edition 1

Hardcover (Print)
Rent from
(Save 59%)
Est. Return Date: 10/27/2014
Buy Used
Buy Used from
(Save 41%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $18.15
Usually ships in 1-2 business days
(Save 84%)
Other sellers (Hardcover)
  • All (17) from $18.15   
  • New (11) from $49.36   
  • Used (6) from $18.15   


The one resource needed to create reliable software

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.

Read More Show Less

Editorial Reviews

From the Publisher
" … seasoned throughout with practical experience and examples … these combine to give a well-balanced feel overall which is really quite satisfying." (Software Testing, Verification and Reliability, June 2006)
Read More Show Less

Product Details

  • ISBN-13: 9780471713456
  • Publisher: Wiley
  • Publication date: 2/28/2005
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 440
  • Sales rank: 1,206,694
  • Product dimensions: 7.28 (w) x 9.98 (h) x 1.08 (d)

Meet the Author

JEFF TIAN, PHD, is Associate Professor in the Department of Computer Science and Engineering at Southern Methodist University in Dallas, Texas. He previously worked at IBM SWS Toronto Lab. He has an MS from Harvard University and a PhD in computer science from the University of Maryland. Dr. Tian was awarded the title of "Asian American Engineer of the Year" at National Engineers Week 2002.

Read More Show Less

Read an Excerpt

Software Quality Engineering

Testing, Quality Assurance, and Quantifiable Improvement
By Jeff Tian

John Wiley & Sons

ISBN: 0-471-71345-7

Chapter One


Computers and software systems are becoming ubiquitous in modern society. Worldwide users rely on individual and interconnected computers, as well as the global information infrastructure, such as the Internet and the World Wide Web (WWW), to fulfill their needs for information processing, storage, search, and retrieval. All these needs are met with the support of the underlying software. This reliance requires the software to function correctly over a long time, to be easy to use, and so on. In general, such requirements for high quality need to be satisfied by the people involved in the development and support of these software systems through various quality assurance activities, and the claims for high quality need to be supported by evidence based on concrete measurements and analyses. This chapter introduces various concepts related to quality, quality assurance (QA), and quality engineering, and outlines the contents of this book.


In general, people's quality expectations for software systems they use and rely upon are two-fold:

1. The software systems must do what they are supposed to do. In other words, they must do the right things. 2. They must perform these specific tasks correctly or satisfactorily. In other words, they must do the things right.

The former requires that the software be the "right software", or perform the right functions. For example, an airline reservation system is supposed to handle reservations, not intended to fly airplanes automatically. The focus of the related activities is to validate the required software functions under their intended operational environment. The latter requires that the software systems perform their intended functions without problems. In the airline reservation system example, the system should help travel agents or individual travelers make valid reservations within a pre-specified time limit, instead of making invalid ones, taking too long to make a reservation, or refusing to make reservations without proper justification. The focus of the related activities is to verify that the implemented software functions operate as specified.

Main tasks for software quality engineering

As the main topics of this book, the tasks for software QA and quality engineering are to ensure software quality through the related validation and verification activities. These activities need to be carried out by the people and organizations responsible for developing and supporting these software systems in an overall quality engineering process that includes:

quality planning; execution of selected QA or software validation and verification activities; measurement and analysis to provide convincing evidence to demonstrate software quality to all parties involved.

In particular, customers and users need to have the assurance that their quality expectations are satisfied by the delivered software systems. The overall experience and lessons learned in delivering such high-quality software systems can be packaged into the software quality engineering process for quantifiable quality improvement in future development projects or to provide better product support.

When viewed from a different angle, the negative impact of software problems is also increasing, accompanying the pervasive use of and reliance on software systems in modern society. The problems could be associated with performing wrong functions, or performing intended functions incorrectly, thus causing unintended consequences. We would like to see such negative impact be eliminated, if possible. However, due to the increasing demand for automation, additional functionality and convenience by modern society to the computer and software systems, and due to the ubiquitous nature of modern computer, software, and information infrastructure, the size and complexity of modern software systems have also increased steadily. This increase in size and complexity also has unintended consequences in terms of causing quality problems.

Quality problems in large software systems

Many software systems nowadays are highly complex and contain millions of lines of source code. Examples of such large software systems can be found in virtually every product segment or every application domain, from various operating systems, such as commonly used versions of the Microsoft Windows and UNIX operations systems, to commercial software products, such as database products, to aviation and in-flight entertainment software used on Boeing 777, to defense related software systems, such as various command/ communication/control (CCC) systems.

Such large and complex systems typically involve hundreds or even thousands of people in their development over months or even years, and the systems are often to be operated under diverse, and sometimes unanticipated, application environments. One may argue that some systems are unnecessarily large and complex. According to (Wirth, 1995), such "fat software" may be caused by indiscriminately adding non-essential features, poor design, improper choices of languages and methodologies, which could be addressed by disciplined methodologies and return to essentials for "lean software". Various QA techniques, including many of those covered in this book, can help produce high-quality, lean software.

However, there is no "silver bullet", or an all powerful and effective solution to the size, complexity, quality, and other software engineering problems, due to the fundamental requirements and constraints that a software system must satisfy (Brooks, 1987). Accompanying the size and complexity problems are the many chances for other problems to be introduced into the software systems. Therefore, dealing with problems that may impact customers and users negatively and trying to manage and improve software quality are a fact of life for people involved in the development, management, marketing, and operational support of most modern software systems.

Testing, quality assurance (QA), and quality engineering

The above factors make it virtually impossible or practically infeasible to achieve the complete prevention or elimination of software problems and related negative impact. Consequently, various software QA activities are carried out to prevent or eliminate certain classes of problems that lead to such negative impact, or to reduce the likelihood or severity of such negative impact when it is unavoidable. This book systematically describes topics and issues related to these software QA activities, with an emphasis on the technical aspects.

Software testing plays a central role among the software QA activities. By running the software system or executing its prescribed functions, testers can determine if the observed system behavior conforms to its specifications or requirements. If discrepancies exist between the two, follow-up actions can be carried out to locate and remove the related problems in software code, which may also include modifying the software design. Therefore, the detection and removal of defects through testing help reduce the number of defects in delivered software products, thus helping to achieve the quality goals. Even if no discrepancy is observed, the specific instances can be accumulated as evidence to demonstrate that the software performs as specified. Consequently, testing is the most frequently used means to assure and to demonstrate software quality. A substantial part of this book is devoted to software testing, with an emphasis on commonly used techniques that have proven to be effective in various practical application environments.

Beyond testing, there are many other QA alternatives supported by related techniques and activities, such as inspection, formal verification, defect prevention, and fault tolerance. Inspection is a critical examination of software code or other artifacts by human inspectors to identify and remove problems directly, without resorting to execution. Fault tolerance prevents global system failures even if local problems exist, through various redundancies strategically designed and implemented into the software systems. Other QA techniques employ specific means to assure software quality. This book also provides a comprehensive coverage of these topics.

In addition, all these QA activities need to be managed in an engineering process we call the software quality engineering process, with quality goals set early in the product development, and strategies for QA selected, carried out, and monitored to achieve these preset quality goals. As part of this overall process, data collected during the QA activities, as well as from the overall development activities, can be analyzed to provide feedback to the software development process for decision making, project management, and quantifiable quality improvement. This book also provides a comprehensive coverage of these topics.


Figure 1.1 illustrates the general scope of the topics introduced above: Testing is an important subset of QA activities; and QA is an important subset of quality engineering activities. This diagram also explains our book title: "Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement". This book is organized in four major parts and 22 chapters, with the main topics outlined below.

Part I: Overview and Basics

Part I gives a general introduction and overview of the topics covered in the book, and presents the basic concepts and definitions related to quality, QA, testing, quality engineering, etc. Specific questions answered include:

About this book: What is it? How to use it? How is it organized? In addition, what background knowledge is needed to have a thorough understanding of the technical aspects of this book? These questions are answered in Chapter 1. What is software quality? In particular, what are the different views of quality? Is quality a single, atomic concept, or does it consist of many different attributes or characteristics? What is the relationship between quality, correctness, and defect? Can we narrow down the definition of quality to better focus our attention on various QA activities commonly carried out during software life cycles? These questions are answered in Chapter 2. What is QA? The question is answered from a particular perspective in Chapter 3, representing a defect-based interpretation of quality and QA. What are the different QA activities and related techniques? A defect-based classification is presented, also in Chapter 3, for the major QA alternatives and techniques, such as testing, inspection, formal verification, fault tolerance, and so on. How to fit the different QA activities into the software development processes? What about other frameworks to classify QA activities? These questions are answered in Chapter 4. The QA activities are broadened in Chapter 5 into quality engineering that includes quality planning prior to specific QA activities and measurement, analysis, and feedback activities to close the loop for quality assessment and quantifiable improvement.

Part II: Software Testing

Part II deals with all the important topics related to software testing, with an emphasis on commonly used testing techniques that have proven to be effective and efficient in many practical application environments. The chapters in this part are organized into two subparts: Descriptions of specific testing techniques (Chapters 8 through 11) are surrounded by chapters on the general issues of testing (Chapters 6, 7, and 12). Individual chapters are described below:

General questions, issues, terminology about testing, including the generic testing process and a taxonomy for testing, are discussed in Chapter 6. The major testing activities, people's roles and responsibilities in these activities, test management, and test automation issues are covered in Chapter 7. Checklist and partition-based testing: Chapter 8 starts with the simplest testing of them all, ad hoc testing, then progresses to more organized testing using simple models such as lists and partitions. Specific testing techniques covered in Chapter 8 include:

- testing with different types of general checklists; - decision and predicate testing; - usage-based statistical testing using flat operational profiles. Boundary testing: As a special case and extension of partition testing, we cover boundary testing in Chapter 9. Application of boundary testing ideas in other testing situations is also covered. State-based testing: Both the finite-state machines (FSMs), which serve as the basis for state-based testing, and the augmented FSMs, which form Markov chains for more in-depth usage-based statistical testing, are covered in Chapter 10. Interaction testing: Instead of focusing on individual partitions or states, the testing techniques described in Chapter 11 deal with the interactions along a complete execution path or a dependency slice. Specifically, this chapter covers the following traditional testing techniques: - control-flow testing (CFT); - data-flow testing (DFT). Chapter 12 discusses application of specific testing techniques for specific testing tasks in different sub-phases or in specialized tasks. The integration of different testing techniques to fulfill some common purposes is also discussed.

Part III: Quality Assurance Beyond Testing

Part III covers important QA techniques other than testing, including the ones described below, and a comparison of all the QA alternatives at the end.

Various defect prevention techniques are described in Chapter 13. Software inspection, or critical examination of software artifacts by human inspectors, is described in Chapter 14. Formal verification of program correctness with respect to its formal specifications is covered in Chapter 15. Fault tolerance techniques that prevent failures through some redundancy or duplication are discussed in Chapter 16. Related techniques based on similar ideas, such as failure containment to minimize failure impact, are also discussed in Chapter 16. Some program analysis techniques, specifically static analyses, are also covered in Chapter 14 in connection to inspection. Related topics on dynamic program analyses are briefly covered in Chapter 12 in connection to specialized testing techniques. Comparison of different QA alternatives and techniques, including those covered in Part III as well as testing covered in Part II, is presented in Chapter 17.

Part IV: Quantifiable Quality Improvement

Part IV covers the important activities carried out in parallel or as follow-up to the main QA activities described in Part II and Part III. The purpose of these activities is to monitor the QA activities to provide quantitative quality assessment and feedback to the quality engineering process. Such assessment and feedback can be used to help with decision making, project management, and various improvement initiatives. The main contents of the specific chapters in this part are described below:

First, the parallel and follow-up activities, as well as the collection and usage of the raw and processed data in related analyses to provide specific feedback for various purposes, are described in Chapter 18. Chapter 19 describes different models and measurements for quality assessment and improvement, and classifies them according to the information provided and the specific types of data required. Defect classification and analysis models are described in Chapter 20, as an important sub-class of quality assessment models that focuses on the collection and analysis of detailed defect information. Further analysis of the discovered defects and other measurement data from QA and overall development activities can be carried out to identify high-risk or high-defect areas for focused remedial actions aimed at effective quality improvement. Various risk identification techniques and related models for doing this are presented in Chapter 21. As an alternative to the defect-based view of quality that is closer to the developers' perspective, reliability is a quality measure that is closer to the users' perspective and more meaningful to target customers. Chapter 22 presents software reliability models and analysis techniques to provide reliability assessments and guidance for reliability improvement.


The integration of the interconnected chapters is an important feature of this book. We next examine the topic and chapter dependencies, and discuss different ways that these topics can be combined for different readers with different purposes in mind.


Excerpted from Software Quality Engineering by Jeff Tian Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Read More Show Less

Table of Contents

List of Figures.

List of Tables.



1 Overview.

1.1 Meeting People's Quality Expectations.

1.2 Book Organization and Chapter Overview.

1.3 Dependency and Suggested Usage.

1.4 Reader Preparation and Background Knowledge.


2 What Is Software Quality?

2.1 Quality: Perspectives and Expectations.

2.2 Quality Frameworks and ISO-9126.

2.3 Correctness and Defects: Definitions, Properties, and Measurements.

2.4 A Historical Perspective of Quality.

2.5 So, What Is Software Quality?


3 Quality Assurance.

3.1 Classification: QA as Dealing with Defects.

3.2 Defect Prevention.

3.2.1 Education and training.

3.2.2 Formal method.

3.2.3 Other defect prevention techniques.

3.3 Defect Reduction.

3.3.1 Inspection: Direct fault detection and removal.

3.3.2 Testing: Failure observation and fault removal.

3.3.3 Other techniques and risk identification.

3.4 Defect Containment.

3.4.1 Software fault tolerance.

3.4.2 Safety assurance and failure containment.

3.5 Concluding Remarks.


4 Quality Assurance in Context.

4.1 Handling Discovered Defect During QA Activities.

4.2 QA Activities in Software Processes.

4.3 Verification and Validation Perspectives.

4.4 Reconciling the Two Views.

4.5 Concluding Remarks.


5 Quality Engineering.

5.1 Quality Engineering: Activities and Process.

5.2 Quality Planning: Goal Setting and Strategy Formation.

5.3 Quality Assessment and Improvement.

5.4 Quality Engineering in Software Processes.

5.5 Concluding Remarks.



6 Testing: Concepts, Issues, and Techniques.

6.1 Purposes, Activities, Processes, and Context.

6.2 Questions About Testing.

6.3 Functional vs. Structural Testing: What to Test?

6.4 Coverage-Based vs. Usage-Based Testing: When to Stop Testing?

6.5 Concluding Remarks.


7 Test Activities, Management, and Automation.

7.1 Test Planning and Preparation.

7.1.1 Test planning: Goals, strategies, and techniques.

7.1.2 Testing models and test cases.

7.1.3 Test suite preparation and management.

7.1.4 Preparation of test procedure.

7.2 Test Execution, Result Checking, and Measurement.

7.3 Analysis and Follow-up.

7.4 Activities, People, and Management.

7.5 Test Automation.

7.6 Concluding Remarks.


8 Coverage and Usage Testing Based on Checklists and Partitions.

8.1 Checklist-Based Testing and Its Limitations.

8.2 Testing for Partition Coverage.

8.2.1 Some motivational examples.

8.2.2 Partition: Concepts and definitions.

8.2.3 Testing decisions and predicates for partition coverage.

8.3 Usage-Based Statistical Testing with Musa's Operational Profiles.

8.3.1 The cases for usage-based statistical testing.

8.3.2 Musa OP: Basic ideas.

8.3.3 Using OPs for statistical testing and other purposes.

8.4 Constructing Operational Profiles.

8.4.1 Generic methods and participants.

8.4.2 OP development procedure: Musa-1.

8.4.3 OP development procedure: Musa-2.

8.5 Case Study: OP for the Cartridge Support Software.

8.5.1 Background and participants.

8.5.2 OP development in five steps.

8.5.3 Metrics collection, result validation, and lessons learned.

8.6 Concluding Remarks.


9 Input Domain Partitioning and Boundary Testing.

9.1 Input Domain Partitioning and Testing.

9.1.1 Basic concepts, definitions, and terminology.

9.1.2 Input domain testing for partition and boundary problems.

9.2 Simple Domain Analysis and the Extreme Point Combination Strategy.

9.3 Testing Strategies Based on Boundary Analysis.

9.3.1 Weak N x 1 strategy.

9.3.2 Weak 1 x 1 strategy.

9.4 Other Boundary Test Strategies and Applications.

9.4.1 Strong and approximate strategies.

9.4.2 Other types of boundaries and extensions.

9.4.3 Queuing testing as boundary testing.

9.5 Concluding Remarks.


10 Coverage and Usage Testing Based on Finite-State Machines and Markov Chains.

10.1 Finite-State Machines and Testing.

10.1.1 Overcoming limitations of simple processing models.

10.1.2 FSMs: Basic concepts and examples.

10.1.3 Representations of FSMs.

10.2 FSM Testing: State and Transition Coverage.

10.2.1 Some typical problems with systems modeled by FSMs.

10.2.2 Model construction and validation.

10.2.3 Testing for correct states and transitions.

10.2.4 Applications and limitations.

10.3 Case Study: FSM-Based Testing of Web-Based Applications.

10.3.1 Characteristics of web-based applications.

10.3.2 What to test: Characteristics of web problems.

10.3.3 FSMs for web testing.

10.4 Markov Chains and Unified Markov Models for Testing.

10.4.1 Markov chains and operational profiles.

10.4.2 From individual Markov chains to unified Markov models.

10.4.3 UMM construction.

10.5 Using UMMs for Usage-Based Statistical Testing.

10.5.1 Testing based on usage frequencies in UMMs.

10.5.2 Testing based on other criteria and UMM hierarchies.

10.5.3 Implementation, application, and other issues.

10.6 Case Study Continued: Testing Based on Web Usages.

10.6.1 Usage-based web testing: Motivations and basic approach.

10.6.2 Constructing UMMs for statistical web testing.

10.6.3 Statistical web testing: Details and examples.

10.7 Concluding Remarks.


11 Control Flow, Data Dependency, and Interaction Testing.

11.1 Basic Control Flow Testing.

1 1.1.1 General concepts.

1 1.1.2 Model construction.

11.1.3 Path selection.

1 1.1.4 Path sensitization and other activities.

11.2 Loop Testing, CFT Usage, and Other Issues.

11.2.1 Different types of loops and corresponding CFGs.

11.2.2 Loop testing: Difficulties ant1 a heuristic strategy.

11.2.3 CFT Usage and Other Issues.

11.3 Data Dependency and Data Flow Testing.

11 .3.1 Basic concepts: Operations C Id~at a and data dependencies.

11.3.2 Basics of DFT and DDG.

11.3.3 DDG elements and characteristics.

11.3.4 Information sources and generic procedure for DDG construction.

11.3.5 Building DDG indirectly.

11.3.6 Dealing with loops.

1 1.4 DFT: Coverage and Applications.

11.4.1 Achieving slice and other coverage.

1 1.4.2 DFT: Applications and other issues.

11.4.3 DFT application in synchronization testing.

1 1.5 Concluding Remarks.


12 Testing Techniques: Adaptation, Splecialization, and Integration.

12.1 Testing Sub-phases and Applicable 'Testing Techniques.

12.2 Specialized Test Tasks and Techniques.

12.3 Test Integration.

12.4 Case Study: Hierarchical Web Testing.

12.5 Concluding Remarks.



13 Defect Prevention and Process lmp~rovement.

13.1 Basic Concepts and Generic Approaches.

13.2 Root Cause Analysis for Defect Prevention.

13.3 Education and Training for Defect Prevention.

13.4 Other Techniques for Defect Prevention.

13.4.1 Analysis and modeling for Defect Prevention.

13.4.2 Technologies, standards, and methodologies for defect prevention.

13.4.3 Software tools to block defect injection.

13.5 Focusing on Software Processes.

13.5.1 Process selection, definition, and conformance.

13.5.2 Process maturity.

13.5.3 Process and quality improvement.

13.6 Concluding Remarks.


14 Software Inspection.

14.1 Basic Concepts and Generic Process.

14.2 Fagan inspection.

14.3 Other Inspections and Related Activities.

14.3.1 Inspections of reduced scope or team size.

14.3.2 Inspections of enlarged scope or team size.

14.3.3 Informal desk checks, reviews, and walkthroughs.

14.3.4 Code reading.

14.3.5 Other formal reviews and static analyses.

14.4 Defect Detection Techniques, Tool/Process Support, and Effectiveness.

14.5 Concluding Remarks.


15 Formal Verification.

15.1 Basic Concepts: Formal Verification and Formal Specification.

15.2 Formal Verification: Axiomatic Approach.

15.2.1 Formal logic specifications.

15.2.2 Axioms.

15.2.3 Axiomatic proofs and a comprehensive example.

15.3 Other Approaches.

15.3.1 Weakest pre-conditions and backward chaining.

15.3.2 Functional approach and symbolic execution.

15.3.3 Seeking alternatives: Model checking and other approaches.

15.4 Applications, Effectiveness, and Integration Issues.

15.5 Concluding Remarks.


16 Fault Tolerance and Failure Containment.

16.1 Basic Ideas and Concepts.

16.2 Fault Tolerance with Recovery Blocks.

16.3 Fault Tolerance with N-Version Programming.

16.3.1 NVP: Basic technique and implementation.

16.3.2 Ensuring version independence.

16.3.3 Applying NVP ideas in other QA activities.

16.4 Failure Containment: Safety Assurance and Damage Control.

16.4.1 Hazard analysis using fault-trees and event-trees.

16.4.2 Hazard resolution for accident prevention.

16.4.3 Accident analysis and post-accident damage control.

16.5 Application in Heterogeneous Systerns.

16.5.1 Modeling and analyzing heterogeneous systems.

16.5.2 Prescriptive specifications for safety.

16.6 Concluding Remarks.


17 Comparing Quality Assurance Techniques and Activities.

17.1 General Questions: Cost, Benefit, and Environment.

17.2 Applicability to Different Environments.

17.3 Effectiveness Comparison.

17.3.1 Defect perspective.

17.3.2 Problem types.

17.3.3 Defect level and pervasive level.

17.3.4 Result interpretation and constructive information.

17.4 Cost Comparison.

17.5 Comparison Summary and Recommendations.



18 Feedback Loop and Activities for Quantifiable Quality Improvement.

18.1 QA Monitoring and Measurement.

18.1.1 Direct vs. indirect quality me:asurements.

18.1.2 Direct quality measurements Result and defect measurements.

18.1.3 Indirect quality measurements: Environmental, product internal, and activity measurements.

18.2 Immediate Follow-up Actions and Feedback.

18.3 Analyses and Follow-up Actions.

18.3.1 Analyses for product release decisions.

18.3.2 Analyses for other project management decisions.

18.3.3 Other feedback and follow-up actions.

18.4 Implementation, Integration, and Tool Support.

18.4.1 Feedback loop: Implementation and integration.

18.4.2 A refined quality engineering, process.

18.4.3 Tool support: Strategy, implementation, and integration.

18.5 Concluding Remarks.


19 Quality Models and Measurements.

19.1 Models for Quality Assessment.

19.2 Generalized Models.

19.3 Product-Specific Models.

19.4 Model Comparison and Interconnections.

19.5 Data Requirements and Measurement.

19.6 Selecting Measurements and Models.

19.7 Concluding Remarks.


20 Defect Classification and Analysis.

20.1 General Types of Defect Analyses.

20.1.1 Defect distribution analysis.

20.1.2 Defect trend analysis and defect dynamics model.

20.1.3 Defect causal analysis.

20.2 Defect Classification and ODC.

20.2.1 ODC concepts.

20.2.2 Defect classification using ODC: A comprehensive example.

20.2.3 Adapting ODC to analyze web errors.

20.3 Defect Analysis for Classified Data.

20.3.1 One-way analysis: Analyzing a single defect attribute.

20.3.2 Two-way and multi-way analysis: Examining cross-interactions.

20.4 Concluding Remarks.


21 Risk Identification for Quantifiable Quality Improvement.

21.1 Basic Ideas and Concepts.

21.2 Traditional Statistical Analysis Techniques.

21.3 New Techniques for Risk Identification.

2 1.3.1 Principal component and discriminant analyses.

21.3.2 Artificial neural networks and learning algorithms.

21.3.3 Data partitions and tree-based modeling.

21.3.4 Pattern matching and optimal set reduction.

2 1.4 Comparisons and Integration.

21.5 Risk Identification for Classified Defect Data.

21.6 Concluding Remarks.


22 Software Reliability Engineering.

22.1 SRE: Basic Concepts and General Approaches.

22.2 Large Software Systems and Reliability Analyses.

22.3 Reliability Snapshots Using IDRMs.

22.4 Longer-Term Reliability Analyses Using SRGMs.

22.5 TBRMs for Reliability Analysis and Improvement.

22.5.1 Constructing and using TBRMs.

22.5.2 TBRM Applications..

22.5.3 TBRM's impacts on reliability improvement.

22.6 Implementation and Software Tool Support.

22.7 SRE: Summary and Perspectives.




Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)