SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
AMIR BARYLKO
                             QUALITY DRIVEN
                            BEHAVIOUR DRIVEN
                              DEVELOPMENT

                                  JVM UG
                                  JAN 2012


Amir Barylko - BDD                           MavenThought Inc.
Tuesday, January 10, 2012
WHO AM I?

    • Architect

    • Developer

    • Mentor

    • Great             cook

    • The          one who’s entertaining you for the next hour!


Amir Barylko - BDD                                                 MavenThought Inc.
Tuesday, January 10, 2012
TESTING
                                          Unit tests
                                            TDD
                                      Integration Tests
                                      Acceptance Tests



Amir Barylko - BDD Training OCT ‘11                       MavenThought Inc.
Tuesday, January 10, 2012
UNIT TESTING

    • Test             for a class or method
    • No             dependencies
    • Should                use mocking
    • Small

    • Clear

Amir Barylko - BDD Training OCT ‘11            MavenThought Inc.
Tuesday, January 10, 2012
TDD

    • First            write a test that fails (RED)
    • Write                  code to make it pass (GREEN)
    • Check                  if code can be improved (REFACTOR)
    • Start                 again until it’s done


Amir Barylko - BDD Training OCT ‘11                         MavenThought Inc.
Tuesday, January 10, 2012
BENEFITS OF TDD

    • Prove                 that your code     • Regression   tests as
        works                                   byproduct
    • Avoid   waste                            • Makechanges with
        (debugging)                             confidence
    • Increment                 code quality   • Bring
                                                     back the joy of
                                                coding!
    • Better                design
Amir Barylko - BDD Training OCT ‘11                              MavenThought Inc.
Tuesday, January 10, 2012
WHEN TDD IS NOT ENOUGH

    •Legacy Code
    •Refactoring is not viable
    •Verify functionality across layers
    •Validate feature end to end
Amir Barylko - BDD Training OCT ‘11   MavenThought Inc.
Tuesday, January 10, 2012
INTEGRATION TEST

    •More                    than one class
    •Still                  some parts can be mocked
    •Partial                  functionality of subsystem


Amir Barylko - BDD Training OCT ‘11                   MavenThought Inc.
Tuesday, January 10, 2012
ACCEPTANCE TEST

    •Black                  box testing
    •Crossing                  all layers
    •Should                  cover all scenarios
    •External                  subsystems may be mocked
Amir Barylko - BDD Training OCT ‘11                MavenThought Inc.
Tuesday, January 10, 2012
SOFTWARE QUALITY
                                  What is it?
                                 Low Quality
                                 Classic QA




Amir Barylko - BDD                              MavenThought Inc.
Tuesday, January 10, 2012
WHAT DOES IT MEAN?

    • Better                code?
    • Faster                delivery?
    • Less             bugs?
    • Make                  sure we deliver the right thing?
    • Better                Processes?
Amir Barylko - BDD                                             MavenThought Inc.
Tuesday, January 10, 2012
LOW QUALITY

    • Lack           of testing

    • Lack           of communication

    • Lack           of metrics

    • Lack           of traceability

    • Wrong                 tools


Amir Barylko - BDD                                MavenThought Inc.
Tuesday, January 10, 2012
CLASSIC QA

    • Team              separated from developments
    • Follow                scripts or requirements
    • Done                  after the feature is implemented
    • May            have more than one project in the queue
    • Feedback                 cycle may take weeks
    • Manual                 (no automation)
Amir Barylko - BDD                                             MavenThought Inc.
Tuesday, January 10, 2012
DOES IT WORK?

    •Your                   opinion here......




Amir Barylko - BDD                               MavenThought Inc.
Tuesday, January 10, 2012
A NEW CONCEPT
                                 Feature First
                                    Benefits
                              Outside In Approach
                               Runnable features
                                     Roles


Amir Barylko - BDD                                  MavenThought Inc.
Tuesday, January 10, 2012
FEATURE FIRST

    • Write                 the feature before implementation
    • Developers                 will implement feature using TDD
    • QA              will validate against feature
    • Repeat                 until all features are done


Amir Barylko - BDD                                              MavenThought Inc.
Tuesday, January 10, 2012
BENEFITS

    • Focus                 on the feature
    • Testing                all the way
    • Traceability

    • Quality                every step of the process


