Question #126EasyTools & DevOps

What is UAT in general ?

Answer

Overview

UAT (User Acceptance Testing) is the final phase of software testing where real users or stakeholders test the application to verify it meets business requirements before going live.


What is UAT?

UAT answers the question: "Does the software do what the business needs it to do?"

It is performed after:

  • Unit Testing ✅
  • Integration Testing ✅
  • System Testing ✅
  • UAT ← Final gate before production

Types of UAT

TypeDescription
Alpha TestingDone by internal employees/testers
Beta TestingDone by a limited group of real external users
Contract Acceptance TestingValidates against contract specifications
Regulation Acceptance TestingValidates against compliance/regulations
Operational Acceptance TestingValidates backup, recovery, maintenance procedures

UAT Process

text
1. PLAN      → Define test scenarios based on user stories
2. DESIGN    → Create UAT test cases from business requirements
3. EXECUTE   → Real users test the app in a staging environment
4. REPORT    → Document bugs, issues, feedback
5. SIGN-OFF  → Stakeholders approve → Go-live authorized

UAT in Mobile App Development

For a Flutter app, UAT typically involves:

text
Staging Environment:
├── Test build distributed via Firebase App Distribution / TestFlight
├── Real users test key flows:
│   ├── Registration & Login
│   ├── Core features (payment, booking, etc.)
│   ├── Edge cases (no internet, low battery)
│   └── Cross-device validation (different screen sizes)
├── Feedback collected via Jira, Trello, or bug tracking tool
└── Sign-off document signed by product owner

UAT vs QA Testing

AspectQA TestingUAT
Who testsQA EngineersEnd users / stakeholders
FocusTechnical correctnessBusiness requirements
WhenDuring developmentBefore production release
GoalFind bugsConfirm fitness for purpose
ToolsAutomated tests, test suitesManual testing, feedback forms

Distributing Flutter App for UAT

bash
# Firebase App Distribution (Android + iOS)
firebase appdistribution:distribute build/app/outputs/apk/release/app-release.apk \
  --app $FIREBASE_APP_ID \
  --groups "uat-testers" \
  --release-notes "UAT build v1.2.3 — please test payment flow"

# iOS via TestFlight
# Archive in Xcode → Upload to App Store Connect → TestFlight → Add testers

Key Point: UAT is the final checkpoint before release. A successful UAT sign-off from stakeholders is the green light to deploy to production.