SlideShare a Scribd company logo
1 of 63
cucumber
                             testing your sites in English




twitter: bphogan
email: brianhogan at napcs.com
what causes projects to
            go over budget?

twitter: bphogan
email: brianhogan at napcs.com
it’s not always the
                       client’s fault.

twitter: bphogan
email: brianhogan at napcs.com
bad developer practices
                   +
            bad management
                practices
twitter: bphogan
email: brianhogan at napcs.com
testing can be
                            frustrating.




twitter: bphogan
email: brianhogan at napcs.com
it can be boring.




twitter: bphogan
email: brianhogan at napcs.com
it can make things take
                   longer.




twitter: bphogan
email: brianhogan at napcs.com
and many managers
         think that programming
           is like assembly-line
                    work.

twitter: bphogan
email: brianhogan at napcs.com
so we don’t do it, even
            though we know we
                  should.



twitter: bphogan
email: brianhogan at napcs.com
then stuff breaks




twitter: bphogan
email: brianhogan at napcs.com
and people get mad.




twitter: bphogan
email: brianhogan at napcs.com
then people lose jobs.




twitter: bphogan
email: brianhogan at napcs.com
so what do you do?


twitter: bphogan
email: brianhogan at napcs.com
you make testing
                      automated!

twitter: bphogan
email: brianhogan at napcs.com
and you improve
            communication with
           your clients. by getting
               them involved.
twitter: bphogan
email: brianhogan at napcs.com
then get management
                  on board.

twitter: bphogan
email: brianhogan at napcs.com
everyone has excuses.


twitter: bphogan
email: brianhogan at napcs.com
it’s the manager’s job to
              keep projects on
                  schedule

twitter: bphogan
email: brianhogan at napcs.com
it’s the passionate
         programmer who fights
                 for quality.

twitter: bphogan
email: brianhogan at napcs.com
and the client is paying
         you to build something.

twitter: bphogan
email: brianhogan at napcs.com
so what can we as
          developers do to solve
               these issues?

twitter: bphogan
email: brianhogan at napcs.com
we need to grab
          requirements from our
            customers easier...

twitter: bphogan
email: brianhogan at napcs.com
we need to make
             testing fast and easy...

twitter: bphogan
email: brianhogan at napcs.com
and it needs to be part
             of the schedule.

twitter: bphogan
email: brianhogan at napcs.com
domain experts first
               and code second.
twitter: bphogan
email: brianhogan at napcs.com
Feature: creating a new page in the wiki
As an average anonymous user
I want to create a page about Cucumber
So that I can tell everyone how awesome it is.

Scenario: Creating a new page and editing its content
Given I go to "/Cucumber"
 Then I should see "Edit this page"
 When I click "Edit this page"
 And I fill in "body" with "Cucumber is the best way to test apps!"
 And I press "Save"
 Then I should see "Cucumber is the best way to test apps!"




twitter: bphogan
email: brianhogan at napcs.com
features, not
                          requirements.

twitter: bphogan
email: brianhogan at napcs.com
features are value
                     propositions.

twitter: bphogan
email: brianhogan at napcs.com
focus on features that
              have real business
                    value.

twitter: bphogan
email: brianhogan at napcs.com
As a...
        I want to...
        So that I can...

twitter: bphogan
email: brianhogan at napcs.com
Feature: creating a new page in the wiki
As an average anonymous user
I want to create a page about Cucumber
So that I can tell everyone how awesome it is.




twitter: bphogan
email: brianhogan at napcs.com
Feature: creating a new page in the wiki
As an average anonymous user
I want to create a page about Cucumber
So that I can help people improve the quality
of their sites with automated testing.




twitter: bphogan
email: brianhogan at napcs.com
Given                                  Then
                                 When



twitter: bphogan
email: brianhogan at napcs.com
scenarios describe the
              feature in detail.

twitter: bphogan
email: brianhogan at napcs.com
Given
             setups, preconditions,
                 prerequisites

