SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
Continuous Integration

  Continuous Quality
Continuous Delivery
Who is this guy, anyway?
               Consulta
                       nt
               Trainer
              Mentor
              Author
             Speaker
             Coder
   John Fer
            guson S
                    mar t
Training and Consulting Services in
   TDD, BDD and ATDD
   Automated Acceptance and Regression Testing
   Build Automation and Continuous Delivery
   Clean Coding Practices
Continuous Delivery
Getting value to the business.
            Fast.
            Often.




              Continuous Delivery: everyone wants it
                                                       4
But Continuous Delivery is impossible
without Continuous Quality




                 Quality must be built in to the process
                                                       5
So how do you deliver?
Goals

   Capabilities

     Features

      Stories


     Examples


Acceptance Criteria
Successful projects start with a shared vision

“We are going to build an online classifieds website”
You define goals to achieve your vision

                              “Let’s increase advertising
                              revenue by letting sellers
                              post their classified ads




             “Let’s get more sales for our advertisers by
             making the ads easier to find online.”




                 Goals that will deliver business value
Features help deliver these goals

              “Let’s get more sales for our advertisers by
              making the ads easier to find online.”

                     Notify potential buyers about new items
                     In Search for online of advertised articles
                        order to increase sales ads
                     As aorder to increase sales of advertised articles
                      In seller
                     I want previous buyers to know about new items
                       As a seller
                     that theybuyers be interested in buying ads for
                       I want might to be able to easily find
                      articles they want to buy
We use examples and stories to explore the features

Search for online ads




“Searching by category”

  “Searching by keyword and category”

     “Searching by keyword and location”

        “Filter ads by price”
We use examples and stories to explore the features

Search for online ads




 Searching by keyword and location
 Given	
  Sally	
  wants	
  to	
  buy	
  a	
  puppy	
  for	
  her	
  son	
  
 When	
  she	
  looks	
  for	
  ads	
  in	
  the	
  ‘Pets	
  and	
  Animals’	
  category	
  containing	
  
 	
  	
  	
  	
  the	
  word	
  ‘puppy’	
  in	
  New	
  South	
  Wales
 Then	
  she	
  should	
  obtain	
  a	
  list	
  of	
  ads	
  for	
  puppies	
  in	
  New	
  South	
  Wales.


    Acceptance Criteria illustrate and validate the stories
We automate the acceptance criteria
search_by_keyword_and_location.story

 Scenario: Searching by keyword and location

 Given Sally wants to buy a puppy for her son
 When she looks for ads in the ‘Pets and Animals’ category containing
   the word ‘puppy’ in New South Wales
 Then she should obtain a list of ads for puppies in New South Wales.
And we implement the acceptance criteria
search_by_keyword_and_location.story

Scenario: Searching by keyword and location

Given Sally wants to buy a puppy for her son
When she looks for ads in the ‘Pets and Animals’ category containing
  the word ‘puppy’ in New South Wales
Then she should obtain a list of ads for puppies in New South Wales.
We can now execute our automated acceptance tests




            “Searching by keyword and
            location” is now a pending test
...and implement the application code for that feature




                  When it is implemented, it will
                  be displayed as a passing test
...and implement the application code for that feature




                          And the corresponding feature
                          is now partially completed
What’s so important about
automating the Acceptance Criteria?
So why automate your acceptance criteria?




                             They define your goals
So why automate your acceptance criteria?




                             They keep you on track
So why automate your acceptance criteria?




                       They provide better visibility
So why automate your acceptance criteria?




                    They allow faster release cycles
So why automate your acceptance criteria?




                                     Reduce Risk
So why automate your acceptance criteria?




                                     Reduce Costs
Jenkins - it’s how we automate stuff, boss.

    Compile and Test

 Quality Gateways

Release Candidates

Reporting and Documentation

  Automated Deployment

     Continuous Delivery
Build Pipelines



       T EST              UAT
                                      PROD




               Getting your code into production
A simple build pipeline
 Build	
  and	
  Fast	
  Tests

             Slower	
  Tests


                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


Each step is a quality gateway                                                               UAT
                                                                                      TEST
