Software Quality Engineering: Testing, Quality Assurance, Quantifiable Improvement -- Article Index

HOME | Project Management

Data Warehousing / Mining

Software Testing | Technical Writing

Article Index


1. Overview

2. What Is Software Quality?

3. Quality Assurance

4. Quality Assurance in Context

5. Quality Engineering


6. Testing: Concepts, Issues, and Techniques

7. Test Activities, Management, and Automation

8. Coverage and Usage Testing Based on Checklists and Partitions

9. Input Domain Partitioning and Boundary Testing

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

11. Control Flow, Data Dependency, and Interaction Testing

12. Testing Techniques: Adaptation, Specialization, and Integration


13. Defect Prevention and Process Improvement

14. Software Inspection

15. Formal Verification

16. Fault Tolerance and Failure Containment

17. Comparing Quality Assurance Techniques and Activities


18. Feedback Loop and Activities for Quantifiable Quality Improvement

19. Quality Models and Measurements

20. Defect Classification and Analysis

21. Risk Identification for Quantifiable Quality Improvement

22. Software Reliability Engineering

About this Guide

With the pervasive use of software systems in modern society and people's reliance on them in daily life, work, and societal functions, we need to make sure that these systems meet people's expectations for quality and reliability. This is the general subject of Software Quality Engineering, which is organized into three major topics:

--Software testing as a primary means to ensure software quality;

--Other alternatives for quality assurance (QA), including defect prevention, process improvement, inspection, formal verification, fault tolerance, safety assurance, and damage control;

--Measurement and analysis to close the feedback loop for quality assessment and quantifiable improvement.

These topics and related concepts are introduced in Part I, with detailed coverage for each major topic in Parts II, III, and IV, respectively.

This guide evolved from class notes for the one-semester course "Software Testing and Quality Assurance". Most of our students are full-time software professionals enrolled in the university MS program in Software Engineering, with a few other graduate students or undergraduate juniors/seniors in related programs. Although there are many guides on software testing and some on specific software QA techniques, they are typically too specialized to be suitable as a main textbook for a course like the presented in this guide. On the other hand, general textbooks on software engineering or software management cannot and do not cover software quality topics in enough detail or depth. Consequently, a combination of class notes and multiple textbooks was used. Similar situations were also common at other universities for similar courses, such as "Software Quality Assurance" and "Software Verification and Validation". With its comprehensive coverage of all the major topics in software quality engineering in an integrated framework, this guide is suitable as the main textbook for such a course.

In addition, this guide could be used as a technical reference about software testing, QA, and quality engineering by other readers, particularly professionals who perform QA activities as testers, inspectors, analysts, coordinators, and so forth. It should also be useful to people involved in project planning and management, product release, and support.

Similarly, this guide could help prepare students for their internship assignments or future employment related to testing or QA.


Also see:

top of page | Article IndexHome