twitter: bphogan
email: brianhogan at napcs.com
Given
Scenario: Creating a new page and editing its content
Given I go to "/Cucumber"




twitter: bphogan
email: brianhogan at napcs.com
When



                      describe actions


twitter: bphogan
email: brianhogan at napcs.com
When


 When I click "Edit this page"
 And I fill in "body" with "Cucumber is the best way to test apps!"
 And I press "Save"




twitter: bphogan
email: brianhogan at napcs.com
Then
               describes outcomes


twitter: bphogan
email: brianhogan at napcs.com
Then
 Then I should see "Cucumber is the best way to test apps!"




twitter: bphogan
email: brianhogan at napcs.com
this process helps you
             get the app designed.

twitter: bphogan
email: brianhogan at napcs.com
these stories can then
              be run against live
                    code!

twitter: bphogan
email: brianhogan at napcs.com
step definitions use
           Ruby code and regular
            expressions to run
                  stories.
twitter: bphogan
email: brianhogan at napcs.com
but you can run stories
           against any web-based
                 application

twitter: bphogan
email: brianhogan at napcs.com
Web
                                 Application
                                 Testing
                                 In
                                 Ruby
twitter: bphogan
email: brianhogan at napcs.com
Then I should see "Welcome to the site!"




    Then /I should see "(.*)"/ do |text|
      @browser.text.should include(text)
    end




twitter: bphogan
email: brianhogan at napcs.com
When I fill in "username" with "bphogan"




    When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value|




twitter: bphogan
email: brianhogan at napcs.com
your clients and
         managers don’t need to
           know HOW these
                 work

twitter: bphogan
email: brianhogan at napcs.com
they just need to
                    remember a few
                       keywords.

twitter: bphogan
email: brianhogan at napcs.com
Cucumber prevents
                  feature rot

twitter: bphogan
email: brianhogan at napcs.com
Demo


twitter: bphogan
email: brianhogan at napcs.com
twitter: bphogan
email: brianhogan at napcs.com
Divide features, bugs,
              chores, and releases
                 into iterations

twitter: bphogan
email: brianhogan at napcs.com
feature




twitter: bphogan
email: brianhogan at napcs.com
feature




twitter: bphogan
email: brianhogan at napcs.com
Difficulty points are
                 used to calculate
                      velocity

twitter: bphogan
email: brianhogan at napcs.com
Bugs




twitter: bphogan
email: brianhogan at napcs.com
fixing bugs counts
                      against you.

twitter: bphogan
email: brianhogan at napcs.com
Doing stuff nobody
         sees counts against you

twitter: bphogan
email: brianhogan at napcs.com
everyone can see scope
            creep happening.




twitter: bphogan
email: brianhogan at napcs.com
twitter: bphogan
email: brianhogan at napcs.com
constant
                      communication.

twitter: bphogan
email: brianhogan at napcs.com
questions?
               http://github.com/napcs/cucumber_watir


twitter: bphogan
email: brianhogan at napcs.com

More Related Content

More from Brian Hogan

FUD-Free Accessibility for Web Developers - Also, Cake.
FUD-Free Accessibility for Web Developers - Also, Cake.FUD-Free Accessibility for Web Developers - Also, Cake.
FUD-Free Accessibility for Web Developers - Also, Cake.
Brian Hogan
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
Brian Hogan
 

More from Brian Hogan (16)

Docker
DockerDocker
Docker
 
Getting Started Contributing To Open Source
Getting Started Contributing To Open SourceGetting Started Contributing To Open Source
Getting Started Contributing To Open Source
 
Rethink Frontend Development With Elm
Rethink Frontend Development With ElmRethink Frontend Development With Elm
Rethink Frontend Development With Elm
 
Testing Client-side Code with Jasmine and CoffeeScript
Testing Client-side Code with Jasmine and CoffeeScriptTesting Client-side Code with Jasmine and CoffeeScript
Testing Client-side Code with Jasmine and CoffeeScript
 
