Software Testing - Acceptance Testing



Software goes through multiple stages of verification, starting with unit testing, integration testing, system testing, and finally the acceptance testing. The acceptance testing is mainly done with the intent to check if the software is built as per customer and business needs.

What is Acceptance Testing?

An acceptance testing is performed to test if the software is compliant to all the requirements and ready to be deployed to production. It is a formal approach which verifies if the software fulfills all the acceptance criteria for the business and for the customers.

It allows the end users to use the software and share their experiences while using it. This type of testing comes at the fag end of testing cycle, just after the system testing is over.

Acceptance Testing in SDLC

The following diagram explains the fitment of acceptance testing in the software development life cycle.

acceptance testing in Test Life Cycle

The acceptance test cases are executed against the test data or using an acceptance test script and then the results are compared with the expected ones.

Acceptance Criteria

Acceptance criteria are defined on the basis of the following attributes

  • Functional Correctness and Completeness
  • Data Integrity
  • Data Conversion
  • Usability
  • Performance
  • Timeliness
  • Confidentiality and Availability
  • Installability and Upgradability
  • Scalability
  • Documentation

Different Types of Acceptance Testing

The different types of acceptance testing are listed below −

User Acceptance Testing (UAT)

It is mainly conducted to check if the software is satisfying the expectations of the users. The end-to-end scenarios which are used frequently by the customers are primarily verified during this time.

Business Acceptance Testing (BAT)

It is mainly done to check if the software is satisfying the business requirements. The scenarios which deal with earning the business profits are in the focus of testing.

Contract Acceptance Testing (CAT)

This type of testing is driven by a contract. It describes that within a specific time frame after which the software is deployed to production, all acceptance scenarios need to run successfully. This type of contract is known as the Service Level Agreement (SLA) where the payment for the software comes from the customer only if the SLA terms are satisfied.

This type of contract may be done just before the software is moved to the production. The contracts have clear terms of agreements on the payment, duration, and scope of testing, and what are actions that will be taken in case there are defects encountered at the final phases.

Regulations Acceptance Testing (RAT)

It is mainly done to check if the software is satisfying all the government rules and regulations. In scenarios, where the rules are not followed and the software is released, severe loss in business is encountered. Moreover, the government rules and regulations are different in different regions.

In case the software does not cater to all the rules and regulations for some areas, then it should not be released there.

Operational Acceptance Testing (OAT)

It is mainly conducted to check if the software is satisfying all its non-functional requirements. It verifies the performance, stability, security, scalability etc of the software prior to being released to the production.

Alpha Testing

Alpha testing is performed by the internal team of testers to verify that the software is working properly in an environment which is similar to the production.

Beta Testing

Beta testing is performed by the actual customers to validate if the software is working properly in the real user environment. Their experiences of using the software are shared with the developers so that they can fix the defects and enhance its quality.

Uses of Acceptance Testing

The uses of acceptance testing are listed below −

  • To detect defects which are missed in other testing phases.
  • It gives an idea on how the software is performing.
  • It verifies if the software is working as per the user requirements.
  • It allows sharing of the customer experiences while using the software with the development team.
  • It reduces the probability of finding defects in the production.

Advantages of Acceptance Testing

The advantages of acceptance testing are listed below −

  • It helps to get an idea about the future requirements from the clients while they share their feedback on how the software is behaving.
  • It allows automation of the acceptance test cases.
  • It brings faith, trust and confidence of the clients since they get the chance to actually use the software.
  • It is a black box testing technique and hence completely focussed on how the software is behaving.

Disadvantages of Acceptance Testing

The disadvantages of acceptance testing are listed below −

  • The testers verifying the software should have good knowledge on it.
  • Occasionally, the customers may not like being dragged to testing the software.
  • It is a time consuming process to get all the feedback from the customers. Moreover, they keep on changing from one person to another.

Conclusion

This concludes our comprehensive take on the tutorial on Software Acceptance Testing. Weve started with describing what is acceptance testing, what are the different types of acceptance testing, what are the uses, advantages, and disadvantages of acceptance testing.

This equips you with in-depth knowledge of Software Acceptance Testing. It is wise to keep practicing what youve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.

Advertisements