SlideShare a Scribd company logo
BDD with Java using
Concordion and Selenium
                         September 2012
                        Oleksiy Rezchykov



         @ua_spring #JugLviv
About me
Software Engineer for more
than 10 years
Working with Spring during last
6 years
Pragmatic programmer
SpringByExample.com.ua
founder
Testing Automation, Continuous


                                               2
Integration, Continuous
Delivery Consultant
                         @ua_spring #JugLviv
Agenda
What is BDD for?

BDD + Selenium how this works together

Some code

Alternatives

Approach criticism

Conclusion



                       @ua_spring #JugLviv
                                             3
Everything started with
          XP




             @ua_spring #JugLviv
                                   4
Then comes TDD




        @ua_spring #JugLviv
                              5
What is TDD?




       @ua_spring #JugLviv
                             6
TDD is great, but…




Who will take care of the quality?
                                     7
What exactly TDD is?
A 2005 study found that using TDD meant writing
more tests and, in turn, programmers who wrote
more tests tended to be more productive.
Hypotheses relating to code quality and a more
direct correlation between TDD and productivity
were inconclusive.

Wikipedia




                          @ua_spring #JugLviv
                                                  8
What exactly TDD is?
Test-driven development offers more than just
simple validation of correctness, but can also
drive the design of a program

Wikipedia




                           @ua_spring #JugLviv
                                                 9
An attempt to fix TDD -
        ATDD




             @ua_spring #JugLviv
                                   10
An attempt to fix TDD -
         ATDD
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.
   http://testobsessed.com/blog/2008/12/08/acceptance-test-
                         driven-development-atdd-an-overview/




                                  @ua_spring #JugLviv
                                                            11
An attempt to fix TDD -
         ATDD
Acceptance TDD helps coordinate software
projects in a way that helps us deliver exactly
what the customer wants when they want it, and
that doesn’t let us implement the required
functionality only half way.
    http://www.methodsandtools.com/archive/archive.php?id=72




                                 @ua_spring #JugLviv
                                                          12
What is BDD?
  At the heart of BDD is a rethinking of the
  approach to unit testing and acceptance
  testing: unit test names are whole sentences
  starting with the word "should" and they are
  written in order of business value.
  BDD encourages collaboration among
  developers, QA and non-technical or business
  participants in a software project. It has
  evolved over the last few years.
Wikipedia


                           @ua_spring #JugLviv
                                                 13
Magical words: GWT




          @ua_spring #JugLviv
                                14
BDD + Selenium
Concordion is an open source tool for writing
automated acceptance tests in Java*
               * There are also versions for .NET, Python, Scala, and Ruby.




                                      @ua_spring #JugLviv
                                                                        15
How this works?
 Concordion
                WebDriver             Browser
 Test Runner



TestNG/JUnit
                PageObject
    test



 Concordion    TestNG/JUnit


                                                16
  test spec    test methods


                        @ua_spring #JugLviv
Some code
Site test example




                    @ua_spring #JugLviv
                                          17
Code on the GitHub




https://github.com/mcgray/presentation-
showcases/tree/master/JUG-Lviv




                      @ua_spring #JugLviv
                                            18
Alternatives: platform
Be pragmatic – don’t use Java where it is not
needed.




                            @ua_spring #JugLviv
                                                  19
Alternatives: BDD
          frameworks
    Cucumber

    JBehave

    easyB

…




                 @ua_spring #JugLviv
                                       20
Alternatives: UI tests
               @ua_spring #JugLviv
                                     21
Approach criticism
Often “pure BDD” is not needed - ATDD is
enough

Usually UI-tests are better to replace with
lower-level tests (e.g. integration or even
functional)




                         @ua_spring #JugLviv
                                               22
Conclusion




@ua_spring #JugLviv
                      23
Talking seriously…
BDD is designed for a projects where business
and engineering are working tightly

BDD is not useful for every project

BDD adoption is a complex process

every team member is responsible for a
product quality




                         @ua_spring #JugLviv
                                               24
Questions?
@twincengray
@ua_spring


        oleksiy.rezchykov@gmail.com


SpringByExample.com.ua

           mcgray.com.ua

                @ua_spring #JugLviv
                                      25

