Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Gauge your BDD Tests
vodQA Hyderabad 2015
Shivaling
Apoorva M
Mahendra Kariya
Agenda
● Discussion about BDD (15 mins)
● Hands-on workshop (75 mins)
● Advanced Features Demo (15 mins)
● Q & A (15 mins)
#vodqa
#thoughtworks
@getgauge
What is TDD?
Test-driven development (TDD) is a technique for
building software that guides software development by
writin...
TDD (Contd…)
● Req: Calculation engine to be able to add 2 numbers
● Tests
○ @Test
shouldAddPositiveNumbers() {
assertEqua...
So, BDD then?
People are moving towards BDD
But what is BDD?
When asked what is BDD
● It’s just TDD right?
● That Given-When-Then thing
● Business driven development
● The BA/PO write...
A collaborative way to define what behaviour in a system
should be tested, by using the same language (natural
language) a...
The Requirement
As a [Role]
I want [Feature]
So that I receive [Value]
As an online shopper
I want to search for products
...
The Test
Given [Context]
When [Event Occurs]
Then [Outcome]
Given that I have logged in
When I search for a product
Then l...
A Badly Written Test
Given that I am on the home page
When I click on the “login” link
And I type text “Mahendra” in the “...
A Well Written Test
Given I land on the homepage
When I log into my account with username “Mahendra” and
password “pwd”
Th...
Another Well Written Test
● Open Home Page
● Login with with username “Mahendra” and password
“pwd”
● “Profile” page is di...
Popular BDD testing frameworks
● Cucumber (https://cucumber.io)
● Jasmine (http://jasmine.github.io)
● JBehave (http://jbe...
In a tool we want...
● Simplicity
because who doesn’t like simple!!
● Maintainability
because everyone has been on a long ...
What if we want to break away from every form of
syntax and write specifications in natural
language?
Like you’d write an ...
http://getgauge.io
About Gauge
● Open Source
● Simple Markdown syntax
● Multiple Language Support (Java, C#, Ruby)
● First class parallel exe...
Hands - on Workshop
Advanced Features Demo
● Table driven execution
● Data Store
● Tags & tag expressions
● Execution hooks
● Parallel Executi...
Suggested Reading
● http://dannorth.net/introducing-bdd/
● http://behaviourdriven.org/
● http://guide.agilealliance.org/gu...
THANK YOU
For questions or suggestions:
vodqa-hyderabad@thoughtworks.com
getgauge@googlegroups.com
@getgauge
http://getgau...
Upcoming SlideShare
Loading in …5
×

Gauge your BDD Test (vodQA Hyderabad)

889 views

Published on

This is the presentation for the "Gauge your BDD Tests" automation testing workshop conducted at vodQA Hyderabad 2015 in ThoughtWorks Hyderabad office.

Published in: Technology
  • Be the first to comment

Gauge your BDD Test (vodQA Hyderabad)

  1. 1. Gauge your BDD Tests vodQA Hyderabad 2015 Shivaling Apoorva M Mahendra Kariya
  2. 2. Agenda ● Discussion about BDD (15 mins) ● Hands-on workshop (75 mins) ● Advanced Features Demo (15 mins) ● Q & A (15 mins)
  3. 3. #vodqa #thoughtworks @getgauge
  4. 4. What is TDD? Test-driven development (TDD) is a technique for building software that guides software development by writing tests first. - Martin Fowler
  5. 5. TDD (Contd…) ● Req: Calculation engine to be able to add 2 numbers ● Tests ○ @Test shouldAddPositiveNumbers() { assertEquals(calculator.add(1, 2), 3); } ○ @Test shouldAddNegativeNumbers() { assertEquals(calculator.add(-1, -2), -3); } ○ @Test shouldAddNumbersInWords(){ assertEquals(calculator.add(“one”, “two”), 3); }
  6. 6. So, BDD then? People are moving towards BDD But what is BDD?
  7. 7. When asked what is BDD ● It’s just TDD right? ● That Given-When-Then thing ● Business driven development ● The BA/PO writes the requirements and then the devs write tests
  8. 8. A collaborative way to define what behaviour in a system should be tested, by using the same language (natural language) and grammar used to capture the business need. BDD is...
  9. 9. The Requirement As a [Role] I want [Feature] So that I receive [Value] As an online shopper I want to search for products So that I can make buying decision
  10. 10. The Test Given [Context] When [Event Occurs] Then [Outcome] Given that I have logged in When I search for a product Then list of related items are displayed
  11. 11. A Badly Written Test Given that I am on the home page When I click on the “login” link And I type text “Mahendra” in the “name” text box And I type “pwd” in the “password” text box And I click the “login” button Then I can see my profile
  12. 12. A Well Written Test Given I land on the homepage When I log into my account with username “Mahendra” and password “pwd” Then I am on the “profile” page
  13. 13. Another Well Written Test ● Open Home Page ● Login with with username “Mahendra” and password “pwd” ● “Profile” page is displayed
  14. 14. Popular BDD testing frameworks ● Cucumber (https://cucumber.io) ● Jasmine (http://jasmine.github.io) ● JBehave (http://jbehave.org) ● Concordian (http://concordion.org) ● easyb (http://easyb.org)
  15. 15. In a tool we want... ● Simplicity because who doesn’t like simple!! ● Maintainability because everyone has been on a long running project and we know it is hell to keep tests working ● Customisability because we all have our own preferences ● Speed because we all have that need for speed
  16. 16. What if we want to break away from every form of syntax and write specifications in natural language? Like you’d write an email
  17. 17. http://getgauge.io
  18. 18. About Gauge ● Open Source ● Simple Markdown syntax ● Multiple Language Support (Java, C#, Ruby) ● First class parallel execution support ● Extensible and Hackable ● IDE support (IntelliJ, VS, Eclipse) ● First class CI / CD integration support
  19. 19. Hands - on Workshop
  20. 20. Advanced Features Demo ● Table driven execution ● Data Store ● Tags & tag expressions ● Execution hooks ● Parallel Execution ● Concepts
  21. 21. Suggested Reading ● http://dannorth.net/introducing-bdd/ ● http://behaviourdriven.org/ ● http://guide.agilealliance.org/guide/bdd.html ● http://dannorth.net/2012/05/31/bdd-is-like-tdd-if/ ● http://lizkeogh.com/behaviour-driven-development/ ● http://lizkeogh.com/2012/05/30/showcasing-the-language-of-bdd/ ● http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in- user-stories.html
  22. 22. THANK YOU For questions or suggestions: vodqa-hyderabad@thoughtworks.com getgauge@googlegroups.com @getgauge http://getgauge.io

×