Amir Barylko - BDD                                       MavenThought Inc.
Tuesday, January 10, 2012
OUTSIDE IN APPROACH
                                       Red
                                       BDD

                                       Red




        Refactor            Refactor   TDD   Green   Green




Amir Barylko - BDD                                     MavenThought Inc.
Tuesday, January 10, 2012
RUNNABLE FEATURES

    • Features                 describe functionality
    • What                  if we could run them?
    • Then                  features would validate functionality
    • Becoming                  live documentation


Amir Barylko - BDD                                                  MavenThought Inc.
Tuesday, January 10, 2012
ROLES

    • Who                   writes the feature?
    • Who                   implements the feature?
    • Who                   validates the feature?
    • What’s                 the role of QA, PM, etc?


Amir Barylko - BDD                                      MavenThought Inc.
Tuesday, January 10, 2012
WRITING FEATURES
                                  Gherkin
                                   Syntax
                                  Feature
                                  Scenario
                                    Steps


Amir Barylko - BDD                             MavenThought Inc.
Tuesday, January 10, 2012
GHERKIN DSL

    • Business              readable DSL

    • Flush           out requirements

    • Documentation

    • Automated               testing

    • Used    by Cucumber, SpecFlow,
        jBehave

Amir Barylko - BDD                              MavenThought Inc.
Tuesday, January 10, 2012
SYNTAX
    Feature: Listing movies
         As a User
         I want to list movies
         So I can see the contents of the library


    Scenario: Browse available movies
         Given I have the following movies
         When I go to "Movies"
         Then I should see in the listing




Amir Barylko - BDD                                  MavenThought Inc.
Tuesday, January 10, 2012
FEATURES

    • Keyword               Feature

    • The          rest is free text

    Feature: Listing movies
      As a User
           I want to list movies
           So I can see the contents of the library



Amir Barylko - BDD                                MavenThought Inc.
Tuesday, January 10, 2012
SCENARIOS

    • Each                  feature file can have multiple scenarios
    • Each                  scenario can contain multiple steps
    • Keywords:

         • Given                When Then
         • And                Not But
Amir Barylko - BDD                                                MavenThought Inc.
Tuesday, January 10, 2012
STEPS

    Scenario: Browse available movies

           Given I have some movies

           When             I go to the listing page

           Then             I should see all the movies




Amir Barylko - BDD                                        MavenThought Inc.
Tuesday, January 10, 2012
TOOLS
                                 jBehave
                                 Scalatest
                            Cucumber + Capybara
                                  jDave



Amir Barylko - BDD                                MavenThought Inc.
Tuesday, January 10, 2012
JBEHAVE




Amir Barylko - BDD                    MavenThought Inc.
Tuesday, January 10, 2012
SCALATEST




Amir Barylko - BDD                      MavenThought Inc.
Tuesday, January 10, 2012
CUCUMBER




Amir Barylko - BDD                     MavenThought Inc.
Tuesday, January 10, 2012
BDD DEMO




Amir Barylko - BDD                     MavenThought Inc.
Tuesday, January 10, 2012
QUESTIONS?




Amir Barylko - BDD                       MavenThought Inc.
Tuesday, January 10, 2012
RESOURCES

    • Contact               me: amir@barylko.com, @abarylko

    • Download: http://www.orthocoders.com/presentations




Amir Barylko - BDD                                            MavenThought Inc.
Tuesday, January 10, 2012
RESOURCES II

    • jBehave: http://jbehave.org

    • Cucumber: http://cukes.info

    • ScalaTest: http://scalatest.org

    • Selenium: http://seleniumhq.org

    • jDave: http://jdave.org

    • EasyB: http://easyb.org

Amir Barylko - BDD                         MavenThought Inc.
Tuesday, January 10, 2012

Weitere ähnliche Inhalte

Was ist angesagt?

Codemash-advanced-ioc-castle-windsor
Codemash-advanced-ioc-castle-windsorCodemash-advanced-ioc-castle-windsor
Codemash-advanced-ioc-castle-windsorAmir Barylko
 
CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2Amir Barylko
 
CPL12-Agile-planning
CPL12-Agile-planningCPL12-Agile-planning
CPL12-Agile-planningAmir Barylko
 
Cpl12 continuous integration
Cpl12 continuous integrationCpl12 continuous integration
Cpl12 continuous integrationAmir Barylko
 
PRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesPRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesAmir Barylko
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Mozaic Works
 
