User acceptance is a type of testing performed by the Client to certify the system with respect
to the requirements that was agreed upon. This testing happens in the final phase of testing
before moving the software application to Market or Production environment.
The main purpose of this testing is to validate the end to end business flow. It does NOT
focus on the cosmetic errors, Spelling mistakes or System testing. This testing is carried out
in separate testing environment with production like data setup. It is a kind of black box
testing where two or more end users will be involved.
Need of User Acceptance Testing:
Once a software has undergone Unit , Integration and System testing the need of Acceptance
Testing may seem redundant. But Acceptance Testing is required because
1) Developers code software based on requirements document which is their "own"
understanding of the requirements and may not actually be what the client needs from the
software.
2) Requirements changes during the course of the project may not be communicated
effectively to the developers.
Acceptance Testing and V-Model
In VModel, User acceptance testing corresponds to the requirement phase of the Software
Development life cycle(SDLC).
Prerequisites of User Acceptance Testing:
Following are the entry criteria for User Acceptance Testing:
Business Requirements must be available.
Application Code should be fully developed
Unit Testing, Integration Testing & System Testing should be completed
No Showstoppers, High, Medium defects in System Integration Test Phase -
Only Cosmetic error are acceptable before UAT
Regression Testing should be completed with no major defects
All the reported defects should be fixed and tested before UAT
Traceability matrix for all testing should be completed
UAT Environment must be ready
Sign off mail or communication from System Testing Team that the system is ready
for UAT execution
User Acceptance Testing Process:
UAT is done by the intended users of the system or software. This testing usually happens at
the client location which is known as Beta Testing. Once Entry criteria for UAT are satisfied,
following are the tasks need to be performed by the testers:
Analysis of Business Requirements
Creation of UAT test plan
Identify Test Scenarios
Create UAT Test Cases
Preparation of Test Data(Production like Data)
Run the Test cases
Record the Results
Confirm business objectives
Analysis of Business Requirements
One of the most important activities in the UAT is to identify and develop test scenarios.
These test scenarios are derived from the following documents:
Project Charter
Business Use Cases
Process Flow Diagrams
Business Requirements Document(BRD)
System Requirements Specification(SRS)
Creation of UAT Plan:
The UAT test plan outlines the strategy that will be used to verify and ensure an application
meets its business requirements. It documents entry and exit criteria for UAT, Test scenarios
and test cases approach and timelines of testing.
Identify Test Scenarios and Test Cases:
Identify the test scenarios with respect to high level business process and create test cases
with clear test steps. Test Cases should sufficiently cover most of the UAT scenarios.
Business Use cases are input for creating the test cases.
Preparation of Test Data:
It is best advisable to use live data for UAT. Data should be scrambled for privacy and
security reasons. Tester should be familiar with the data base flow.
Run and record the results:
Execute test cases and report bugs if any. Re-test bugs once fixed. Test Management tools
can used for execution.
Confirm Business Objectives met:
Business Analysts or UAT Testers needs to send a sign off mail after the UAT testing . After
sign-off the product is good to go for production. Deliverables for UAT testing are Test Plan,
UAT Scenarios and Test Cases, Test Results and Defect Log
Exit criteria for UAT:
Before moving into production, following needs to be considered:
No critical defects open
Business process works satisfactorily
UAT Sign off meeting with all stakeholders
Qualities of UAT Testers:
UAT Tester should possess good knowledge of the business. He should be independent,
should think as an unknown user to the system. Tester should be Analytical and Lateral
thinker and combine all sort of data to make the UAT successful.
Tester or Business Analyst or Subject Matter Experts who understand the business
requirements or flows and can prepare test and data which are realistic to the business.
Best Practices:
Following points needs to be considered to make UAT Success:
Prepare UAT plan early in the project life cycle
Prepare Checklist before the UAT starts
Conduct Pre-UAT session during System Testing phase itself
Set the expectation and define the scope of UAT clearly
Test End to End business flow and avoid system tests
Test the system or application with real world scenarios and data
Think as an Unknown user to the system
Perform Usability Testing
Conduct Feedback session and meeting before moving to production
UAT Tools
There are several tools in the market used for User acceptance testing and some are listed for
reference:
Fitnesse tool : It is java tool used as a testing engine. It is easy to create tests and record
results in a table. Users of the tool enter the formatted input and tests are created
automatically. The tests are then executed and output is returned back to the user.
Watir : It is tool kit used to automate browser based tests during User acceptance testing.
Ruby is the programming language used for inter process communication between ruby and
Internet explorer.
Conclusion:
UAT is one of the many flavors of testing that has emerged over last twenty five years. With
UAT , the client can be sure "What to expect" from the product rather than assuming. The
benefit of UAT is that there will be no surprises when the product is released to the market.