Acceptance testing is a testing method that verifies whether developed features meet business requirements and user stories, from the perspective of the product owner and stakeholders.
While unit tests and functional tests verify "whether the code works correctly," acceptance tests verify "whether the product meets what the business requires." Even if there are no bugs, a release cannot proceed if the behavior differs from the requirements.
Acceptance tests are often written in a format close to natural language. Scenarios are described in terms of user actions and expected outcomes — for example, "When an administrator logs in and opens the employee list, only employees belonging to their own tenant are displayed." The Gherkin (Given-When-Then) syntax is a representative format for this.
Some acceptance tests are executed manually, while others are automated using tools such as Playwright. In ATDD (Acceptance Test-Driven Development), acceptance criteria are defined first, implemented as automated tests, and then development begins. Since relying on manual testing tends to reduce execution frequency, automating critical scenarios has become standard practice.
In Scrum development, the results of acceptance tests are often reviewed during the Sprint Review. Since these results serve as the basis for the Product Owner to determine "whether this feature is acceptable," it is ideal for the team to agree on test scenarios during Sprint Planning.


ATDD (Acceptance Test-Driven Development) is a development methodology in which the entire team defines acceptance test criteria before development begins, automates those tests, and then proceeds with implementation.

Functional testing (feature testing) is a testing method that verifies system behavior in terms of specific features or use cases. It covers a broader scope than unit testing, confirming that multiple modules work together correctly.

Unit testing is a testing method that individually verifies the smallest units of a program, such as functions and methods. By replacing external dependencies with mocks, it allows for rapid validation of the target logic in isolation.


Closing the "Invisible Attack Vector" in AI Chat — An Implementation Guide to Preventing Prompt Injection via DB

E2E testing (End-to-End testing) is a testing methodology that simulates user interactions to drive requests through the entire system via a browser or API, verifying that the expected results are produced.