Agile requirements
Agile requirementsAgile requirements
Agile requirementsAmir Barylko
 
WTF TDD?
WTF TDD?WTF TDD?
WTF TDD?jeremyw
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybridsOron Ben Zvi
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-luganoFabrizio Giudici
 
Real life unit testing tools and practices
Real life unit testing   tools and practicesReal life unit testing   tools and practices
Real life unit testing tools and practicesGil Zilberfeld
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 
WebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D EngineWebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D Engineaerotwist
 
Paving the Way for Agile Engineering Practices
Paving the Way for Agile Engineering PracticesPaving the Way for Agile Engineering Practices
Paving the Way for Agile Engineering PracticesAman King
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftPhilly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftJordan Yaker
 
Automated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashAutomated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashNiels Frydenholm
 

Was ist angesagt? (20)

Codemash-advanced-ioc-castle-windsor
Codemash-advanced-ioc-castle-windsorCodemash-advanced-ioc-castle-windsor
Codemash-advanced-ioc-castle-windsor
 
CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2
 
decoupling-ea
decoupling-eadecoupling-ea
decoupling-ea
 
CPL12-Agile-planning
CPL12-Agile-planningCPL12-Agile-planning
CPL12-Agile-planning
 
Cpl12 continuous integration
Cpl12 continuous integrationCpl12 continuous integration
Cpl12 continuous integration
 
PRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesPRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakes
 
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
Aki Salmi - Refactoring legacy code: a true story @ I T.A.K.E. Unconference 2...
 
Agile requirements
Agile requirementsAgile requirements
Agile requirements
 
obs-tdd-intro
obs-tdd-introobs-tdd-intro
obs-tdd-intro
 
Diy arduino
Diy arduinoDiy arduino
Diy arduino
 
WTF TDD?
WTF TDD?WTF TDD?
WTF TDD?
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-lugano
 
Real life unit testing tools and practices
Real life unit testing   tools and practicesReal life unit testing   tools and practices
Real life unit testing tools and practices
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
WebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D EngineWebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D Engine
 
Paving the Way for Agile Engineering Practices
Paving the Way for Agile Engineering PracticesPaving the Way for Agile Engineering Practices
Paving the Way for Agile Engineering Practices
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftPhilly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
 
Automated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashAutomated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/Calabash
 

Andere mochten auch

Introducing bdd elements to unit testing.pptx
Introducing bdd elements to unit testing.pptxIntroducing bdd elements to unit testing.pptx
Introducing bdd elements to unit testing.pptxAnders Hammervold
 
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...Craeg Strong
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...Gene Kim
 
BDD for Rails Legacy Code
BDD for Rails Legacy CodeBDD for Rails Legacy Code
BDD for Rails Legacy CodeWei Jen Lu
 
Agile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin Salvekar
Agile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin SalvekarAgile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin Salvekar
Agile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin SalvekarIndia Scrum Enthusiasts Community
 
Bdd for legacy system
Bdd for legacy systemBdd for legacy system
Bdd for legacy systemSpin Lai
 
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...Agile Testing Alliance
 
Object-Oriented BDD w/ Cucumber by Matt van Horn
Object-Oriented BDD w/ Cucumber by Matt van HornObject-Oriented BDD w/ Cucumber by Matt van Horn
Object-Oriented BDD w/ Cucumber by Matt van HornSolano Labs
 
10 things about BDD, Cucumber and SpecFlow - Long Version 2016
10 things about BDD, Cucumber and SpecFlow - Long Version 201610 things about BDD, Cucumber and SpecFlow - Long Version 2016
10 things about BDD, Cucumber and SpecFlow - Long Version 2016Seb Rose
 
Mock Aren't Stub 讀後心得
Mock Aren't Stub 讀後心得Mock Aren't Stub 讀後心得
Mock Aren't Stub 讀後心得Wei Jen Lu
 
BDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteBDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteLasantha Ranaweera
 
Impact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltImpact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltChristian Hassa
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Gáspár Nagy
 
Moving away from legacy code (AgileCymru)
Moving away from legacy code  (AgileCymru)Moving away from legacy code  (AgileCymru)
Moving away from legacy code (AgileCymru)Konstantin Kudryashov
 
Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Christian Hassa
 
Cross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowCross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowChristian Hassa
 

