In User Acceptance Testing (UAT), software is tested by the real users at their premises. It is also called by other names such as beta testing and end user testing. It is basically performed to confirm that the system developed is in accordance with the user requirements that were shared with the developers before the start of development of the system.
Table Of Contents
What is User Acceptance Testing?
It is a type of testing which is performed by real users in the last stage of testing, before the product or application is released to the production environment or to the market.
The environment used for conducting User Acceptance Testing (UAT) is similar to the production environment and is not the development environment.
User Acceptance Testing (UAT) Checklist
It is important to ensure that the following stages and their test activities are covered as part of the User Acceptance Testing to ensure optimum results from UAT.
- Initiating the User Acceptance Testing project
- Planning the User Acceptance Testing
- User Acceptance Testing Design
- User Acceptance Testing Execution
- Release Decisions
- Post User Acceptance Testing Actions
Activities which are part of each of the above stages are given below.
Initiating the User Acceptance Testing project
The following activities should ideally be carried out as part of initiation of the UAT project.
- Identify the key stakeholders
- Select a team leader
- Communicate the business intent, objectives and acceptance criteria of the system
- Agree on User Acceptance Testing team resources
- Agree on documentation to support User Acceptance Testing
- Agree on decision making structures
- Agree on User Acceptance Testing team
- Initiate User Acceptance Testing training
- Form an initial project plan for User Acceptance Testing
Planning the User Acceptance Testing
While planning the UAT, the below tasks should be performed.
- Identify the method of system acquisition to determine the best approach to User Acceptance Testing.
- Determine whether the business intent and the user expectations have been captured and are measurable.
- Verify that business requirements have been captured.
- Verify that all requirement types have been included.
- Write the acceptance criteria and check that it is appropriate.
- Ensure that the scope is clear and relevant.
- Capture and verify the business processes.
- Evaluate the current documentation and its sustainability to serve as a test basis.
User Acceptance Testing Design
It is important to ensure the test design for UAT follows the below steps in order to ensure that the UAT provides the desired outcome.
- Establish the entry criteria for User Acceptance Testing.
- Review test scripts where available.
- Define the User Acceptance Testing strategy.
- Review existing test conditions where available and write new ones.
- Review existing test cases where available and write new ones based on test conditions.
- Write test scripts based on test cases.
- Ensure that the tests cover all the requirements.
User Acceptance Testing Execution
The below tasks need to be executed as part of the UAT test execution.
- Check availability of the test environment.
- Define high level test schedule against User Acceptance Testing strategy to achieve priorities.
- Define detailed test schedule to achieve best use of resources.
- Ensure the test log is kept up to date.
- Ensure incidents are being reported accurately and in good time.
- Check regularly on defect resolution with the development team and ensure there are no bottlenecks.
- Generate regular test summary reports.
User Acceptance Testing Release Decisions
The following items will help the team in deciding whether to go ahead with the release or not, after the UAT.
- Identify status against acceptance criteria.
- Identify effort and time required to meet acceptance criteria in detail.
- Examine alternatives based on outstanding risks.
- Emergency release criteria to enable controlled release.
- Report status to key stakeholders with alternative proposals for release.
- Prepare User Acceptance Testing completion report with recommendations.
Post User Acceptance Testing Actions
The below activities need to be carried out after the completion of the UAT.
- User training design and plan.
- Post release support.
- Continuous testing
- Post User Acceptance Testing report with frequently asked questions etc.
User Acceptance Testing Best Practices
1. Know the users who will ultimately be using the software
Know your target audience. What are their problems/needs? What is their motivation? How you can reach them? When you have all this information prior to initiating the User Acceptance Testing, it saves you wasted effort and help you get directed results.
2. Prepare User Acceptance Testing plan well in advance
Usually User Acceptance Testing is conducted prior to the launch of the software in the market and at this stage you are already under pressure of meeting deadlines and are excited about the response of the end user with respect to your software hence planning User Acceptance Testing at this stage could result into missing some real life use cases which are frequent. Resource availability could also be a constraint at this stage.
3. Well-structured User Acceptance Testing management system
Well-structured User Acceptance Testing management system is one that contains easy filtering options, efficient reporting, traceability matrix, bug tracking features and security.
4. Create Scenarios based on business requirements
It is always a good practice to prepare test scenarios based on the business requirements in order to target the end user.
5. Clearly define acceptance criteria
Whether the product is passed or failed after development is decided by the acceptance criteria so it is best to define acceptance criteria clearly.
Stage in which User Acceptance Testing is Performed
There are many ways to develop a system but broadly classified into 2 categories:
- Sequential development
- Iterative development
Sequential development
Sequential development uses a sequence of development stages that typically follow a V-shape. UAT is the final test level that tests the completed system with respect to the business requirements.
Iterative Development
In an iterative approach (such as Agile development), the design and testing take place during short sprints and so the system functionality becomes available incrementally at the end of each sprint. UAT will be required before rolling out each sprint.
User Acceptance Testing Approach
UAT Approach is based on 3 elements:
- Business requirements
- Business processes
- User expectations
There should be an approach that follows these 3 elements.
Requirements based test cases
Test cases must cover the business requirements, each test case should be linked to a specific requirements based on an ID number. Test cases could be written shortly after the requirement specification is defined and it is called requirement driven test cases. The disadvantage of this approach is that if the requirements contain mistakes then test cases would also go wrong.
Business process based test cases
Business process based test cases are written to make sure that the system that is delivered will work specifically in supporting the business processes. The test cases must be able to show that the requirements have been met in a way that reflects how the organization is going to use the system.
User Interface driven test cases
User Interface driven test cases are structured around forms or screens that need to be completed. Test cases are based on data entry, interactions via the screen, and reporting. User Interface driven test cases can be embedded within business process based test cases where the business process involves data entry, interaction or reporting.
Setting priorities through Risk Based Testing
UAT is usually performed in pressure because it is done just before the system is released to the end users for them to use it, so there is a need to find a way to do the best within the limited time available. For this, prioritization technique is used to run the most important tests first so that any testing that is left incomplete is less important than the one which is completed. This is called risk based testing.
Risk level for each requirement is identified and the requirements are sortedby priority.Risk based testing can be used in conjunction with other approaches.
For example
Risk based testing could be included within requirement based testing to ensure that the most important areas are tested first.
If the system does what it is required while missing some detailed part of technical specification then that outcome should be reported but it is not a ‘show-stopper.’
On the other hand, if the system meets each and every item of technical specification but it is cumbersome to use then it is a cause of concern.
User Acceptance Testing Examples
Any software from any domain like Automotive, Travel/Tourism etc. should go through proper user acceptance testing before delivery to production.
Suppose there is a mobile tracking software in which an administrator administers mobile resources and it is a web based application. It has gone through many different forms of testing such as functional testing, integration testing, system testing, performance testing etc. and now comes the turn of most important level of testing and it is user acceptance testing. Ideally, it should be performed at two levels:
1. Alpha Testing
This type of user acceptance testing is done by the testers at the developers’ site to check for any last issues before delivery of the software to the end users for beta testing.
2. Beta Testing
It is done by end users at their premises and check for any issues before the software is released to production.
Conclusion
The benefit of User Acceptance Testing is that there will be no surprises when the product is released to the production/market for actual use.
Other popular articles:
- What is Acceptance testing or User Acceptance Testing (UAT)?
- What is Acceptance Test-Driven Development in Agile Methodology?
- What are Test Pyramid and Testing Quadrants in Agile Testing Methodology?
- What are Project Work Products in Agile testing?
- What is Use case testing in software testing?
Applicant says
They are a representation of a workflow that often extends beyond just one person performing a task. For example, a UAT test script for performing a task might have the objective of testing how a user can add a customer to a database. A test scenario, on the other hand, would describe how a user would add a customer to a database, create an order for the customer, pay for the order, ship the product(s) ordered and track the shipment. They often extend over a period of days in actual real-life use. This is why people have difficulty in designing a user acceptance test. They lack a framework that simulates the real-world passage of time. The time may extend over hours, days, months, or even years.