The process for defining an acceptance test is comprised of two steps.
1. We first come up with high level acceptance criteria.
2. Right before or during development, we use the criteria to define the actual acceptance tests.
You will notice a distinction between Acceptance Criteria and the Acceptance Tests. Here are the definitions as
- - Acceptance Criteria is the minimal documentation that ensures a sufficient implementation of acceptance tests.
- - Acceptance Tests are the detailed specification of the system’s behavior for all meaningful scenarios, used to assert its correctness.
Acceptance Criteria are also called ‘Conditions of Satisfaction’. These consist of a set of statements that specify the functional, non-functional and performance requirements at the existing stage of the project with a clear pass or fail result. Defined Acceptance Criteria outline the parameters of the user story and determine when a user story is completed. These are a set of rules which cover the system behavior and from which we can make acceptance scenarios.
In Agile, it defines the boundaries of a user story and thus it is used to see whether the user story is complete and working as it should be. It should be mentioned it is a very simple language like a user story which a customer can understand. The acceptance conditions and non- acceptance conditions should be clearly mentioned in the acceptance criteria. The Acceptance Criteria should be a high level document and also provide details to understand and be useful. Acceptance criteria may change when the requirements change.
- - Ensures the team knows when they are done
- - Ensures the team does not forget important edge cases and considerations
- - Produced through collaboration of the developers, testers and product owners (3 amigos)
- - Created prior to development, during planning phase
- - Considers edge cases and failure scenarios
Example of Acceptance Criteria:
User Story: Internet Banking Customer
- 1. The balance is displayed after successful login
- 2. The balance is updated after each transaction
- 3. The balance is displayed after each successful transaction
Acceptance Testing is the process that verifies if the installed piece of code or software works as designed for the user. It is a validation activity that uses test cases which cover scenarios under which the software is expected to be used and is conducted in a ‘production-like’ environment on hardware that is similar to what the user or the customer will use. It is a formal test conducted to determine whether the software application satisfies its Acceptance Criteria and also help the customers to decide whether to accept the system or not. The customer implements the acceptance tests to check whether the user story is completed and correctly implemented. An application can have many acceptance tests to be sure that the functionality of software works.
Defines behavior of system
Ensures the feature works as expected
Code implemented by developers and testers
Test implementation occurs during development
Tests are usually implemented in code, but if testing manually the implementation can be a list of steps/expectations
There are two kinds of Acceptance Testing, namely:
Internal Acceptance Testing – Performed in-house by members who are not involved in the development and testing of the project to ensure that the system works as designed. This type of testing is also called Alpha Testing.
External Acceptance Testing – This testing is of two types:
a) Customer Acceptance Testing – Where the customer does the testing.
b) Beta Testing or User Acceptance Testing – Where the end users test the product.
Example of Acceptance Tests:
User Story: Internet Banking Customer
- - Fail to display balance if the login credentials are wrong
- - Display balance when user login with right credentials
- - Balance updated after each successful transaction
- - Fails to update balance for unsuccessful transaction
- - email with transaction details is sent for successful transaction
- - email with failure notice is sent for failed transaction
In conclusion, we can say that amongst other things, the main difference between Acceptance Criteria and Acceptance Testing lies in the fact that while the former defines ‘what needs to be done’ the latter defines ‘how it should be done’. Simply put, Acceptance Tests complete the story started by Acceptance Criteria and both together make sure that the story is complete and of high functional value.
Article by : Priyanka Sahoo
Sr. Quality Analyst
Linkedin | Stackoverflow