Andere mochten auch (20)

Introducing bdd elements to unit testing.pptx
Introducing bdd elements to unit testing.pptxIntroducing bdd elements to unit testing.pptx
Introducing bdd elements to unit testing.pptx
 
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
 
BDD for Rails Legacy Code
BDD for Rails Legacy CodeBDD for Rails Legacy Code
BDD for Rails Legacy Code
 
Agile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin Salvekar
Agile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin SalvekarAgile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin Salvekar
Agile Tour Pune 2015:Test automation using BDD - Anita Pol and Sachin Salvekar
 
Bdd for legacy system
Bdd for legacy systemBdd for legacy system
Bdd for legacy system
 
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
ATAAS 2016 - Amol pradhan - Bridging the gap between business and technology ...
 
Impact Map Your Project
Impact Map Your ProjectImpact Map Your Project
Impact Map Your Project
 
Object-Oriented BDD w/ Cucumber by Matt van Horn
Object-Oriented BDD w/ Cucumber by Matt van HornObject-Oriented BDD w/ Cucumber by Matt van Horn
Object-Oriented BDD w/ Cucumber by Matt van Horn
 
10 things about BDD, Cucumber and SpecFlow - Long Version 2016
10 things about BDD, Cucumber and SpecFlow - Long Version 201610 things about BDD, Cucumber and SpecFlow - Long Version 2016
10 things about BDD, Cucumber and SpecFlow - Long Version 2016
 
Mock Aren't Stub 讀後心得
Mock Aren't Stub 讀後心得Mock Aren't Stub 讀後心得
Mock Aren't Stub 讀後心得
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
BDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteBDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product Suite
 
Impact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltImpact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zählt
 
Upcoming events 2017
Upcoming events 2017Upcoming events 2017
Upcoming events 2017
 
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
Scaffolding a legacy app with BDD scenarios using SpecFlow/Cucumber (BDD Lond...
 
Moving away from legacy code (AgileCymru)
Moving away from legacy code  (AgileCymru)Moving away from legacy code  (AgileCymru)
Moving away from legacy code (AgileCymru)
 
Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!
 
Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)
 
Cross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowCross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlow
 

Ähnlich wie Jvm-bdd-quality-driven

Testing and beyond at startups
Testing and beyond at startupsTesting and beyond at startups
Testing and beyond at startupsMona Soni
 
SDEC10-Bdd-quality-driven
SDEC10-Bdd-quality-drivenSDEC10-Bdd-quality-driven
SDEC10-Bdd-quality-drivenAmir Barylko
 
2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven2012 regina TC - 103 quality driven
2012 regina TC - 103 quality drivenAmir Barylko
 
Solit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис АлександрSolit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис Александрsolit
 
Teams and responsibilities
Teams and responsibilitiesTeams and responsibilities
Teams and responsibilitiesAmir Barylko
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineRemus Langu
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkinscowboyd
 
Inside Behavior Driven Development
Inside Behavior Driven DevelopmentInside Behavior Driven Development
Inside Behavior Driven DevelopmentCamille Bell
 
Running Automated Acceptance Tests On Rancher
Running Automated Acceptance Tests On RancherRunning Automated Acceptance Tests On Rancher
Running Automated Acceptance Tests On RancherBogdan Marian
 
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Dharmesh Sheta
 
BDD approaches for web development at Agile Testing Days 2009
BDD approaches for web development at Agile Testing Days 2009BDD approaches for web development at Agile Testing Days 2009
BDD approaches for web development at Agile Testing Days 2009Thomas Lundström
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
 
Bdd For Web Applications from Scandinavian Developer Conference 2010
Bdd For Web Applications from Scandinavian Developer Conference 2010Bdd For Web Applications from Scandinavian Developer Conference 2010
Bdd For Web Applications from Scandinavian Developer Conference 2010Thomas Lundström
 
Lessons learned in rolling out BDDs in a large project
Lessons learned in rolling out BDDs in a large projectLessons learned in rolling out BDDs in a large project
Lessons learned in rolling out BDDs in a large projectCampus Interaction
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDaysJKT
 
Bdd. Automate your requirements
Bdd. Automate your requirementsBdd. Automate your requirements
Bdd. Automate your requirementsjugkaraganda
 
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandJanet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandDavid O'Dowd
 

Ähnlich wie Jvm-bdd-quality-driven (20)

