Acceptance Criteria vs acceptance tests are often used by the organizations that practice the agile methodology like XP, Scrum, etc. These terms are often used in BDD (i.e. Behavior Driven Development). Both of these terms look confusing but are different from each other in the following way. The Acceptance Criteria is a handful of documents which are prepared to make sure that the testing team has enough acceptance tests in place. However, the acceptance tests, on the other hand, demands the detailed specification of the behavior or functionality of the system that includes all the possible and meaningful test scenarios in order to assert the system’s correctness.
Though there are the differences between the acceptance criteria and acceptance tests but both are also interrelated. The product owner writes the agile user stories which are used by the testing team to evaluate the acceptance criteria after the discussion with the product owner, scrum master and the agile team. The acceptance criteria have the key points just to ensure that the user stories are complete and using this acceptance criterion, the team creates a set of acceptance tests which are also known as story tests. When these story tests are passed successfully then we can declare the user stories are complete and they function as per the customer expectations. Therefore, the overall process is comprised of the two steps for defining the acceptance tests. The first step is defining the high-level acceptance criteria based on the agile user stories and the second step involves using these criteria in order to define the actual acceptance tests which are very detailed as compared to the acceptance criteria. Usually, the acceptance tests are defined either before or during the development of the product which ensures the acceptance tests are ready just after the completion of the product development. Lets see difference between Acceptance Criteria vs acceptance tests.
Acceptance Criteria:
The Acceptance Criteria is very nominal documentation that we need to stipulate the expected behavior of the product feature and the consideration of the edge cases which could have been missed by the testing team while writing the actual test cases. Agile methodology supports working software than the complete documentation. An acceptance criterion is the best example of this Agile’s principle.
In concise documentation, not all scenarios are captured but they have enough information about the possible example and scenarios such that they ensure the correct acceptance tests will be carved out of this. There is no upper or lower cap on the amount of documentation necessary to express the acceptance criteria. One of the best practices is to use a simple bulleted list for capturing the edge cases and the key things that we need to take into consideration. Also, if teams are not co-located it is advisable to keep more details into acceptance criteria more documentation as the co-located teams have the flexibility of clarifying doubts directly with the product owner or another team member as the work time zone may support that. The acceptance criteria are often referred as the “Conditions of Satisfaction”.
The following are the points to remember about the acceptance criteria.
- Defining the Acceptance criteria is the foremost testing step just after writing the agile user stories. It is initiated by the testing team that is comprised of the product owner, Business Analyst, testing lead and other team members.
- Acceptance criteria helps to ensure that the testing team knows what they are going to test the product through the detailed explanation is not given at this point.
- An acceptance criterion is helpful in capturing the important edge test cases and considerations which could be the foundation for capturing the acceptance tests.
- An acceptance criterion is the teamwork which is defined with the collaboration of the development team, testing team and the product owner (i.e. 3 amigos).
- An acceptance criterion is defined either prior or during the product development.
- An acceptance criterion is concise and conceptual but not very detailed. It is expressed at the high level.
- An acceptance criterion also captures the negative and potential failure scenarios.
Acceptance Tests
Acceptance tests are defined either prior or during the product development and the key input documents are the acceptance criteria documents.
The following are the points to remember about the Acceptance Tests.
- Acceptance tests are defined from the Acceptance criteria.
- They define the product functionality in detail and cover all the possible functionality test scenarios.
- They capture the complete behavior of the product as per the customer requirements.
- Acceptance test ensures the product feature will work as per customer expectation.
- Acceptance tests are documented in a detailed manner and define the final entry and exit criteria for the testing.
- Acceptance tests should not be verbose and redundant. Instead, the acceptance tests could be clubbed with the pair-wise testing and the use of the traceability matrix in order to yield the best testing result vs the testing effort of the team.
Acceptance criteria document allows you to cover the all possible set of conditions that are required to be met in order to accept the agile user story as a whole. Acceptance tests are the test scenarios which are carved from the acceptance criteria. Therefore, we can say that the acceptance criteria can be comprised of one or more acceptance tests. We can write the Acceptance tests in the Gherkin language. So that it can be used by the BDD (Behavior Driven Development) tools such as cucumber in order to automate these acceptance tests.
Conclusion:
After outlining the various differences and the close relations between these two terms we can conclude that the Acceptance criteria is referred as “what needs to be done” and the acceptance tests as “how it should be done”. The scope of a user story in agile is explained using Acceptance criteria, which help explain the product functionality which the user story explains. Thus, both Acceptance Criteria vs acceptance tests play an important role in the agile methodology and contribute a lot to the end product testing