acceptance tests

Acceptance tests are a way to ensure the user functionality exists in the product. Enough test cases are put in to not only prove the feature is there, but that the feature is correct and robust.

I first ran across the term “Acceptance Test” as it had to do with testing cruise missile jet engines. If the engines passed the Acceptance Test, then they were literally gaining a stamp of approval. The tests ensured, primarily, that the core “feature” of thrust and specific fuel consumption were met.

These were two “end user” features critical to the success of the mission — being able to fly far enough and to have enough power to maneuver.

Unit tests, by contrast are more about the sub-components meeting spec. The fuel control needed various temperature and pressure input signals, +/- 5 volts. However, the end user could care less about these low-level details.

So be sure to think about writing those acceptance tests from the end user perspective!

Another benefit is the ability to have automatic traceability between the feature and the code it touches based on the acceptance tests.