FUD-Free Accessibility for Web Developers - Also, Cake.
FUD-Free Accessibility for Web Developers - Also, Cake.FUD-Free Accessibility for Web Developers - Also, Cake.
FUD-Free Accessibility for Web Developers - Also, Cake.
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Web Development with CoffeeScript and Sass
Web Development with CoffeeScript and SassWeb Development with CoffeeScript and Sass
Web Development with CoffeeScript and Sass
 
Intro To Advanced Ruby
Intro To Advanced RubyIntro To Advanced Ruby
Intro To Advanced Ruby
 
HTML5 and CSS3 Today
HTML5 and CSS3 TodayHTML5 and CSS3 Today
HTML5 and CSS3 Today
 
Web Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To ComplexWeb Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To Complex
 
Stop Reinventing The Wheel - The Ruby Standard Library
Stop Reinventing The Wheel - The Ruby Standard LibraryStop Reinventing The Wheel - The Ruby Standard Library
Stop Reinventing The Wheel - The Ruby Standard Library
 
Make GUI Apps with Shoes
Make GUI Apps with ShoesMake GUI Apps with Shoes
Make GUI Apps with Shoes
 
The Why Of Ruby
The Why Of RubyThe Why Of Ruby
The Why Of Ruby
 
Story-driven Testing
Story-driven TestingStory-driven Testing
Story-driven Testing
 
Learning To Walk In Shoes
Learning To Walk In ShoesLearning To Walk In Shoes
Learning To Walk In Shoes
 
Rails and Legacy Databases - RailsConf 2009
Rails and Legacy Databases - RailsConf 2009Rails and Legacy Databases - RailsConf 2009
Rails and Legacy Databases - RailsConf 2009
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