More Related Content

What's hot

TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
Daniel Davis
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven Development
Viraf Karai
 
Test Driven Development by Denis Lutz
Test Driven Development by Denis LutzTest Driven Development by Denis Lutz
Test Driven Development by Denis Lutz
jazzman1980
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentLim Chanmann
 
Test driven developement
Test driven developementTest driven developement
Test driven developementBhavik Panchal
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
jbandi
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
John Ferguson Smart Limited
 
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd   seven years afterIan Cooper webinar for DDD Iran: Kent beck style tdd   seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
Iranian Domain-Driven Design Community
 
Test drive on driven development process
Test drive on driven development processTest drive on driven development process
Test drive on driven development process
Muralidharan Deenathayalan
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD)
CodeOps Technologies LLP
 
Implementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsImplementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teams
Laurent PY
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
Tung Nguyen Thanh
 
Test driven development(tdd)
Test driven development(tdd)Test driven development(tdd)
Test driven development(tdd)
Omar Youssef Shiha
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Zohirul Alam Tiemoon
 
Tdd
TddTdd
Test driven development and react js application go hand in hand
Test driven development and react js application go hand in handTest driven development and react js application go hand in hand
Test driven development and react js application go hand in hand
Katy Slemon
 
How to test when robots become part of your process? Workshop robotesting agi...
How to test when robots become part of your process? Workshop robotesting agi...How to test when robots become part of your process? Workshop robotesting agi...
How to test when robots become part of your process? Workshop robotesting agi...
Rik Marselis
 
Journey of atdd
Journey of atddJourney of atdd
Journey of atdd
Devesh Maheshwari
 
TDD = bra design?
TDD = bra design?TDD = bra design?
TDD = bra design?
Kjetil Klaussen
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
David Rodenas
 

What's hot (20)

TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven Development
 
Test Driven Development by Denis Lutz
Test Driven Development by Denis LutzTest Driven Development by Denis Lutz
Test Driven Development by Denis Lutz
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Test driven developement
Test driven developementTest driven developement
Test driven developement
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd   seven years afterIan Cooper webinar for DDD Iran: Kent beck style tdd   seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
 
Test drive on driven development process
Test drive on driven development processTest drive on driven development process
Test drive on driven development process
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD)
 
Implementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsImplementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teams
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Test driven development(tdd)
Test driven development(tdd)Test driven development(tdd)
Test driven development(tdd)
 
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
Overview on TDD (Test Driven Development) & ATDD (Acceptance Test Driven Deve...
 
Tdd
TddTdd
Tdd
 
Test driven development and react js application go hand in hand
Test driven development and react js application go hand in handTest driven development and react js application go hand in hand
Test driven development and react js application go hand in hand
 
How to test when robots become part of your process? Workshop robotesting agi...
How to test when robots become part of your process? Workshop robotesting agi...How to test when robots become part of your process? Workshop robotesting agi...
How to test when robots become part of your process? Workshop robotesting agi...
 
Journey of atdd
Journey of atddJourney of atdd
Journey of atdd
 
TDD = bra design?
TDD = bra design?TDD = bra design?
TDD = bra design?
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
 

Viewers also liked

FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and UglyFIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
Brian Repko
 
Continuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with seleniumContinuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with selenium
Xebia IT Architects
 
Integration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + SeleniumIntegration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + Seleniumtka
 
Embedded software, hardware design and automation software
Embedded software, hardware design and automation softwareEmbedded software, hardware design and automation software
Embedded software, hardware design and automation software
Paul Dao
 
BDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + JavaBDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + Java
Cesar Augusto Nogueira
 
BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and Selenium
Nikolay Vasilev
 

Viewers also liked (6)

FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and UglyFIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
 
Continuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with seleniumContinuous integration using thucydides(bdd) with selenium
Continuous integration using thucydides(bdd) with selenium
 
Integration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + SeleniumIntegration Test Cucumber + Webrat + Selenium
Integration Test Cucumber + Webrat + Selenium
 
Embedded software, hardware design and automation software
Embedded software, hardware design and automation softwareEmbedded software, hardware design and automation software
Embedded software, hardware design and automation software
 
BDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + JavaBDD: Cucumber + Selenium + Java
BDD: Cucumber + Selenium + Java
 
BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and Selenium
 

Similar to BDD on Java Concordion and Selenium

Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven Development
All Things Open
 
Lets cook cucumber !!
Lets cook cucumber !!Lets cook cucumber !!
Lets cook cucumber !!
vodQA
 
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUGContinuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Jakub Pyda
 
State of Mainframe DevOps
State of Mainframe DevOpsState of Mainframe DevOps
State of Mainframe DevOps
DevOps.com
 
Continuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case StudyContinuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case Study
Kamil Kochański
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
Tung Nguyen Thanh
 
Golang vs node js 2022 which is the better choice for web development (1)
Golang vs node js 2022 which is the better choice for web development (1)Golang vs node js 2022 which is the better choice for web development (1)
Golang vs node js 2022 which is the better choice for web development (1)
Katy Slemon
 
Node.js vs. java
Node.js vs. javaNode.js vs. java
Node.js vs. java
MoonTechnolabsPvtLtd
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Sakares Saengkaew
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
harinderpisces
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
DevOpsDaysJKT
 
Testing and beyond at startups
Testing and beyond at startupsTesting and beyond at startups
Testing and beyond at startupsMona Soni
 
React vs. vue which framework to select and when
React vs. vue  which framework to select and when React vs. vue  which framework to select and when
React vs. vue which framework to select and when
MoonTechnolabsPvtLtd
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
Remus Langu
 
Node.js vs. java which one should you choose for backend development
Node.js vs. java  which one should you choose for backend development Node.js vs. java  which one should you choose for backend development
Node.js vs. java which one should you choose for backend development
Moon Technolabs Pvt. Ltd.
 
React vs. vue which framework to select and when
React vs. vue  which framework to select and when React vs. vue  which framework to select and when
React vs. vue which framework to select and when
Moon Technolabs Pvt. Ltd.
 
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
Applitools
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
temebele
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
Ari Lacenski
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
Derek Chen
 

Similar to BDD on Java Concordion and Selenium (20)

Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven Development
 
Lets cook cucumber !!
Lets cook cucumber !!Lets cook cucumber !!
Lets cook cucumber !!
 
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUGContinuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
Continuous Delivery with Spring Cloud Pipelines: Case study. - Lublin JUG
 
State of Mainframe DevOps
State of Mainframe DevOpsState of Mainframe DevOps
State of Mainframe DevOps
 
Continuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case StudyContinuous delivery with Spring Cloud Pipelines Case Study
Continuous delivery with Spring Cloud Pipelines Case Study
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 
Golang vs node js 2022 which is the better choice for web development (1)
Golang vs node js 2022 which is the better choice for web development (1)Golang vs node js 2022 which is the better choice for web development (1)
Golang vs node js 2022 which is the better choice for web development (1)
 
Node.js vs. java
Node.js vs. javaNode.js vs. java
Node.js vs. java
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
Testing and beyond at startups
Testing and beyond at startupsTesting and beyond at startups
Testing and beyond at startups
 
React vs. vue which framework to select and when
React vs. vue  which framework to select and when React vs. vue  which framework to select and when
React vs. vue which framework to select and when
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
Node.js vs. java which one should you choose for backend development
Node.js vs. java  which one should you choose for backend development Node.js vs. java  which one should you choose for backend development
Node.js vs. java which one should you choose for backend development
 
React vs. vue which framework to select and when
React vs. vue  which framework to select and when React vs. vue  which framework to select and when
React vs. vue which framework to select and when
 
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 

BDD on Java Concordion and Selenium

  • 1. BDD with Java using Concordion and Selenium September 2012 Oleksiy Rezchykov @ua_spring #JugLviv
  • 2. About me Software Engineer for more than 10 years Working with Spring during last 6 years Pragmatic programmer SpringByExample.com.ua founder Testing Automation, Continuous 2 Integration, Continuous Delivery Consultant @ua_spring #JugLviv
  • 3. Agenda What is BDD for? BDD + Selenium how this works together Some code Alternatives Approach criticism Conclusion @ua_spring #JugLviv 3
  • 4. Everything started with XP @ua_spring #JugLviv 4
  • 5. Then comes TDD @ua_spring #JugLviv 5
  • 6. What is TDD? @ua_spring #JugLviv 6
  • 7. TDD is great, but… Who will take care of the quality? 7
  • 8. What exactly TDD is? A 2005 study found that using TDD meant writing more tests and, in turn, programmers who wrote more tests tended to be more productive. Hypotheses relating to code quality and a more direct correlation between TDD and productivity were inconclusive. Wikipedia @ua_spring #JugLviv 8
  • 9. What exactly TDD is? Test-driven development offers more than just simple validation of correctness, but can also drive the design of a program Wikipedia @ua_spring #JugLviv 9
  • 10. An attempt to fix TDD - ATDD @ua_spring #JugLviv 10
  • 11. An attempt to fix TDD - ATDD 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. http://testobsessed.com/blog/2008/12/08/acceptance-test- driven-development-atdd-an-overview/ @ua_spring #JugLviv 11
  • 12. An attempt to fix TDD - ATDD Acceptance TDD helps coordinate software projects in a way that helps us deliver exactly what the customer wants when they want it, and that doesn’t let us implement the required functionality only half way. http://www.methodsandtools.com/archive/archive.php?id=72 @ua_spring #JugLviv 12
  • 13. What is BDD? At the heart of BDD is a rethinking of the approach to unit testing and acceptance testing: unit test names are whole sentences starting with the word "should" and they are written in order of business value. BDD encourages collaboration among developers, QA and non-technical or business participants in a software project. It has evolved over the last few years. Wikipedia @ua_spring #JugLviv 13
  • 14. Magical words: GWT @ua_spring #JugLviv 14
  • 15. BDD + Selenium Concordion is an open source tool for writing automated acceptance tests in Java* * There are also versions for .NET, Python, Scala, and Ruby. @ua_spring #JugLviv 15
  • 16. How this works? Concordion WebDriver Browser Test Runner TestNG/JUnit PageObject test Concordion TestNG/JUnit 16 test spec test methods @ua_spring #JugLviv
  • 17. Some code Site test example @ua_spring #JugLviv 17
  • 18. Code on the GitHub https://github.com/mcgray/presentation- showcases/tree/master/JUG-Lviv @ua_spring #JugLviv 18
  • 19. Alternatives: platform Be pragmatic – don’t use Java where it is not needed. @ua_spring #JugLviv 19
  • 20. Alternatives: BDD frameworks Cucumber JBehave easyB … @ua_spring #JugLviv 20
  • 21. Alternatives: UI tests @ua_spring #JugLviv 21
  • 22. Approach criticism Often “pure BDD” is not needed - ATDD is enough Usually UI-tests are better to replace with lower-level tests (e.g. integration or even functional) @ua_spring #JugLviv 22
  • 24. Talking seriously… BDD is designed for a projects where business and engineering are working tightly BDD is not useful for every project BDD adoption is a complex process every team member is responsible for a product quality @ua_spring #JugLviv 24
  • 25. Questions? @twincengray @ua_spring oleksiy.rezchykov@gmail.com SpringByExample.com.ua mcgray.com.ua @ua_spring #JugLviv 25

Editor's Notes

  1. Почему я решил рассказать про BDD,почему я могу считать себя экспертом в этом вопросе
  2. Разработчики увлеклись TDD. TDD это прекрасно, НО…Кто будет думать о качестве?ИспользованиеTDD только косвенно влияет на качество кодаИ не несет никакой прямойпользы для бизнеса
  3. Где TDDпроцессе разработки
  4. Быстрый цикл обратной связи
  5. Как и темная сторона силы TDD обманчив, он ведь абсолютно ничего не говорит о качестве. Ну почти ничего.
  6. Оставить только основное!!!http://en.wikipedia.org/wiki/Test-driven_developmentСначала мы представляем что хотим получить, а потом уже делаем. Преимущество в том, что это как раз правильный порядок действий а не «обратный» как может показаться. Самое сложное это перестроить себя.
  7. Оставить только основное!!!http://en.wikipedia.org/wiki/Test-driven_development
  8. Given WhenThenhttp://en.wikipedia.org/wiki/Behavior_Driven_DevelopmentМасштабATDD
  9. Annotated HTML