User Acceptance Testing is the last stage of testing after functional, integration and system testing is done. This type of testing is carried forward by the end user or client to verify the software system before sending the software application to the production domain.
Need of User Acceptance Testing
Developers may build softwares based of requirements according to their own comprehension and which is why sometimes further required changes are not communicated to them well. It is necessary to know if the final end product is well received and accepted by the client. Software developers code software based on their own understanding which is not necessarily what the client requires from the software, hence this is where the need of User Acceptance Testing arises.
Objective of User Acceptance Testing
Validation of the start to finish business flow is one of the main purposes of UAT. The focus here is not on cosmetic or spelling errors or system testing. It is similar to black box testing in the context of two or more end users being involved. This type of test is performed in a different testing environment that has a data setup like that of production setups.
UAT is performed by clients and end users.
Requirements of User Acceptance Testing:
- Application code has to be completely developed.
- Unit testing, integration testing, and system testing should be done.
- The environment for UAT must be prepared.
- Business prerequisites must be present.
- Application code has to be completely developed.
- There shouldn’t be any defects in the System Integration Test Phase.
- Regression testing must be performed with no major defects.
- All the defects found must be fixed and tested before UAT.
- The traceability matrix for all testing should be finished.
- Sign off mail of communication from System Testing Team so that the system is ready for UAT execution.
- The only error acceptable before UAT is a cosmetic error.
How to perform UAT testing?
Performed by the intended user of the system of software, UAT generally happens at the location of the client which is called Beta Testing. After checking out the entry criteria for UAT, the following tasks have to be performed by the testers –
Step 1) Analysis of Business Requirements –
The top most prioritised task in UAT has to be identifying and developing test scenarios. These test scenarios are found from the following documents –
- Project charter
- Business use cases
- Process flow diagrams
- Business requirements documents
- System requirements specification
Step 2) Creation of the UAT plan:
The strategy used to verify and ensure that the application meets its business requirements is outlined in the UAT test plan. It records entry and exist criteria for UAT, test scenarios, test case approaches and timelines of testing.
Step 3) Identify Test Scenarios and Test Cases:
The test scenarios have to be identified keeping in mind the high level business process and create test cases with clear test steps. These test cases should properly cover most of the UAT scenarios if not entirely.
Step 4) Preparation of Test Data:
Using live data for UAT is the best way to do it. The data has to be scrambled for privacy and security reasons and the tester is made aware with the flow of the database.
Step 5) Run and record the results:
Cases have to be executed and bugs must be reported if there are any. Once the bugs are fixed, tests must be performed again. Test management tools can also be used for the execution of the same.
Step 6) Confirm business Objectives met:
After the UAT testing, business analysts or UAT testers need to sign of the mail. Only after the sign off, the products are sent for production. The deliverables for UAT testing are test plan, UAT scenarios, test cases, test results and defect log.
Exit criteria for UAT: We can now move into production but before that, there are a few needs that have to be considered i.e. if the business proccess is working efficiently, if the UAT sign of meeting with all the stakeholders has been conducted and if no critical defects are left open.
Qualities of UAT testers
Along with having good knowledge of the business, UAT testers must also be independent and think and act as a user who is unaware of the system. The tester should be a thinker who is not only analytical but also lateral and should combine all sorts of data to make the UAT successful.
The tester could also be a business analyst or a subject matter expert who understands the entire flow of business requirements and can prepare the tests and data which is a pragmatic approach towards the business.
These are the certain things that have to be considered to make the UAT a success. The first one being that the UAT plan has to be prepared early in the project life-cycle along with checklists, before the UAT starts. Pre-UAT session must be conducted during the system testing stage only and the expectations must be set and the scope of UAT must be defined.
Testing of beginning to end business flow must be performed to avoid system tests and the application must be tested with real world scenarios and data. You have to think as a user who is unaware of how the system works. Usability testing should be performed and lastly, a feedback session must be conducted to provide suggestions before moving to production.
Among the many tools available in the market that are used for User Acceptance Testing, here are some that are listed for you:
- Fitness tool : Used as a testing engine this is a Java tool. It makes creating tests easy and enables recording results in a table. After the users enter the formatted input, the tests are created automatically. Later, the tests are executed and the output is returned to the user.
- Watir : Automation of the browser-based test during user acceptance testing is done by this toolkit. The programming language used for interprocess communication between ruby and internet Explorer is called Ruby.
In software engineering, UAT stands for User Acceptance Testing and it is one of the many testing processes that have emerged in the last 20-30 years. With user acceptance testing, the client can be sure about what to expect from the product rather than just plainly assuming about it.