User Acceptance testing
Acceptance testing is formal testing based on user requirements and function processing. It determines whether the software is conforming specified requirements and user requirements or not. It is conducted as a kind of Black Box testing where the number of required users involved testing the acceptance level of the system. It is the fourth and last level of software testing.
User acceptance testing (UAT) is a type of testing, which is done by the customer before accepting the final product. Generally, UAT is done by the customer (domain expert) for their satisfaction, and check whether the application is working according to given business scenarios, real-time scenarios.
In this, we concentrate only on those features and scenarios which are regularly used by the customer or mostly user scenarios for the business or those scenarios which are used daily by the end-user or the customer.
However, the software has passed through three testing levels (Unit Testing, Integration Testing, System Testing) But still there are some minor errors which can be identified when the system is used by the end user in the actual scenario.
Acceptance testing is the squeezing of all the testing processes that have done previously.
Reason behind Acceptance Testing
Once the software has undergone through Unit Testing, Integration Testing and System Testing so, Acceptance Testing may seem redundant, but it is required due to the following reasons.
- During the development of a project if there are changes in requirements and it may not be communicated effectively to the development team.
- Developers develop functions by examining the requirement document on their own understanding and may not understand the actual requirements of the client.
- There's maybe some minor errors which can be identified only when the system is used by the end user in the actual scenario so, to find out these minor errors, acceptance testing is essential.
Advantages of Acceptance Testing
- It increases the satisfaction of clients as they test application itself.
- The quality criteria of the software is defined in an early phase so that the tester has already decided the testing points. It gives a clear view to testing strategy.
- The information gathered through acceptance testing used by stakeholders to better understand the requirements of the targeted audience.
- It improves requirement definition as client tests requirement definition according to his needs.
Disadvantages of Acceptance Testing
According to the testing plan, the customer has to write requirements in their own words and by themselves but
- Customers are not willing to do that; it defeats the whole point of acceptance testing.
- If test cases are written by someone else, the customer does not understand them, so tester has to perform the inspections by themselves only.
Types of User Acceptance Testing
- Alpha
and Beta Testing: Alpha testing comes into the picture in
the early phase of development and involve internal staffs. It can also be
performed by potential user groups, but in the development environment
before the product is released to customers. The inputs taken from alpha
testers are then used to fix certain bugs to improve the overall quality
of the product. Unlike Alpha testing, Beta testing happens in the
customer’s environment. It involves extensive testing of the product by a
group of customers, who provides the feedback, which is then implemented
to improve the product’s quality. Both alpha and beta testing is done
before the application is released
- Contract
Acceptance Testing: Here the software that is developed is
tested against certain criteria. The criteria and specifications are
defined when the contract is made and agreed upon.
- Regulation
Acceptance Testing/Compliance Acceptance Testing: Regulation
acceptance testing or compliance acceptance testing checks if the software
application complies with the legal and government regulations.
- Operational
Acceptance Testing (Operational Readiness Testing or Production Acceptance
Testing):
Operational acceptance testing ensures that there is a proper workflow
(backup plans, maintenance, and training) for the software to be used.
- Black
Box Testing:
This kind of user acceptance testing is often categorized as functional
testing. It allows the tester to analyze certain functionalities without
letting the testers to see the internal code. The principles of black box
testing are similar to user acceptance testing, as the user is unaware of
the code, but only the requirements that should be met by the software.
Tools Used for User Acceptance Testing (UAT)
- Usersnap
- Engageuat
- QASymphony