Acceptance Testing Process


CPE 308

Prerequisites

Current release is on download page, packaged as a jar file.
User manual is posted.
Release notes posted, including known issues.
All tests in repository.
Each test script includes author name.
Each team has a "guest" account enabled for their repository that allows checkout.

Procedure


Instruct will assign review team pairings.

Each team divides into two groups: Product Testers and Integration Testers


Product Testers

Read user manual and known issues.
Download current release and launch it from a command line.
Exercise all the features included in this release.
Write a list of problems encountered.
Any unhandled exceptions cause immediate rejection.
Determine Accept or Reject and inform developers.


Integration Testers

See configuration manager of other team for guest account password.
Checkout repository using guest account.
Run integration test script, verify all passing.
Examine source code. 
If you identify a defect from pure inspection of the source code,
and can create a unit test that reveals it, reject the release.
Seed a defect (and record where).
Build the defective code and be sure you can observe the defective behavior.
Run integration tests (before halftime).

WHILE the tests Pass while running defective code
    Inform authors their integration tests are bad.
    Demonstrate the defective behavior.
    Developers write more tests and commit them to the repository.
    Reviewers "update" their working directory and rerun the integration test.
END
Inform authors the integration tests are good.

(If developers can't exit the loop before time expires, the release is rejected).