why-tdd
why-tddwhy-tdd
why-tdd
 
Testing and beyond at startups
Testing and beyond at startupsTesting and beyond at startups
Testing and beyond at startups
 
SDEC10-Bdd-quality-driven
SDEC10-Bdd-quality-drivenSDEC10-Bdd-quality-driven
SDEC10-Bdd-quality-driven
 
2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven
 
Solit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис АлександрSolit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис Александр
 
Teams and responsibilities
Teams and responsibilitiesTeams and responsibilities
Teams and responsibilities
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkins
 
Inside Behavior Driven Development
Inside Behavior Driven DevelopmentInside Behavior Driven Development
Inside Behavior Driven Development
 
Improving Design through TDD
Improving Design through TDDImproving Design through TDD
Improving Design through TDD
 
Running Automated Acceptance Tests On Rancher
Running Automated Acceptance Tests On RancherRunning Automated Acceptance Tests On Rancher
Running Automated Acceptance Tests On Rancher
 
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
 
BDD approaches for web development at Agile Testing Days 2009
BDD approaches for web development at Agile Testing Days 2009BDD approaches for web development at Agile Testing Days 2009
BDD approaches for web development at Agile Testing Days 2009
 
BDD agile china2012_share
BDD agile china2012_shareBDD agile china2012_share
BDD agile china2012_share
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
Bdd For Web Applications from Scandinavian Developer Conference 2010
Bdd For Web Applications from Scandinavian Developer Conference 2010Bdd For Web Applications from Scandinavian Developer Conference 2010
Bdd For Web Applications from Scandinavian Developer Conference 2010
 
Lessons learned in rolling out BDDs in a large project
Lessons learned in rolling out BDDs in a large projectLessons learned in rolling out BDDs in a large project
Lessons learned in rolling out BDDs in a large project
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
Bdd. Automate your requirements
Bdd. Automate your requirementsBdd. Automate your requirements
Bdd. Automate your requirements
 
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandJanet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
 

Mehr von Amir Barylko

Functional converter project
Functional converter projectFunctional converter project
Functional converter projectAmir Barylko
 
Elm: delightful web development
Elm: delightful web developmentElm: delightful web development
Elm: delightful web developmentAmir Barylko
 
User stories deep dive
User stories deep diveUser stories deep dive
User stories deep diveAmir Barylko
 
Coderetreat hosting training
Coderetreat hosting trainingCoderetreat hosting training
Coderetreat hosting trainingAmir Barylko
 
There's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessThere's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessAmir Barylko
 
What's new in c# 6
What's new in c# 6What's new in c# 6
What's new in c# 6Amir Barylko
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?Amir Barylko
 
From coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideFrom coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideAmir Barylko
 
Communication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityCommunication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityAmir Barylko
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentAmir Barylko
 
Agile teams and responsibilities
Agile teams and responsibilitiesAgile teams and responsibilities
Agile teams and responsibilitiesAmir Barylko
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescriptAmir Barylko
 
Rich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptRich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptAmir Barylko
 
Agile requirements
Agile requirementsAgile requirements
Agile requirementsAmir Barylko
 

Mehr von Amir Barylko (20)

Functional converter project
Functional converter projectFunctional converter project
Functional converter project
 
Elm: delightful web development
Elm: delightful web developmentElm: delightful web development
Elm: delightful web development
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
No estimates
No estimatesNo estimates
No estimates
 
User stories deep dive
User stories deep diveUser stories deep dive
User stories deep dive
 
Coderetreat hosting training
Coderetreat hosting trainingCoderetreat hosting training
Coderetreat hosting training
 
There's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessThere's no charge for (functional) awesomeness
There's no charge for (functional) awesomeness
 
What's new in c# 6
What's new in c# 6What's new in c# 6
What's new in c# 6
 
Productive teams
Productive teamsProductive teams
Productive teams
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?
 
From coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideFrom coach to owner - What I learned from the other side
From coach to owner - What I learned from the other side
 
Communication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityCommunication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivity
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Refactoring
RefactoringRefactoring
Refactoring
 
Agile teams and responsibilities
Agile teams and responsibilitiesAgile teams and responsibilities
Agile teams and responsibilities
 
Refactoring
RefactoringRefactoring
Refactoring
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescript
 
