HOME | Project Management Data Warehousing / Mining Software Testing | Technical Writing |
Article IndexPART I--OVERVIEW & BASICS 1. Overview 4. Quality Assurance in Context PART II--SOFTWARE TESTING 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 PART III--QUALITY ASSURANCE BEYOND TESTING 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 PART IV--QUANTIFIABLE QUALITY IMPROVEMENT 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 GuideWith 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. PREV. | NEXT Also see: |