What is the different between usability testing and user acceptance testing? Please provide an example.
Usability testing revolves around human factors testing. This form of testing is sometimes referred to as HCI (human-computer interaction) or HFI (human-factor integration). A practical example that comes to mind would be a bar code scanner -- like the type of scanner you might encounter at the checkout counter of a store. The ergonomic factors of holding (weight and design) of the device as well as its practicality -- for instance, when I buy a case of bottled water at the market, the checkout person can pull the barcode scanner far enough that I don't have to lift the heavy case and they're comfortable walking around the register with the device so that they can scan the item. Testing a handheld device in its environment for its intended use would constitute an example of usability testing. Usability testing of desktop applications can take place as well but I think handheld devices are an easier example to illustrate.
User acceptance testing (UAT) is testing executed by users and is testing often used as a final checkpoint before signoff from a vendor. Let me use the same example of the handheld bar code scanner. Suppose a supermarket chain purchased bar code scanners from a hardware/software vendor. The supermarket executives might assemble a team of checkout personnel and have that very team test the device in a store or a mock store setting (in a home office).
The users would be executing testing to determine if the product was acceptable for their needs. Additionally the executive team might require that user acceptance testing "pass" before they receive the final product from the vendor (and pay for the deliverable).
Both of these forms of testing are centered on users but with a different focus. In the case of usability, hopefully this testing is executed as early as possible while user acceptance testing is often one of the last activities of a project.
- Don't mistake user acceptance testing for acceptance testing
- User acceptance testing vs. system integration testing
- Ten ways to improve testing, performance of Web 2.0 applications