User Acceptance Testing
The final phase of testing where actual users or stakeholders verify that a system meets their requirements and is ready for deployment.
Also known as: UAT, Acceptance Testing, Business Acceptance Testing, End User Testing
Category: Software Development
Tags: software-development, testing, quality, requirements, agile
Explanation
User Acceptance Testing (UAT) is the last stage of the software testing process before a system goes live. It involves actual end users or their representatives testing the system against real-world scenarios to confirm it meets their needs, works as expected, and is ready for production deployment.
**Purpose of UAT:**
- **Validate business requirements**: Confirm the system does what users actually need, not just what was specified in technical documents
- **Catch gaps**: Identify issues that unit tests, integration tests, and QA testing miss because they lack real-world context
- **Build confidence**: Give stakeholders confidence that the system is ready for deployment
- **Contractual fulfillment**: In many projects, UAT sign-off is a formal milestone for payment or go-live approval
- **User buy-in**: Users who participate in testing feel ownership and are more likely to adopt the system
**UAT vs. other testing:**
- **Unit/integration tests**: Verify technical correctness. Written by developers
- **QA/system testing**: Verify the system works as specified. Done by testers
- **UAT**: Verify the system meets business needs. Done by actual users or business representatives
**The UAT process:**
1. **Plan**: Define scope, schedule, participants, test scenarios, and acceptance criteria
2. **Prepare test cases**: Based on acceptance criteria and real-world workflows, not technical specifications
3. **Set up environment**: A production-like environment with realistic data
4. **Execute tests**: Users work through scenarios, documenting results and issues
5. **Log defects**: Issues are categorized by severity and tracked to resolution
6. **Retest**: Fixed issues are retested by the same users
7. **Sign off**: Formal acceptance that the system is ready for deployment
**Common UAT approaches:**
- **Alpha testing**: Done by internal users in a controlled environment
- **Beta testing**: Done by external users in their own environment
- **Contract acceptance testing**: Verifies contractual requirements are met
- **Regulation acceptance testing**: Verifies compliance with regulatory requirements
**Common pitfalls:**
- Users who are too busy to test properly
- Test scenarios that don't reflect real workflows
- UAT happening too late to address significant issues
- Treating UAT as a rubber stamp rather than genuine validation
- No clear acceptance criteria defined before testing begins
Effective UAT requires well-defined acceptance criteria established early, dedicated time from real users, and organizational commitment to acting on findings.
Related Concepts
← Back to all concepts