how to bdd with concordion
DESCRIPTION
TRANSCRIPT
Agile XP TDD BDD
TDD (test-driven development)
XP
TDD development cycle
We can relax, don’t we?
{How to :get feature within sprint?write requirements in “Agile”?know when you are DONE?know that implemented feature is one you were asked to?…
.. but questions still occur:
Feel difference
Where to start What to test What not to test How much to test
Everyone wanted to know:
Where are the drugs?
BDD(Behavior-Driven Development)
User story – Business value
Scenarios – Acceptance Criteria
Scenarios are executable – automated tests
BDD solution
Given
When
Then
Title <feature>As a [role]
I want [some action to be taken]
so that [I derive some business
value]
USER STORY template
Title: Registered user should have ability to send message to Assure info center.
As a registered user,
I want to ask Assure about new feature,
so that I want to get Contact Us page to send proper message
Given some initial context (the givens),
When an event occurs,
Then ensure some outcomes.
ACCEPTANCE CRITERIA Template
Scenario 1: Registered user should have ability login to the system.
Given opened Assure login screenAnd there is Assure user with valid credentials
When user enters credential to username and password fields and clicks Login button
Then user’s home page is openedAnd Contact Us link is visible
Scenario 2: Logged in user should have ability to send message to info center.
Given opened user’s home page
When user clicks on Contact Us link
Then Contact Us page is openedAnd Submit button appears
Step 1. Write acceptance tests in a natural language that non-programmers can read.
Step 2. Run tests to identify to what tests code is not implemented yet
Step 3. Implement absence code (functionality).
Step 4. Run tests once again and be sure that all tests are passed, repeat step 3 if needed.
BDD workflow
Benefits:
Natural language that non-programmers can read
Focus on business value
Implement just enough to satisfy acceptance criteria
Improved communication
Instruments:
RSpec Cucumber Jbehave PHP Spec Fitnesse Concordion
CONCORDION.. how it works?
DEMO
Retrospective