Acceptance Testing
Acceptance testing is the final phase of functional software
testing conducted to decide whether the system is ready for release. It
involves verifying that the complete system—software, hardware, and other
components—works together to fulfill the specified requirements.
Acceptance testing is typically performed by the customer or
end-user, although other stakeholders may be involved as well. The main purpose
is to evaluate the system's compliance with the business requirements and
assess whether it is acceptable for delivery.
Here are the main types of acceptance testing:
- User
Acceptance Testing (UAT): This is the most common form of acceptance
testing, and is conducted to ensure that the system does exactly what the
user expects. It is typically performed by the end-users.
- Operational
Acceptance Testing (OAT): This testing is done before the software
gets to the user and is also known as Operational Readiness Testing (ORT)
or Operations Acceptance Testing. It is conducted to evaluate the system
against criteria like recoverability, maintainability, and operability.
- Contract
Acceptance Testing: When software is developed externally (by a
separate company or independent contractor), the client may conduct
contract acceptance testing. The aim is to ensure that the software meets
the criteria outlined in the contract.
- Regulation
Acceptance Testing (or Compliance Acceptance Testing): This type of
testing is required for software that needs to comply with regulatory
standards like FDA or FAA regulations.
- Alpha
and Beta Testing: Alpha testing is done towards the end of the product
development phase by internal staff. Beta testing is done by a limited
number of end users before final release.
- Factory
Acceptance Testing (FAT): This is used in custom software developed
for corporate projects. The software is tested at the development site
(factory) and signed off before it goes live.
Overall, acceptance testing helps confirm that a system is
ready for use in real-world scenarios by actual users. It helps ensure that the
delivered system meets the intended business requirements and is satisfactory
to the end-users.
Acceptance Testing: Alpha Testing and Beta Testing,
Special Tests: Regression Testing, GUI Testing,
Acceptance testing, as discussed earlier, is performed to determine
whether a system is ready for release. As part of acceptance testing, we have:
- Alpha
Testing: This is performed towards the end of the development process,
but before the product is released to the general public. Alpha testing is
usually carried out by internal staff, such as developers or end-users,
within the organization that developed the product. It is typically
performed in a controlled environment.
- Beta Testing: This is performed after alpha testing. Versions of the software, known as beta versions, are released to a limited audience outside of the programming team. The purpose of beta testing is to gain insights about the product's functionality in a real-world environment and gather feedback from end-users. This feedback is then used to make final adjustments before the product is fully released. Apart from acceptance testing, there are other special tests performed based on specific needs:
- Regression
Testing: This is performed after modifications (such as bug fixes,
enhancements, or configuration changes) are made to the software, to
ensure that these changes have not adversely affected existing
functionality. Regression testing helps ensure that changes to the
software have not introduced new faults.
- GUI
Testing: This stands for Graphical User Interface Testing and it
involves testing the user interface of a product. This includes checking
elements like menus, buttons, text boxes, layouts, colors, fonts, etc. The
goal is to ensure the GUI is functioning as expected and is user-friendly.
These testing types help in ensuring a holistic validation
of the software and its user interface, leading to a robust and user-friendly
application.