What is User Acceptance Testing?
User Acceptance Testing is a type of testing performed by the Client to verify that the system works correctly based on the business requirement specifications. UAT happens in the final phase of the testing-cycle before deploying the software application to the Production environment.
The purpose of UAT is to validate the end to end business flow.
Definition of UAT: The ISTQB defines acceptance as: formal testing with respect to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.
Who performs User Acceptance Testing?
Ideally, UAT is performed by end-users and or domain-experts but also stakeholders, Business Analysts and Software Testing professionals can perform these tests.
Why perform UAT?
The purpose of UAT is to verify that the software delivers what’s intended to the target audience. During UAT, a participant like the end-user or product owner uses the system to perform actions based on the requirements. Once system testing is done, the end-user or product owner then verifies that the software meets the requirements.
While performing this kind of testing, it’s essential to perform tests by considering to meet and understand user expectations and it’s important to verify whether the product has met the requirements and expectations of the target audience.
Requirements for UAT in a SDC (Software Development Cycle)
Even though UAT is crucial and critical, it cannot be performed until software features and functionality are completely developed and deployed, here are some UAT criteria:
- Business requirements must be available.
- Code should be completely developed.
- Unit, integration and system testing should have been executed.
- No show-stopper-defects in the system test phase.
- Cosmetic errors are acceptable.
- Regression testing should be completed and major defects should have been fixed.
- Reported defects must be fixed and tested before UAT.
- UAT test environment must be ready.
- QA Team has approved for UAT execution.
Differences between System integration testing and User acceptance testing
UAT reduces the probability of issues being elevated in real world scenarios. It’s a process to manage bugs and will reduce cost of bug fixing and also provide greater user satisfaction. User Acceptance Testing plays a critical role in every software development. The benefit of well executed UAT will ensure a really good end-product. UAT work-flows can be implemented as an agile approach but it requires a continuous collaboration between all the team members.