Build and initial tests
 Build	
  and	
  Fast	
  Tests
                                                       Fail fast
             Slower	
  Tests                           Let people know
                    Acceptance	
  Tests                Never ignore a broken build

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


                                                                                             UAT
                                                                                      TEST
Build and initial tests
 Build	
  and	
  Fast	
  Tests
                                                       Fail fast
             Slower	
  Tests                           Let people know
                    Acceptance	
  Tests                Never ignore a broken build

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


                                                                                             UAT
                                                                                      TEST
Build and initial tests
 Build	
  and	
  Fast	
  Tests
                                                       Fail fast
             Slower	
  Tests                           Let people know
                    Acceptance	
  Tests                Never ignore a broken build

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


                                                                                             UAT
                                                                                      TEST
Build and initial tests
 Build	
  and	
  Fast	
  Tests
                                                       Fail fast
             Slower	
  Tests                           Let people know
                    Acceptance	
  Tests                Never ignore a broken build

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

 Instant Messaging Plugin                              Deploy	
  to	
  ProducLon
     Email-ext Plugin
   Hudson Sounds Plugin
            ...                                                                              UAT
                                                                                      TEST
Automated Acceptance Tests
Build	
  and	
  Fast	
  Tests
                                                      Progress reports
            Slower	
  Tests                           Living Documentation
                   Acceptance	
  Tests                Help for testers

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
                                                                                     TEST
Automated Acceptance Tests
Build	
  and	
  Fast	
  Tests
                                                      Progress reports
            Slower	
  Tests                           Living Documentation
  MakeAcceptance	
  Tests
        them fast                                     Help for testers

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                     1.0.1
                                                                                                        PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon
                                                                             Distributed builds
                                                                               Selenium Grid
                                                                                 SauceLabs
                                                                                                  UAT
                                                                                     ...
                                                                                         TEST
Automated Acceptance Tests
Build	
  and	
  Fast	
  Tests
                                                      Progress reports
            Slower	
  Tests                           Living Documentation
    Make them public for testers
       Acceptance	
  Tests Help

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                       PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon
                                                                             Notifications
                                                                         HTML Publisher Plugin
                                                                                  ...            UAT
                                                                                     TEST
Automated Acceptance Tests
Build	
  and	
  Fast	
  Tests
                                                      Progress reports
            Slower	
  Tests                           Living Documentation
    Make them public for testers
       Acceptance	
  Tests Help

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
  HTML Publisher Plugin                                                              TEST
Checking Code Quality
Build	
  and	
  Fast	
  Tests
                                                      If a metric matters, fail the build
            Slower	
  Tests                           Proactive Code Quality
                   Acceptance	
  Tests                Complements Sonar

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
                                                                                     TEST
Checking Code Quality
Build	
  and	
  Fast	
  Tests
                                                      If a metric matters, fail the build
            Slower	
  Tests                           Proactive Code Quality
                   Acceptance	
  Tests                Complements Sonar

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
                                                                                     TEST
Checking Code Quality
Build	
  and	
  Fast	
  Tests
                                                      If a metric matters, fail the build
            Slower	
  Tests                           Proactive Code Quality
                   Acceptance	
  Tests                Complements Sonar

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
                                                                                     TEST
Checking Code Quality
Build	
  and	
  Fast	
  Tests
                                                      If a metric matters, fail the build
            Slower	
  Tests                           Proactive Code Quality
                   Acceptance	
  Tests                Complements Sonar

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UEnforcing code quality
                                                                  AT

                                                      Deploy	
  to	
  ProducLon
     Cobertura Plugin
     Checkstyle Plugin
      FindBugs Plugin                                                                       UAT
            ...                                                                      TEST
Generating a release candidate
 Build	
  and	
  Fast	
  Tests
                                                       Build a release candidate early
             Slower	
  Tests                           Reuse, don’t rebuild
                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


                                                                                             UAT
                                                                                      TEST
Generating a release candidate
 Build	
  and	
  Fast	
  Tests
                                                       Build a release candidate early
             Slower	
  Tests                           Reuse, don’t rebuild
                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon
                                                                        Choose a release
                                                                            strategy         UAT
                                                                                      TEST
Generating a release candidate



             SCM	
  commit
