Jump to content

Acceptance testing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Alphajuliet (talk | contribs) at 06:36, 21 February 2007 (Acceptance Testing in Extreme Programming). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In engineering and its various subdisciplines, acceptance testing is performed by the customer on a system prior to the customer accepting delivery or accepting transfer of ownership of that system. For systems, it is performed exclusively through black-box testing. Acceptance testing is also performed on lots (mechanical parts) or batches (chemicals) of manufactured or produced items .

Depending on the engineering subdiscipline, it may also be referred to as functional testing, black-box testing, beta testing, user acceptance testing (UAT), release acceptance, QA testing, application testing, confidence testing, end user testing, final testing, validation testing, factory acceptance testing or site or field acceptance testing. 'Factory acceptance testing' is run within the manufacturer's facilities whereas the site testing or field testing is run within the user's environment.

Overview

Acceptance testing generally involves running a suite of tests on the completed system. Each individual test, known as a case, exercises a particular operating condition of the user's environment or feature of the system, and will result in a pass or fail boolean outcome. There is generally no degree of success or failure. The test environment is usually designed to be identical, or as close as possible, to the anticipated user's environment, including extremes of such. These test cases must each be accompanied by test case input data or a formal description of the operational activities (or both) to be performed—intended to thoroughly exercise the specific case—and a formal description of the expected results.

Process

The acceptance test suite is run against the supplied input data or using an acceptance test script to direct the testers. Then the results obtained are compared with the expected results. If there is a correct match for every case, the test suite is said to pass. If not, the system may either be rejected or accepted on conditions previously agreed between the sponsor and the manufacturer.

The objective is to provide confidence that the delivered system meets the business requirements of both sponsors and users. The acceptance phase may also act as the final quality gateway, where any quality defects not previously detected may be uncovered.

A principal purpose of acceptance testing is that, once completed successfully, and provided certain additional (contractually agreed) acceptance criteria are met, the sponsors will then sign off on the system as satisfying the contract (previously agreed between sponsor and manufacturer), and deliver final payment.

Acceptance Testing in Extreme Programming

Acceptance testing is a term used in agile software development methodologies, particularly Extreme Programming, referring to the functional testing of a user story by the software development team during the implementation phase.

The customer specifies scenarios to test when a user story has been correctly implemented. A story can have one or many acceptance tests, what ever it takes to ensure the functionality works. Acceptance tests are black box system tests. Each acceptance test represents some expected result from the system. Customers are responsible for verifying the correctness of the acceptance tests and reviewing test scores to decide which failed tests are of highest priority. Acceptance tests are also used as regression tests prior to a production release. A user story is not considered complete until it has passed its acceptance tests. This means that new acceptance tests must be created each iteration or the development team will report zero progress.[1]

List of Acceptance Testing Frameworks

See also

References