Thursday, December 1, 2011

In software engineering and development, acceptance testing is defined as the testing which is carried out to check if all the kinds of requirements specified by the customer in the contract have been fulfilled or not.

These are the 3 mostly used tests. Other than these, acceptance testing some times may include black box testing to be performed on the software system before the delivery of the software product.

Such kind of black box testing carried out is known by many names such as functional testing, QA testing, final testing, confidence testing, validation testing, factory acceptance testing etc.

It is important to distinguish between the acceptance testing done by the client, user or the customer and acceptance testing done by the system provider prior the delivery of the software artifact i.e., it should be done before the ownership is transferred from the software developer company to the client.

Here the acceptance testing carried out by the customer is called user acceptance testing or UAT in short form. There are other names also for this kind of testing like end user testing, field acceptance testing or site acceptance testing.

The smoke test is the first step of the acceptance testing. It is carried out just before the main and most important step of the acceptance testing.

Acceptance testing generally involves execution of combination of test cases on the completed and finished software system or the application where each and every individual test case implements a particular condition for the operation of the program based on the environment of the user and on the features of the program.

Each test case results in either a pass condition or a fail condition. This output is of the Boolean type. Its very important that the testing environment of the software system should resemble as much closely as possible the environment as anticipated by the user or the client.

It should include the extreme features of user’s anticipated environment without fail. It’s not possible for any testing environment to exactly resemble the user’s anticipated environment. Therefore there is no degree of success or failure defined here.

The test cases are accompanied by the data values which have to be entered as input and a brief description of the functional activity which has to be performed. It also contains a brief description of the expected outcomes and results.

- Acceptance test cases and conditions are created by the business clients or the customers.- The agreement or the contract is written in some business domain language. - The acceptance test is carried out against the given input data with the test case and sometimes an acceptance test script is used to give directions for the testing. - The results thus obtained are then compared with the expected results. - If both the results show up a proper match, then the test case is said to be successful. If the two results don’t match, then the software system is either accepted on the former conditions or it is rejected.- Acceptance testing is aimed at providing the confidence to the client that the produced software artifact meets all the standards specified in the contract.- The acceptance testing is also known as the final gateway. - Acceptance testing works on the principal that acceptance testing once completed successfully i.e., all the conditions have been met successfully, the contractors and the software developers will declare the software system as satisfying, and the client pays off the manufacturer.

Therefore UAT can be defined as a process to confirm that a software system satisfies all the requirements of the contract.