Skip to content
Latchkey

What Is Acceptance Testing?

Acceptance testing verifies that software meets its business requirements and is ready to be accepted by users or stakeholders.

Where unit and integration tests ask "does the code work," acceptance testing asks "did we build the right thing." It checks the system against the requirements a customer or product owner actually cares about, usually from the outside, in terms of user-visible behavior. Passing acceptance tests is the signal that a feature is done.

The question it answers

Acceptance testing validates against requirements, not implementation. It confirms that the agreed-upon behavior is present and correct from the user perspective. A feature can pass every unit test and still fail acceptance if it solves the wrong problem.

User versus automated acceptance

Acceptance testing comes in two flavors. User acceptance testing (UAT) is performed by real users or stakeholders, often manually. Automated acceptance tests encode the same requirements as runnable scenarios, frequently written in a BDD Given-When-Then style so they double as living documentation.

A quick example

An automated acceptance test describes a requirement in user terms, then drives the system to confirm it is met.

An acceptance scenario
Scenario: New user sees onboarding
  Given a brand-new account
  When the user signs in for the first time
  Then the onboarding wizard is shown

Where it sits

  • After unit and integration tests pass.
  • At the boundary between engineering and the business.
  • Often expressed as BDD scenarios for shared understanding.
  • As the gate that declares a feature truly done.

Acceptance testing in CI

Automated acceptance tests run in the pipeline like other end-to-end tests, exercising the whole system, so they are slower and occasionally flaky. Running them in parallel on fast, isolated runners and retrying transient failures keeps them dependable enough to gate a release.

Key takeaways

  • Acceptance testing checks the software meets business requirements.
  • It validates the right thing was built, from the user perspective.
  • Automated acceptance tests run in CI, often as BDD scenarios.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →