“Testing” Principles
Testing must be an inherent component of the software process
- should not be a separate phase after integration and before maintenance
Execution-based testing
- execution of code (primarily the implementation)
Nonexecution-based testing
- reviews and static analysis of (non)executable software descriptions
Verification: comparing to specification
Validation: checking against user needs
Software Quality Assurance (SQA)
- SQA group is responsible for ensuring that all phases are carried out as dictated and that product is "correct"
- Quality assurance applies to every aspect of the software process
- SQA group should be managerially independent