Testing Your Sites In English with Cucumber

  • 1. cucumber testing your sites in English twitter: bphogan email: brianhogan at napcs.com
  • 2. what causes projects to go over budget? twitter: bphogan email: brianhogan at napcs.com
  • 3. it’s not always the client’s fault. twitter: bphogan email: brianhogan at napcs.com
  • 4. bad developer practices + bad management practices twitter: bphogan email: brianhogan at napcs.com
  • 5. testing can be frustrating. twitter: bphogan email: brianhogan at napcs.com
  • 6. it can be boring. twitter: bphogan email: brianhogan at napcs.com
  • 7. it can make things take longer. twitter: bphogan email: brianhogan at napcs.com
  • 8. and many managers think that programming is like assembly-line work. twitter: bphogan email: brianhogan at napcs.com
  • 9. so we don’t do it, even though we know we should. twitter: bphogan email: brianhogan at napcs.com
  • 10. then stuff breaks twitter: bphogan email: brianhogan at napcs.com
  • 11. and people get mad. twitter: bphogan email: brianhogan at napcs.com
  • 12. then people lose jobs. twitter: bphogan email: brianhogan at napcs.com
  • 13. so what do you do? twitter: bphogan email: brianhogan at napcs.com
  • 14. you make testing automated! twitter: bphogan email: brianhogan at napcs.com
  • 15. and you improve communication with your clients. by getting them involved. twitter: bphogan email: brianhogan at napcs.com
  • 16. then get management on board. twitter: bphogan email: brianhogan at napcs.com
  • 17. everyone has excuses. twitter: bphogan email: brianhogan at napcs.com
  • 18. it’s the manager’s job to keep projects on schedule twitter: bphogan email: brianhogan at napcs.com
  • 19. it’s the passionate programmer who fights for quality. twitter: bphogan email: brianhogan at napcs.com
  • 20. and the client is paying you to build something. twitter: bphogan email: brianhogan at napcs.com
  • 21. so what can we as developers do to solve these issues? twitter: bphogan email: brianhogan at napcs.com
  • 22. we need to grab requirements from our customers easier... twitter: bphogan email: brianhogan at napcs.com
  • 23. we need to make testing fast and easy... twitter: bphogan email: brianhogan at napcs.com
  • 24. and it needs to be part of the schedule. twitter: bphogan email: brianhogan at napcs.com
  • 25. domain experts first and code second. twitter: bphogan email: brianhogan at napcs.com
  • 26. Feature: creating a new page in the wiki As an average anonymous user I want to create a page about Cucumber So that I can tell everyone how awesome it is. Scenario: Creating a new page and editing its content Given I go to "/Cucumber" Then I should see "Edit this page" When I click "Edit this page" And I fill in "body" with "Cucumber is the best way to test apps!" And I press "Save" Then I should see "Cucumber is the best way to test apps!" twitter: bphogan email: brianhogan at napcs.com
  • 27. features, not requirements. twitter: bphogan email: brianhogan at napcs.com
  • 28. features are value propositions. twitter: bphogan email: brianhogan at napcs.com
  • 29. focus on features that have real business value. twitter: bphogan email: brianhogan at napcs.com
  • 30. As a... I want to... So that I can... twitter: bphogan email: brianhogan at napcs.com
  • 31. Feature: creating a new page in the wiki As an average anonymous user I want to create a page about Cucumber So that I can tell everyone how awesome it is. twitter: bphogan email: brianhogan at napcs.com
  • 32. Feature: creating a new page in the wiki As an average anonymous user I want to create a page about Cucumber So that I can help people improve the quality of their sites with automated testing. twitter: bphogan email: brianhogan at napcs.com
  • 33. Given Then When twitter: bphogan email: brianhogan at napcs.com
  • 34. scenarios describe the feature in detail. twitter: bphogan email: brianhogan at napcs.com
  • 35. Given setups, preconditions, prerequisites twitter: bphogan email: brianhogan at napcs.com
  • 36. Given Scenario: Creating a new page and editing its content Given I go to "/Cucumber" twitter: bphogan email: brianhogan at napcs.com
  • 37. When describe actions twitter: bphogan email: brianhogan at napcs.com
  • 38. When When I click "Edit this page" And I fill in "body" with "Cucumber is the best way to test apps!" And I press "Save" twitter: bphogan email: brianhogan at napcs.com
  • 39. Then describes outcomes twitter: bphogan email: brianhogan at napcs.com
  • 40. Then Then I should see "Cucumber is the best way to test apps!" twitter: bphogan email: brianhogan at napcs.com
  • 41. this process helps you get the app designed. twitter: bphogan email: brianhogan at napcs.com
  • 42. these stories can then be run against live code! twitter: bphogan email: brianhogan at napcs.com
  • 43. step definitions use Ruby code and regular expressions to run stories. twitter: bphogan email: brianhogan at napcs.com
  • 44. but you can run stories against any web-based application twitter: bphogan email: brianhogan at napcs.com
  • 45. Web Application Testing In Ruby twitter: bphogan email: brianhogan at napcs.com
  • 46. Then I should see "Welcome to the site!" Then /I should see "(.*)"/ do |text| @browser.text.should include(text) end twitter: bphogan email: brianhogan at napcs.com
  • 47. When I fill in "username" with "bphogan" When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value| twitter: bphogan email: brianhogan at napcs.com
  • 48. your clients and managers don’t need to know HOW these work twitter: bphogan email: brianhogan at napcs.com
  • 49. they just need to remember a few keywords. twitter: bphogan email: brianhogan at napcs.com
  • 50. Cucumber prevents feature rot twitter: bphogan email: brianhogan at napcs.com
  • 53. Divide features, bugs, chores, and releases into iterations twitter: bphogan email: brianhogan at napcs.com
  • 56. Difficulty points are used to calculate velocity twitter: bphogan email: brianhogan at napcs.com
  • 58. fixing bugs counts against you. twitter: bphogan email: brianhogan at napcs.com
  • 59. Doing stuff nobody sees counts against you twitter: bphogan email: brianhogan at napcs.com
  • 60. everyone can see scope creep happening. twitter: bphogan email: brianhogan at napcs.com
  • 62. constant communication. twitter: bphogan email: brianhogan at napcs.com
  • 63. questions? http://github.com/napcs/cucumber_watir twitter: bphogan email: brianhogan at napcs.com

