Skip to main content

Acceptance Testing

In Turkish
Kabul Testi
Updated 2 min read

Share this page

Send the link, quote the definition with a link back, or show it as a card on your own site.

https://softwaredictionary.org/terms/acceptance-testing

In short

Acceptance testing checks whether software meets the requirements agreed with its users or customers, so the team can decide if it is ready to release.

What is acceptance testing?

Acceptance testing verifies that a feature or a whole system does what its users, customers, or business owners actually asked for. It answers the question of whether the team built the right thing, rather than whether one function returns the right value. The checks usually come straight from the acceptance criteria of a user story, a requirements document, or a contract.

There are two broad forms. Automated acceptance tests are written by developers or testers against the system's public interface, such as its UI or API, and run in the CI/CD pipeline, with each test mapped to one agreed requirement. User acceptance testing (UAT) is done by real users, customers, or the Product Owner, who try the software in a staging environment and formally sign off before release. Some industries add alpha and beta testing, or operational acceptance testing that checks backups, monitoring, and recovery.

Think of the final walkthrough before buying a new house: the buyer checks the house against what was promised, such as three bedrooms and working heating, not how the pipes were soldered. Teams run acceptance tests at the end of a sprint, before a major release, or before handing over software built under a contract.

Acceptance testing is often confused with end-to-end testing. End-to-end describes the scope of a test, the whole system driven through its real interface, while acceptance describes its purpose, checking a requirement from the user's point of view. Many acceptance tests are end-to-end tests, but an acceptance test can also call an API or a service layer directly. It also differs from acceptance criteria: the criteria are the conditions, and the acceptance tests are the checks that verify them.

Key takeaways

  • Acceptance testing checks software against agreed user or business requirements.
  • Automated acceptance tests usually map one test to one acceptance criterion.
  • User acceptance testing (UAT) is done by real users or customers before sign-off.
  • End-to-end describes a test's scope; acceptance describes its purpose.

Example

Automated acceptance tests written from a story's criteriapython
# Story: "As a shopper, I get free shipping on orders of $50 or more."
# Each test checks one acceptance criterion through the public API.

def test_orders_of_50_dollars_or_more_ship_free(api):
    cart = api.create_cart(items=[{"sku": "BOOK-1", "price": 50.00}])
    assert api.checkout(cart).shipping_cost == 0

def test_orders_under_50_dollars_pay_standard_shipping(api):
    cart = api.create_cart(items=[{"sku": "PEN-1", "price": 12.00}])
    assert api.checkout(cart).shipping_cost == 4.99

Readers ask

What is UAT?

UAT stands for user acceptance testing. Real users, customers, or their representatives try the finished software in a realistic environment and confirm that it supports their work before it goes live.

What is the difference between system testing and acceptance testing?

System testing is done by the development or QA team to check that the complete system meets its technical specification. Acceptance testing looks at the same system from the user's or business's point of view and decides whether it is acceptable to release.

Who writes acceptance tests?

The criteria are agreed by the Product Owner, developers, and testers together. Developers or testers usually automate them, while user acceptance testing is performed by the users or customers themselves.

See also

Spotted a mistake or something missing on this page?Suggest an edit

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings