Acceptance test-driven development is a test-first approach in which acceptance criteria is well understood by the development team and test cases are created based on the bullet points stated in the acceptance criteria; any modification to the acceptance criteria may done in prior planning meeting in a negotiation with the Product Owner.
The idea of Acceptance test driven development is a set of tests that must pass before an application can be considered finished. The value of testing an application before delivering it is relatively well established.
The team collaborate together to create test cases, with a business representative validating the test cases. The test cases are essentially the characteristics of a user story. The test cases are also called as examples.
The examples include positive tests and scenarios that affirm the right behavior of the story and exception handlers based on sequence of activities. Subsequently, negative tests that cover negative validation flows and non-functional requirements like usability and performance may also be covered. Tests are written in simple language providing necessary inputs, throughputs and the expected output. The tests may also cover certain boundary contains that may or may not be part of the story to establish the story dependency to the other stories. In addition, it’s not recommended to duplicate the test cases with similar characteristics.
Example acceptance test case is given below
scenario “System approves an card swipe for an amount less than the preset maximum limit”
given “the System has selected an open card swipe”,
and “the System has chosen to approve the swipe”,
and “the card swipe amount is less than the agreed maximum limit”,
when “the System completes the action”,
then “the card swipe should be successfully approved”,
What is Functional and Non-Functional Black Box Test Design?
In Agile, developers and testers work together by coding user stories and testing based on the acceptance criteria. The exploratory tests and experience-based tests are created during the test execution (as explained in Exploratory Testing in Agile Methodology) Testers apply various testing traditional techniques like black box using test design techniques like equivalence partitioning, boundary value analysis, decision tables, and state transition testing to create these tests.
Example of boundary value testing: Test cases with test data values with input boundary between 1 and 1000.
The non-functional requirements written in user stories can be also tested using Black box testing, which creates a baseline for non-functional quality characteristics.
For example, the load time of data grid on the main page should be less than 5 sec.