An Overview of Acceptance Testing
An outline description of acceptance testing covering the purpose and objectives of this form of testing. It also provides advice on conducting an acceptance test and the importance of starting early in development.
Acceptance Testing is traditionally seen as marking the change in a system’s ownership from the developers of the system to those that commissioned or will use the system. It is a distinct phase of testing prior to final sign-off and delivery of a system to the customers or business users. The responsibility for acceptance testing may reside with the customer (CAT - Customer Acceptance Testing) and/or end users (UAT) themselves.
The primary objectives of preceding test phases (unit, integration and systems testing) are those of defect identification and ensuring that each step in the process of building the software delivers working products (verification).
The objective of Acceptance Testing is to give confidence that the software being developed, or changed, satisfies the specified requirements, meets customer/user expectations and is fit for business purpose (validation). Unlike the other test phases, an objective of acceptance testing is not to actively look for faults. The expectation should be that the preceding stages of testing have identified and resolved software faults and that the system is ready for operational use.
Clear entry criteria may need to be put in place to ensure that the expectation of a system being ‘production ready’ has been met. This is an opportunity to review the effectiveness, completeness and outcome of previous test phases and to declare any known problems that remain prior to acceptance test commencing.
As a testing phase with it’s own objectives, acceptance should not seek to duplicate other test phases. However, it may repeat previously run test scenarios to provide confidence that preceding test phases have been completed as appropriate. Those involved in or responsible for acceptance should dictate the objectives and coverage of the test phase. In doing so they are likely to consider the following:
• Have the acceptance test conditions been demonstrated?
• Do the test conditions model realistic business scenarios?
• Is there appropriate coverage of each business function?
• Is there appropriate coverage of system reports and screens
• Is there appropriate coverage of application menu options?
• Are updated training materials and system documentation subject to test?
It is important to minimise the number of changes taking place to the system during the acceptance test phase. The cost of rework, to change software or system operation, at this stage of development is high. Implemented changes may invalidate testing that has been already conducted and require greater levels of regression testing to be carried out. Ideally, the software under test should be considered as ‘frozen’ during the acceptance phase.
Where faults are uncovered during acceptance, ‘work-arounds’ should first be investigated before attempting to make changes to the software. However, it may be necessary to agree the correction of high severity/priority problems and to defer/timetable the correction of others before acceptance can occur. These steps of investigation, review, agreement and/or deferral may need to be repeated until the point where the system is considered as acceptable.
The type of project or software under test may allow for parts/modules of the system that meet their acceptance criteria to be signed off in advance of others that don’t. For projects of this type acceptance can be an ongoing and evolving process that allows earlier or the phased implementation of a system into production
In order to minimise the risk of software faults and system changes, acceptance should not just start at software delivery. It needs to be a function of the earliest design and development stages. Early involvement of users in the system requirements and design stages can minimise the risk of gaps and misinterpretations occurring in end system functionality. The benefits reaped at later stages can be the avoidance of re-work and the reduced cost of system delivery.
The primary objectives of preceding test phases (unit, integration and systems testing) are those of defect identification and ensuring that each step in the process of building the software delivers working products (verification).
The objective of Acceptance Testing is to give confidence that the software being developed, or changed, satisfies the specified requirements, meets customer/user expectations and is fit for business purpose (validation). Unlike the other test phases, an objective of acceptance testing is not to actively look for faults. The expectation should be that the preceding stages of testing have identified and resolved software faults and that the system is ready for operational use.
Clear entry criteria may need to be put in place to ensure that the expectation of a system being ‘production ready’ has been met. This is an opportunity to review the effectiveness, completeness and outcome of previous test phases and to declare any known problems that remain prior to acceptance test commencing.
As a testing phase with it’s own objectives, acceptance should not seek to duplicate other test phases. However, it may repeat previously run test scenarios to provide confidence that preceding test phases have been completed as appropriate. Those involved in or responsible for acceptance should dictate the objectives and coverage of the test phase. In doing so they are likely to consider the following:
• Have the acceptance test conditions been demonstrated?
• Do the test conditions model realistic business scenarios?
• Is there appropriate coverage of each business function?
• Is there appropriate coverage of system reports and screens
• Is there appropriate coverage of application menu options?
• Are updated training materials and system documentation subject to test?
It is important to minimise the number of changes taking place to the system during the acceptance test phase. The cost of rework, to change software or system operation, at this stage of development is high. Implemented changes may invalidate testing that has been already conducted and require greater levels of regression testing to be carried out. Ideally, the software under test should be considered as ‘frozen’ during the acceptance phase.
Where faults are uncovered during acceptance, ‘work-arounds’ should first be investigated before attempting to make changes to the software. However, it may be necessary to agree the correction of high severity/priority problems and to defer/timetable the correction of others before acceptance can occur. These steps of investigation, review, agreement and/or deferral may need to be repeated until the point where the system is considered as acceptable.
The type of project or software under test may allow for parts/modules of the system that meet their acceptance criteria to be signed off in advance of others that don’t. For projects of this type acceptance can be an ongoing and evolving process that allows earlier or the phased implementation of a system into production
In order to minimise the risk of software faults and system changes, acceptance should not just start at software delivery. It needs to be a function of the earliest design and development stages. Early involvement of users in the system requirements and design stages can minimise the risk of gaps and misinterpretations occurring in end system functionality. The benefits reaped at later stages can be the avoidance of re-work and the reduced cost of system delivery.

Use the feedback form below to submit your comments.

Use the form below to email this article to your friends.

- Software Testing - Bug and Statuses Used During A Bug Life Cycle
- Software Testing - Check Lists For Software Tester
- Software Testing - Brief Introduction To Exploratory Testing
- Software Testing - Test Cases
- Software Testing - How To Go About For Beginners
- Software Testing - An Introduction!
- Software Testing - How To Log A Bug (Defect)
- Software Testing - Contents of a Bug
- Software Testing - Bug Life Cycles
- How IT Company Makes Software Testing a Walk Through ?
- Is software testing company really important for your software?
- A Closer View at the Software Testing Company and its importance in SDLC…
- Software Testing - An Introduction To Usability Testing
- Software Testing - White Box Testing Strategy
- Software Testing - Black Box Testing Strategy
- Software Testing - Brief Introduction To Security Testing
- Software Verification & Validation Model - An Introduction
- Making a success of software test automation
- Top 5 Best Free Antivirus Software
- Top 10 Best Free Photo Editing Software
- Software Testing Tutorial
- Software Testing Interview Questions
- Types of Software Testing
- Software Testing Methodologies
- Quality Assurance Certification
- Software Testing - Stress Testing
- Software Testing - Acceptance Testing
- Software Testing - Compatibility Testing