Editor's Notes

  1. It’s easy to blame clients. Sometimes it’s fun, too. But we are the professionals and we have to come up with ways to explain things better. They are experts in their fields.
  2. I’d bet these two things lead to most project failures.
  3. Start with bad developer practices... testing can be frustrating.
  4. we’d rather be coding new features, and users would rather have a product that works well and not have their time wasted doing the developer’s job for them.
  5. managers don’t want developers to take longer than necessary. Pushing features faster is more important than spending time writing tests.
  6. We don’t do things that are hard and not fun. It’s just human nature. We just kind of hide and pretend they’re not problems.
  7. People lose jobs over buggy software. Especially in the banking, public safety, and health insurance sectors.
  8. First, start thinking of communicating features and testing your apps as part of your job security.
  9. We can make the work easy by automating things. We spend so much time as developers automating processes for our clients that we never stop to think about how we might do that for ourselves and our processes.
  10. We can reduce some of our work if we can get the users involved in a real way.
  11. Finally, in order for this to work, management has to enforce testing practices. Applications have to be shipped with good test coverage, and time estimates must include the time it takes to write tests.
  12. Unfortunately, every single developer can come up with a list of excuses why they don’t test enough. Usually they blame management or marketing for pushing deadlines. And clients like to blame you for not building what they want,
  13. Management has to make deadlines or stuff doesn’t get done, and they have outside forces pressuring them to deliver results.
  14. You know programming, you know how hard it can be, and you know the penalties for testing. You need to make your case for it, and you have to prove it won’t kill the time schedule.
  15. You answer to them. They may not always be right, but they help pay your bills. We’d all be out of jobs if it weren’t for the customers.
  16. We can use Cucumber to gather requirements from clients, and create automated tests from those stories.
  17. We write stories in plain English to help communicate the ideas behind the feature.
  18. Talk about features. Requirements can’t be postponed. Clients can continue to add features. Developers can work with clients to re-evaluate features.
  19. When thinking about a feature, you and your user must think about what value the feature has.
  20. Ask yourselves “why do we need this feature? How will having this feature benefit a user?” The user might be a system administrator, a site owner, a basic user, or an anonymous guest, but you should only think about features that directly impact a user.
  21. A feature can best be described by filling in these blanks: “As a somebody, I want to do something, so that I can do something else.
  22. You describe a scenario using “given, when, then”.
  23. The scenario describes the feature in more details, explaining how a user will move through the application to achieve the feature’s goal.
  24. “Given” steps explain the prerequisites for the test. They let you specify any setup conditions that must have occurred outside of the process. Set up records, processes, etc.
  25. Scenario: Creating a new page and editing its content Given I go to "/Cucumber"
  26. “When” steps describe what you do during the scenario
  27. When I click "Edit this page" And I fill in "body" with "Cucumber is the best way to test apps!" And I press "Save"
  28. “Then” steps describe the outcome you expect.
  29. Then I should see "Cucumber is the best way to test apps!"
  30. If you and your clients build these stories together, you can easily design the functionality and describe the interface.
  31. Even though we write these definitions in Ruby code, you can run Cucumber against anything that shows up in your browser, including Flash!
  32. WATIR, or “Web Application Testing In Ruby” automates Internet Explorer or Firefox and works well with Cucumber.
  33. The stories you write live with the code, because you test your code with the stories you write.
  34. Let’s write a Cucumber story to search for Cucumber information with Google’s advanced search.
  35. Pivotal Tracker!
  36. Difficulty is determined by your team based on how complex the feature is. Estimation is key to success.
  37. We can use Pivotal’s API to push and pull Cucumber stories.
  38. Velocity is really how many units of work you can handle in an iteration.
  39. Bugs don’t get points. They count against your velocity.
  40. This approach makes you focus on delivering new features for your customers.
  41. As they keep asking for things, they can see them adding up. You can then discuss how you continue to make deadlines.
  42. Each horizontal line represents a point where we had to move a release - because a person wasn’t contributing.