As the term implies, this is the process of the user testing the system and, based on the results, either granting
or refusing acceptance of the software/system being tested. It's often referred to as Functional Testing, Beta Testing,
QA Testing, Application Testing, End User Testing. It is also sometimes split into Factory Acceptance Testing and Site
Acceptance Testing, the first being run in-huse, the second at the customer's site. It generally takes the form of a series
or suite of tests designed to be run on the final system. Each test has a boolean output - pass or fail. 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 installation environment. These tests are accompanied by the relevant input data and the expected output
data. The tests are run againt the supplied input data and the actual output is compared to the expected output. If the
two match, the tests pass. If they don't the system may either be rejected or accepted on condition that failed tests
are re-run against a modified system at a later date (usually before final delivery).
As with all testing, the objective is to break the system. You can only ever prove that the software doesn't work. The
best you can hope for is that you've caught all the bugs. There's never a guarantee. You may have missed something obscure
in the code or one of your tests may be incorrect. You certainly can't test everything. It's all about increasing
confidence level.
All Wikipedia text
is available under the
terms of the GNU Free Documentation License