SCM server

                Build	
  and	
  Fast	
  Tests

                            Slower	
  Tests
                                                                        SNAPSHOT
                                   Acceptance	
  Tests

                                         Code	
  Quality	
  Metrics

                                                 Release	
  Candidate


                                                                          1.0.1
Generating a release candidate

      What about maven?
             SCM	
  commit
SCM server

                Build	
  and	
  Fast	
  Tests

                            Slower	
  Tests
                                                                        SNAPSHOT
                                   Acceptance	
  Tests

                                         Code	
  Quality	
  Metrics

                                                 Release	
  Candidate


                                                                          1.0.1
Generating a release candidate

      What about maven?
         Strategy 1 : The Maven Release Plugin
                but not as we know it...



  1.0.0-SNAPSHOT


                   mvn	
  release




                   1.0.65
Generating a release candidate

      What about maven?
             Strategy 2 : Just set the version




  1.0.0-SNAPSHOT


               mvn	
  versions:set
                         mvn	
  install
                              Artifactory Plugin
                                Nexus Plugin

                        1.0.65
Generating a release candidate
 Build	
  and	
  Fast	
  Tests
                                                       Build a release candidate early
             Slower	
  Tests                           Reuse, don’t rebuild
                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon
                                                                  Choose an archiving
                                                                       strategy              UAT
                                                                                      TEST
Generating a release candidate
 Build	
  and	
  Fast	
  Tests
                                                       Build a release candidate early
             Slower	
  Tests                           Reuse, don’t rebuild
                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics                                         maven
                                  Release	
  Candidate
                                               1.0.1
                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                     PROD
                                                  Deploy	
  to	
  UAT

   Copy Artifacts Plugin                               Deploy	
  to	
  ProducLon
    Artifactory Plugin
       Nexus Plugin
            ...                                                                                UAT
                                                                                      TEST
Automated Deployment
Build	
  and	
  Fast	
  Tests
                                                      Automate your deployments
            Slower	
  Tests                           Reuse deployment processes
                   Acceptance	
  Tests                Deploy your environments too

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
                                                                                     TEST
Automated Deployment
Build	
  and	
  Fast	
  Tests
                                                      Automate your deployments
            Slower	
  Tests                           Reuse deployment processes
                   Acceptance	
  Tests                Deploy your environments too

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon
        Deployer Plugin
          SSH Plugin
              ...                                                                           UAT
                                                                                     TEST
Visualizing the build process
 Build	
  and	
  Fast	
  Tests

             Slower	
  Tests


                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


                                                                                             UAT
                                                                                      TEST
Build	
  and	
  Fast	
  Tests

            Slower	
  Tests


                   Acceptance	
  Tests

                         Code	
  Quality	
  Metrics

                                 Release	
  Candidate

                                          Deploy	
  to	
  Test                    1.0.1
                                                                                                  PROD
                                                 Deploy	
  to	
  UAT

                                                      Deploy	
  to	
  ProducLon


                                                                                            UAT
                                                                                     TEST
Visualizing the build process
 Build	
  and	
  Fast	
  Tests

             Slower	
  Tests


                    Acceptance	
  Tests

                          Code	
  Quality	
  Metrics

                                  Release	
  Candidate

                                           Deploy	
  to	
  Test                    1.0.1
                                                                                                   PROD
                                                  Deploy	
  to	
  UAT

                                                       Deploy	
  to	
  ProducLon


                                                                                             UAT
                                                                                      TEST
So how do you deliver?




             Rigorous testing and reporting gives
             us confidence in our product...
So how do you deliver?




             And a Jenkins build pipeline makes
             automated delivery possible.
どうもありがとうございまし

   Thank	
  You

                     John	
  Ferguson	
  Smart
      Email:	
  john.smart@wakaleo.com
       Web:	
  hGp://www.wakaleo.com
                         TwiGer:	
  wakaleo
Training and Consulting Services in
   TDD, BDD and ATDD
   Automated Acceptance and Regression Testing
   Build Automation and Continuous Delivery
   Clean Coding Practices

Mais conteúdo relacionado