Sass & bootstrap
Sass & bootstrapSass & bootstrap
Sass & bootstrap
 
Rich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptRich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & Coffeescript
 
Agile requirements
Agile requirementsAgile requirements
Agile requirements
 

Kürzlich hochgeladen

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Kürzlich hochgeladen (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

Jvm-bdd-quality-driven

  • 1. AMIR BARYLKO QUALITY DRIVEN BEHAVIOUR DRIVEN DEVELOPMENT JVM UG JAN 2012 Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 2. WHO AM I? • Architect • Developer • Mentor • Great cook • The one who’s entertaining you for the next hour! Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 3. TESTING Unit tests TDD Integration Tests Acceptance Tests Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 4. UNIT TESTING • Test for a class or method • No dependencies • Should use mocking • Small • Clear Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 5. TDD • First write a test that fails (RED) • Write code to make it pass (GREEN) • Check if code can be improved (REFACTOR) • Start again until it’s done Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 6. BENEFITS OF TDD • Prove that your code • Regression tests as works byproduct • Avoid waste • Makechanges with (debugging) confidence • Increment code quality • Bring back the joy of coding! • Better design Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 7. WHEN TDD IS NOT ENOUGH •Legacy Code •Refactoring is not viable •Verify functionality across layers •Validate feature end to end Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 8. INTEGRATION TEST •More than one class •Still some parts can be mocked •Partial functionality of subsystem Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 9. ACCEPTANCE TEST •Black box testing •Crossing all layers •Should cover all scenarios •External subsystems may be mocked Amir Barylko - BDD Training OCT ‘11 MavenThought Inc. Tuesday, January 10, 2012
  • 10. SOFTWARE QUALITY What is it? Low Quality Classic QA Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 11. WHAT DOES IT MEAN? • Better code? • Faster delivery? • Less bugs? • Make sure we deliver the right thing? • Better Processes? Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 12. LOW QUALITY • Lack of testing • Lack of communication • Lack of metrics • Lack of traceability • Wrong tools Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 13. CLASSIC QA • Team separated from developments • Follow scripts or requirements • Done after the feature is implemented • May have more than one project in the queue • Feedback cycle may take weeks • Manual (no automation) Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 14. DOES IT WORK? •Your opinion here...... Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 15. A NEW CONCEPT Feature First Benefits Outside In Approach Runnable features Roles Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 16. FEATURE FIRST • Write the feature before implementation • Developers will implement feature using TDD • QA will validate against feature • Repeat until all features are done Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 17. BENEFITS • Focus on the feature • Testing all the way • Traceability • Quality every step of the process Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 18. OUTSIDE IN APPROACH Red BDD Red Refactor Refactor TDD Green Green Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 19. RUNNABLE FEATURES • Features describe functionality • What if we could run them? • Then features would validate functionality • Becoming live documentation Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 20. ROLES • Who writes the feature? • Who implements the feature? • Who validates the feature? • What’s the role of QA, PM, etc? Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 21. WRITING FEATURES Gherkin Syntax Feature Scenario Steps Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 22. GHERKIN DSL • Business readable DSL • Flush out requirements • Documentation • Automated testing • Used by Cucumber, SpecFlow, jBehave Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 23. SYNTAX Feature: Listing movies As a User I want to list movies So I can see the contents of the library Scenario: Browse available movies Given I have the following movies When I go to "Movies" Then I should see in the listing Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 24. FEATURES • Keyword Feature • The rest is free text Feature: Listing movies As a User I want to list movies So I can see the contents of the library Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 25. SCENARIOS • Each feature file can have multiple scenarios • Each scenario can contain multiple steps • Keywords: • Given When Then • And Not But Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 26. STEPS Scenario: Browse available movies Given I have some movies When I go to the listing page Then I should see all the movies Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 27. TOOLS jBehave Scalatest Cucumber + Capybara jDave Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 28. JBEHAVE Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 29. SCALATEST Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 30. CUCUMBER Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 31. BDD DEMO Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 32. QUESTIONS? Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 33. RESOURCES • Contact me: amir@barylko.com, @abarylko • Download: http://www.orthocoders.com/presentations Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012
  • 34. RESOURCES II • jBehave: http://jbehave.org • Cucumber: http://cukes.info • ScalaTest: http://scalatest.org • Selenium: http://seleniumhq.org • jDave: http://jdave.org • EasyB: http://easyb.org Amir Barylko - BDD MavenThought Inc. Tuesday, January 10, 2012