Acceptance Testing is the final level of Software Testing. Once the testing team assesses the product by performing System Testing, it needs to be handed over to Customer or end users for its acceptability. Hence Acceptance Testing will be performed by the Customers or end users in-order to accept or reject the product/application delivered by the testing team. As part of Acceptance Testing, the delivered application/product will be verified against the business requirements along with end-to-end real-time business flows. The below are few points, which help you in understanding Acceptance Testing in more detail:
- Acceptance Testing is the last level of Software Testing
- Acceptance Testing comes after the System Testing
- Acceptance Testing is performed by the Customers / End Users on the product for its acceptability after the product/application is System Tested and delivered to them by the independent testing team.
- Acceptance Testing is performed after all the bugs identified in the System Testing are fixed, verified and closed.
- Acceptance Testing may accept or reject the delivered product/application.
- If the application is Acceptance tested and accepted, it will be allowed to go live (i.e. released into the market for the usage of end users)
- If the application is Acceptance tested and rejected, it will be returned back to the development and testing teams for further changes/defect fixes.
- Customer / End Users performing acceptance testing will verify the functioning of the application to match the business requirements along with the real-time end to end business flows.
- Though the tests created for Acceptance Testing will be repetitive/same as tests created for System Testing, their purpose of creation is different.
- Acceptance Tests are performed to gain confidence in the application which is set to get released into the market.
- Acceptance Tests are performed to confirm whether the application is working as expected.
- Acceptance Tests are performed to check the workability of the application in the current business market.
- Acceptance Testing will certify how well the testing is performed on the application by the testing team before it is delivered to them for acceptability.
- Acceptance Testing uses Black Box testing method where the external functionality of the application will be verified by ignoring the internal code.
- Acceptance Testing is generally performed in a test environment where production like data / real-time data is set up.
- Testing team needs to perform RCA (Root Cause Analysis) of all the defects which are identified during the Acceptance Testing.
Real world example: Let’s take an example of a mobile phone, where the individual units like Touch Screen, Battery, Camera, Music system etc are unit tested separately. And later the Integration testing is performed to check whether the two or more units are working together. i.e. As part of Integration testing, the Camera and Music system are combined together to check whether taking a picture is making capture sound or not. And later as part of System testing, all the units like Screen, Battery, Camera, Music system etc. are combined together to form the completely integrated mobile phone and verified against the specified requirements. And later as part of Acceptance testing, the testing will be performed on the Mobile phone to confirm whether it is ready to be released into the market to make it available for the end users for usage.
Acceptance Testing Types: Acceptance Testing can be categorized into the below different types:
- User Acceptance Testing – Acceptance Testing performed in business perspective to check whether the Application is ready for release into the market for the usage of end users / real-time users.
- Operational Acceptance Testing – Acceptance Testing performed by the System Administrators to confirm whether the Application meets the operational requirements like performance, security, backup, restore, recovery during disaster and maintenance.
- Contract acceptance Testing – Acceptance Testing performed to check whether the Application is functioning as specified in the acceptance criteria as documented during the contract between business customers and vendors.
- Regulation Acceptance Testing – Acceptance Testing performed to check whether the Application built is according to Government, legal and safety standards.
- Alpha Testing – Acceptance Testing performed at the vendor site (i.e. Developer organization site) by non-project staff to confirm the applications readiness, before releasing to the Business Customers.
- Beta Testing – After the Alpha testing is performed on the application at the vendor side, the application will be released to the Business Customers. Business Customers will then perform Beta Testing (i.e. at customers site) to confirm the expected functioning of the application before releasing into the market for end-user usage.
Conclusion: Acceptance Testing is the last/fourth level of Software testing, where the testing is performed by the Business Customers / End Users to confirm whether the application is ready for getting released into the market.
Please leave your questions/comments/feedback below.
Happy Learning 🙂
Arun Motoori (www.QAFox.com)