Quality assurance (QA) is the organized work of checking whether software meets its requirements and works as intended. It belongs in the development process before release, when problems can still be found and fixed. QA professionals bring testing skills that complement development work; expecting developers and project managers to take on every testing task can leave practices undocumented. section 6.0 section 6.1 section 1.2.2
Document the QA process in four stages so checks are consistent and responsibilities are clear:
- Planning: decide what quality checks are needed. section 6.6
- Test design: prepare the checks to be performed. section 6.6
- Execution: perform the checks. section 6.6
- Reporting: record and communicate the results. section 6.6
Use complementary kinds of testing. Automated unit tests check for code-level problems; integration tests check interactions between parts of a system; manual tests add a human perspective, including whether the user experience matches requirements. Together, they cover more than any one approach alone. section 6.4.2
When testing becomes everyone’s spare task
At one workplace, management expected project managers and developers to perform all QA tasks. Testing practices were not reliably followed or documented. On teams with dedicated QA professionals, problems could instead be found and fixed before production. The practical lesson is to make QA an explicit team responsibility, not an assumed extra duty. section 6.1
Lead developers help QA by making technical requirements clear, getting code ready for testing, answering questions, and using recurring problems to improve development practices. Include QA staff when changing the process: their perspective can reveal effects on product quality. Keep the process documented and update it with the team as work changes. section 1.2.2 section 6.4.2 section 6.6
