Home  >  Fourth Edition  >  Chapter 25
Chapter 25 –  Software Development and Quality Assurance
     Diane E. (Dione) Levine

Chapter Contents:

   25.1    Introduction
   25.2    Goals of Software Quality Assurance
   25.2.1    Uncover All of a Program's Problems
   25.2.2    Reduce the Likelihood that Defective Programs Will Enter Production
   25.2.3    Safeguard the Interests of Users
   25.2.4    Safeguard the Interests of Software Producers
   25.3    Software Development Life Cycle
   25.3.1    Phases of the Traditional Software Development Life Cycle    Investigation    Analysis    Design    Decoding and Debugging    Testing    Implementation    Maintenance
   25.3.2    Classic Waterfall Model    Analysis or Requirements Analysis    Design    Implementation    Testing    Maintenance
   25.3.3    Rapid Application Development and Joint Application Design
   25.3.4    Importance of Integrating Security at Every Phase
   25.4    Types of Software Errors
   25.4.1    Internal Design or Implementation Errors    Initialization    Logic Flow    Calculation    Boundary Condition Violations    Parameter Passing    Race Condition    Load Condition    Resource Exhaustion    Other Sources of Error
   25.4.2    User Interface    Functionality    Control (Command) Structure    Performance    Output Format
   25.5    Designing Software Test Cases
   25.5.1    Good Tests
   25.5.2    Emphasize Boundary Conditions
   25.5.3    Check All State Transitions    Test Every Limit    Test for Race Conditions
   25.5.4    Use Test-Coverage Monitors
   25.5.5    Seeding
   25.5.6    Building Test Data Sets
   25.6    Before Going Into Production
   25.6.1    Regression Testing
   25.6.2    Automated Testing
   25.6.3    Tracking Bugs from Discovery to Removal
   25.7    Managing Change
   25.7.1    Change Request
   25.7.2    Tracking System
   25.7.3    Regression Testing
   25.7.4    Documentation
   25.8    Sources of Bugs and Problems
   25.8.1    Design Flaws
   28.8.2    Implementation Flaws
   25.8.3    Unauthorized Changes to Production Code
   25.8.4    Incompetent Programmers
   25.8.5    Data Corruption
   25.8.6    Hacking
   25.9    Conclusion
   25.10    Bibliography and For Further Reading

Please report problems to the webmaster at:
copyright 2002-2006, Robert Gezelter, All Rights Reserved