4. From “Functional Test” perspective what all problems /
concerns do you guys see in this flow?
From Devs perspective
• Late Feedback
• Functional test does not help
From QAs perspective
• Automation always lags
behind
• QA sign off without
automation
• Lesser time for exploratory
testing
From Team perspective
• Collaboration within Team (Dev/QA/BA)
5. How to overcome problems?
“Begin with the end in mind.” — Stephen R. Covey
One way that worked for us:
Acceptance Test Driven Development (ATDD) is a practice in which the whole
team collaboratively discusses acceptance criteria, with examples, and then
distills them into a set of concrete acceptance tests before development begins.
7. Executable test scenarios in human
readable format…
Scenario 1 : Verify valid login credentials…
Given I am on login page
When I login as username “test” and password “testing”
Then I should get authenticated
Scenario 2 : Verify logout functionality…
Given I am a logged in user
When I click on “logout” link
Then I should be logged out
QA
BA
8. Dev
Application code to make the above statements pass…
//Create login page
// Implement the back-end for login functionality…
Scenario 1 : Verify login functionality…
Given I am on login page
When I login as username “test” and password “testing”
Then I should get authenticated…
Test Scenario …
Scenario 1 : Verify login functionality…
Given I am on login page
When I login as username “test” and password “testing”
Then I should get authenticated
1) Developers run this test scenario and expect it to fail
2) To make the above executable statements pass, developer write the
application and implement the login functionality…
3) Developers run the test scenario mentioned in step 1 and expect it to
pass…
9. QA
Scenario : Verify login and logout functionality…
Given I am on login page
When I login as username “test” and password “testing”
Then I should get authenticated
When I click on “logout” link
Then I should logout
+
Consolidation of test scenarios…
MANUAL TESTING
10. 1
QAs + BAs write scenarios
1
Developers implement scenarios
1
QAs - Manual Testing
and consolidation of scenarios
Typical ATDD flow…
11. Faster feedback cycle
No Automation Backlog.
QA’s get more time to do exploratory testing.
Developers think from different angle while coding.
Very less functional bugs
No separate Test case repository
Greater collaboration within Team
Benefits of ATDD…