Mais procurados

Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...Edureka!
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentChristopher Read
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...Edureka!
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICDKnoldus Inc.
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryMike McGarr
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersAmazon Web Services
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamDeborah Schalm
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009sstolberg
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Jen Wong
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and deliveryDanilo Pianini
 

Mais procurados (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
CI/CD
CI/CDCI/CD
CI/CD
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
Agile Evolution
Agile EvolutionAgile Evolution
Agile Evolution
 
Standardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins TeamStandardizing Jenkins with CloudBees Jenkins Team
Standardizing Jenkins with CloudBees Jenkins Team
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 

Semelhante a Continuous Integration, Continuous Quality, Continuous Delivery

Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 
Continuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedContinuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedAsh Maurya
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to realityClément Escoffier
 
50 production deployments a day, at least
50 production deployments a day, at least50 production deployments a day, at least
50 production deployments a day, at leastOscar Renalias
 
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Nikolai Blackie
 
Effective Strategies for Distributed Testing
Effective Strategies for Distributed TestingEffective Strategies for Distributed Testing
Effective Strategies for Distributed TestingAnand Bagmar
 
Agile Testing, Uncertainty, Risk, and Why It All Works
Agile Testing, Uncertainty, Risk, and Why It All WorksAgile Testing, Uncertainty, Risk, and Why It All Works
Agile Testing, Uncertainty, Risk, and Why It All WorksElisabeth Hendrickson
 
Distributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesDistributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesThoughtWorks Studios
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsSeaLights
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...Burns Sheehan
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionProduct Marketing Services
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOpsKMS Technology
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approachMichael Kopp
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesSanjeev Sharma
 

Semelhante a Continuous Integration, Continuous Quality, Continuous Delivery (20)

Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Continuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedContinuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons Learned
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
50 production deployments a day, at least
50 production deployments a day, at least50 production deployments a day, at least
50 production deployments a day, at least
 
Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...
 
Effective Strategies for Distributed Testing
Effective Strategies for Distributed TestingEffective Strategies for Distributed Testing
Effective Strategies for Distributed Testing
 
Agile Testing, Uncertainty, Risk, and Why It All Works
Agile Testing, Uncertainty, Risk, and Why It All WorksAgile Testing, Uncertainty, Risk, and Why It All Works
Agile Testing, Uncertainty, Risk, and Why It All Works
 
Agile Testing Overview
Agile Testing OverviewAgile Testing Overview
Agile Testing Overview
 
Distributed agile testing_for_enterprises
Distributed agile testing_for_enterprisesDistributed agile testing_for_enterprises
Distributed agile testing_for_enterprises
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
 
QA Service Sheet
QA Service SheetQA Service Sheet
QA Service Sheet
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
Hudson: from build jobs to build pipelines
Hudson: from build jobs to build pipelinesHudson: from build jobs to build pipelines
Hudson: from build jobs to build pipelines
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Manual testing1
Manual testing1Manual testing1
Manual testing1
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and Chellenges
 
Test Like A Badger
Test Like A BadgerTest Like A Badger
Test Like A Badger
 

Mais de John Ferguson Smart Limited

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosJohn Ferguson Smart Limited
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceJohn Ferguson Smart Limited
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplayJohn Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceJohn Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...John Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...John Ferguson Smart Limited
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingJohn Ferguson Smart Limited
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesJohn Ferguson Smart Limited
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersJohn Ferguson Smart Limited
 

Mais de John Ferguson Smart Limited (20)

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and Screenplay
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 

Último

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Continuous Integration, Continuous Quality, Continuous Delivery

  • 1. Continuous Integration Continuous Quality Continuous Delivery
  • 2. Who is this guy, anyway? Consulta nt Trainer Mentor Author Speaker Coder John Fer guson S mar t
  • 3. Training and Consulting Services in TDD, BDD and ATDD Automated Acceptance and Regression Testing Build Automation and Continuous Delivery Clean Coding Practices
  • 4. Continuous Delivery Getting value to the business. Fast. Often. Continuous Delivery: everyone wants it 4
  • 5. But Continuous Delivery is impossible without Continuous Quality Quality must be built in to the process 5
  • 6. So how do you deliver?
  • 7. Goals Capabilities Features Stories Examples Acceptance Criteria
  • 8. Successful projects start with a shared vision “We are going to build an online classifieds website”
  • 9. You define goals to achieve your vision “Let’s increase advertising revenue by letting sellers post their classified ads “Let’s get more sales for our advertisers by making the ads easier to find online.” Goals that will deliver business value
  • 10. Features help deliver these goals “Let’s get more sales for our advertisers by making the ads easier to find online.” Notify potential buyers about new items In Search for online of advertised articles order to increase sales ads As aorder to increase sales of advertised articles In seller I want previous buyers to know about new items As a seller that theybuyers be interested in buying ads for I want might to be able to easily find articles they want to buy
  • 11. We use examples and stories to explore the features Search for online ads “Searching by category” “Searching by keyword and category” “Searching by keyword and location” “Filter ads by price”
  • 12. We use examples and stories to explore the features Search for online ads Searching by keyword and location Given  Sally  wants  to  buy  a  puppy  for  her  son   When  she  looks  for  ads  in  the  ‘Pets  and  Animals’  category  containing          the  word  ‘puppy’  in  New  South  Wales Then  she  should  obtain  a  list  of  ads  for  puppies  in  New  South  Wales. Acceptance Criteria illustrate and validate the stories
  • 13. We automate the acceptance criteria search_by_keyword_and_location.story Scenario: Searching by keyword and location Given Sally wants to buy a puppy for her son When she looks for ads in the ‘Pets and Animals’ category containing the word ‘puppy’ in New South Wales Then she should obtain a list of ads for puppies in New South Wales.
  • 14. And we implement the acceptance criteria search_by_keyword_and_location.story Scenario: Searching by keyword and location Given Sally wants to buy a puppy for her son When she looks for ads in the ‘Pets and Animals’ category containing the word ‘puppy’ in New South Wales Then she should obtain a list of ads for puppies in New South Wales.
  • 15. We can now execute our automated acceptance tests “Searching by keyword and location” is now a pending test
  • 16. ...and implement the application code for that feature When it is implemented, it will be displayed as a passing test
  • 17. ...and implement the application code for that feature And the corresponding feature is now partially completed
  • 18. What’s so important about automating the Acceptance Criteria?
  • 19. So why automate your acceptance criteria? They define your goals
  • 20. So why automate your acceptance criteria? They keep you on track
  • 21. So why automate your acceptance criteria? They provide better visibility
  • 22. So why automate your acceptance criteria? They allow faster release cycles
  • 23. So why automate your acceptance criteria? Reduce Risk
  • 24. So why automate your acceptance criteria? Reduce Costs
  • 25. Jenkins - it’s how we automate stuff, boss. Compile and Test Quality Gateways Release Candidates Reporting and Documentation Automated Deployment Continuous Delivery
  • 26. Build Pipelines T EST UAT PROD Getting your code into production
  • 27. A simple build pipeline Build  and  Fast  Tests Slower  Tests Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon Each step is a quality gateway UAT TEST
  • 28. Build and initial tests Build  and  Fast  Tests Fail fast Slower  Tests Let people know Acceptance  Tests Never ignore a broken build Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 29. Build and initial tests Build  and  Fast  Tests Fail fast Slower  Tests Let people know Acceptance  Tests Never ignore a broken build Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 30. Build and initial tests Build  and  Fast  Tests Fail fast Slower  Tests Let people know Acceptance  Tests Never ignore a broken build Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 31. Build and initial tests Build  and  Fast  Tests Fail fast Slower  Tests Let people know Acceptance  Tests Never ignore a broken build Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Instant Messaging Plugin Deploy  to  ProducLon Email-ext Plugin Hudson Sounds Plugin ... UAT TEST
  • 32. Automated Acceptance Tests Build  and  Fast  Tests Progress reports Slower  Tests Living Documentation Acceptance  Tests Help for testers Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 33. Automated Acceptance Tests Build  and  Fast  Tests Progress reports Slower  Tests Living Documentation MakeAcceptance  Tests them fast Help for testers Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon Distributed builds Selenium Grid SauceLabs UAT ... TEST
  • 34. Automated Acceptance Tests Build  and  Fast  Tests Progress reports Slower  Tests Living Documentation Make them public for testers Acceptance  Tests Help Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon Notifications HTML Publisher Plugin ... UAT TEST
  • 35. Automated Acceptance Tests Build  and  Fast  Tests Progress reports Slower  Tests Living Documentation Make them public for testers Acceptance  Tests Help Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT HTML Publisher Plugin TEST
  • 36. Checking Code Quality Build  and  Fast  Tests If a metric matters, fail the build Slower  Tests Proactive Code Quality Acceptance  Tests Complements Sonar Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 37. Checking Code Quality Build  and  Fast  Tests If a metric matters, fail the build Slower  Tests Proactive Code Quality Acceptance  Tests Complements Sonar Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 38. Checking Code Quality Build  and  Fast  Tests If a metric matters, fail the build Slower  Tests Proactive Code Quality Acceptance  Tests Complements Sonar Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 39. Checking Code Quality Build  and  Fast  Tests If a metric matters, fail the build Slower  Tests Proactive Code Quality Acceptance  Tests Complements Sonar Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UEnforcing code quality AT Deploy  to  ProducLon Cobertura Plugin Checkstyle Plugin FindBugs Plugin UAT ... TEST
  • 40. Generating a release candidate Build  and  Fast  Tests Build a release candidate early Slower  Tests Reuse, don’t rebuild Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 41. Generating a release candidate Build  and  Fast  Tests Build a release candidate early Slower  Tests Reuse, don’t rebuild Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon Choose a release strategy UAT TEST
  • 42. Generating a release candidate SCM  commit SCM server Build  and  Fast  Tests Slower  Tests SNAPSHOT Acceptance  Tests Code  Quality  Metrics Release  Candidate 1.0.1
  • 43. Generating a release candidate What about maven? SCM  commit SCM server Build  and  Fast  Tests Slower  Tests SNAPSHOT Acceptance  Tests Code  Quality  Metrics Release  Candidate 1.0.1
  • 44. Generating a release candidate What about maven? Strategy 1 : The Maven Release Plugin but not as we know it... 1.0.0-SNAPSHOT mvn  release 1.0.65
  • 45. Generating a release candidate What about maven? Strategy 2 : Just set the version 1.0.0-SNAPSHOT mvn  versions:set mvn  install Artifactory Plugin Nexus Plugin 1.0.65
  • 46. Generating a release candidate Build  and  Fast  Tests Build a release candidate early Slower  Tests Reuse, don’t rebuild Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon Choose an archiving strategy UAT TEST
  • 47. Generating a release candidate Build  and  Fast  Tests Build a release candidate early Slower  Tests Reuse, don’t rebuild Acceptance  Tests Code  Quality  Metrics maven Release  Candidate 1.0.1 Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Copy Artifacts Plugin Deploy  to  ProducLon Artifactory Plugin Nexus Plugin ... UAT TEST
  • 48. Automated Deployment Build  and  Fast  Tests Automate your deployments Slower  Tests Reuse deployment processes Acceptance  Tests Deploy your environments too Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 49. Automated Deployment Build  and  Fast  Tests Automate your deployments Slower  Tests Reuse deployment processes Acceptance  Tests Deploy your environments too Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon Deployer Plugin SSH Plugin ... UAT TEST
  • 50. Visualizing the build process Build  and  Fast  Tests Slower  Tests Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 51. Build  and  Fast  Tests Slower  Tests Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 52. Visualizing the build process Build  and  Fast  Tests Slower  Tests Acceptance  Tests Code  Quality  Metrics Release  Candidate Deploy  to  Test 1.0.1 PROD Deploy  to  UAT Deploy  to  ProducLon UAT TEST
  • 53. So how do you deliver? Rigorous testing and reporting gives us confidence in our product...
  • 54. So how do you deliver? And a Jenkins build pipeline makes automated delivery possible.
  • 55. どうもありがとうございまし Thank  You John  Ferguson  Smart Email:  john.smart@wakaleo.com Web:  hGp://www.wakaleo.com TwiGer:  wakaleo
  • 56. Training and Consulting Services in TDD, BDD and ATDD Automated Acceptance and Regression Testing Build Automation and Continuous Delivery Clean Coding Practices