SlideShare a Scribd company logo
Behaviour-Driven Development

    ft. Ruby, Cucumber & RSpec
Видове тестване

Области за проверка   Начини за проверка

Process               Doc Reviews
Functional            Manual
Security              Automated
Performance           Sampling
Stress/Load           Test Driven
Usability             Behavior Driven
Glob/Loc
Tестове


                Ръчни    Автоматизирани
Квалификация    Средна       Висока
 Удоволствие
                             
      Мащаб       0            ∞
       Цена     $$$$$         $$$
Цена на дефектите
Agile и автоматизацията

               Add test



                               Watch
Refactor
                              Test Fail




        Run               Write
       Tests              Code
I love the term diversity.
         Di-ver-si-ty.
Doesn’t that sound great?
Testing Frameworks за Ruby

      Cucumber
                      RSpec


Test::Minitest        Shoulda

      Test::Unit
                     Steak
Cucumber
           RSpec
Първи идват feature
 тестовете
features
    online_shopping.feature
$ rake cucumber

Feature: Online shopping
  In order to use the full capabilities
  of our online shop
  A user
  Should be able to make an order

 Scenario: Buying a beer        # features/online_shopping.feature:6
   Given that there are 5 beers on stock
   When Vasko buys 2 beers
   Then there should be 3 beers left

1 scenario (1 undefined)
3 steps (3 undefined)
0m0.003s
features
  step_definitions
     shopping_steps.rb
Feature: Online shopping
  In order to use the full capabilities
  of our online shop
  A user
  Should be able to make an order

 Scenario: Buying a beer    # features/online_shopping.feature:6
   Given that there are 5 beers on stock
      uninitialized constant Beer (NameError)
      ./features/step_definitions/online_shopping_steps.rb:5:
      in `/^that there are (d+) beers on stock$/‘
   When Vasko buys 2 beers
   Then there should be 3 beers left

Failing Scenarios:
cucumber features/online_shopping.feature:6 # Scenario: Buying a beer

1 scenario (1 failed)
3 steps (1 failed, 2 skipped)
0m0.469s
$ rake cucumber

Feature: Online shopping
  In order to use the full capabilities
  of our online shop
  A user
  Should be able to make an order

 Scenario: Buying a beer # features/online_shopping.feature:6
   Given that there are 5 beers on stock
   When Vasko buys 2 beers
   Then there should be 3 beers left

1 scenario (1 passed)
3 steps (3 passed)
0m0.003s
Gherkin
   Над 40 езика

$ cucumber --i18n help
| ar          | Arabic       |        ‫|العربية‬
| bg            Bulgarian    | български |
| ca          | Catalan      | català        |
| cs          | Czech        | Česky         |
| cy-GB       | Welsh        | Cymraeg |
| da          | Danish       | dansk         |
| de          | German       | Deutsch        |
| en          | English      | English       |
| en-Scouse   | Scouse       | Scouse        |
| en-au       | Australian   | Australian |
 …              …              …
$ rake cucumber

# language: bg
Функционалност: Пазаруване онлайн
  За да използват пълните възможности
  на нашия онлайн магазин
  Потребителите
  Трябва да могат да правят поръчки

 Сценарий: Купуване на бира # features/online_shopping.feature:10
   Дадено е, че има налични 5 бири
   Когато Васко купи 2 бири
   То трябва да останат 3 бири

1 scenario (1 passed)
3 steps (3 passed)
0m0.003s
Къде са
unit tests?
спецификации
Test
Spec
Test vs. Spec
Test vs. Spec
Test vs. Spec
Test vs. Spec
Cucumber + RSpec – задвижване
на реализацията отвън - навътре
          Feature

          Spec

          Code
          Refactor
WHO BROKE
THE BUILD?
Guard
        Bundle update
        Bundle already up-to-date




         RSpec results
         197 examples, 0 failures (15 pending)
           in 12.274 seconds




        Cucumber Results
        13 passed steps
Spork

        Spork
        Rspec & Cucumber successfully started
Jenkins
ВЪПРОСИ?
Ресурси
• Десетте най-големи софтуерни грешки:
  http://themanojblog.blogspot.com/2009/05/
  blog-wars-episode-v-historys-top-ten.html
• Тестване на софтуер:
  http://en.wikipedia.org/wiki/Software_testing
• Допълнитени ресурси:
  http://www.softwaretestinghelp.com
Ресурси
•   Cucumber: http://cukes.info
•   RSpec: http://rspec.info
•   Guard: https://github.com/guard/guard
•   Spork: https://github.com/sporkrb/spork
•   Jenkins: http://jenkins-ci.org/
Контакти

• Георги Кременлиев:
  – george@empowerunited.com
  – @gssgek


• Цветомила Михайлова:
  – tsvetomila@empowerunited.com
  – @tsvetomila
БЛАГОДАРИМ ВИ!

More Related Content

Similar to Behavior Driven Development, Ruby Style

Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and Rspec
Joseph Wilk
 
Cucumber
CucumberCucumber
Cucumber
Bachue Zhou
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled Cucumbers
Joseph Wilk
 
Exploring your APIs with Postman
Exploring your APIs with PostmanExploring your APIs with Postman
Exploring your APIs with Postman
Amber Race
 
Cucumber - We Are Doing It Wrong
Cucumber - We Are Doing It WrongCucumber - We Are Doing It Wrong
Cucumber - We Are Doing It Wrong
Dmitry Sharkov
 
WE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry SharkovWE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry Sharkov
QA or the Highway
 
The what, why and how of web analytics testing
The what, why and how of web analytics testingThe what, why and how of web analytics testing
The what, why and how of web analytics testing
Anand Bagmar
 
Agile Software Development with Intrinsic Quality
Agile Software Development with Intrinsic QualityAgile Software Development with Intrinsic Quality
Agile Software Development with Intrinsic Quality
Demetrius Nunes
 
Front-End UnitTesting
Front-End UnitTestingFront-End UnitTesting
Front-End UnitTesting
Artyom Trityak
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
Postman
 
20141210 rakuten techtalk
20141210 rakuten techtalk20141210 rakuten techtalk
20141210 rakuten techtalk
Hiroshi SHIBATA
 
Making and Breaking Web Services with Ruby
Making and Breaking Web Services with RubyMaking and Breaking Web Services with Ruby
Making and Breaking Web Services with Ruby
err
 
Behaviour driven development present
Behaviour driven development presentBehaviour driven development present
Behaviour driven development present
Raul Panjiyar
 
Testing Zen
Testing ZenTesting Zen
Testing Zen
day
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
adamleff
 
Verdades e mentiras sobre teste de software no mundo magico do agile
Verdades e mentiras sobre teste de software no mundo magico do agileVerdades e mentiras sobre teste de software no mundo magico do agile
Verdades e mentiras sobre teste de software no mundo magico do agile
Guilherme Motta
 
Super powered API testing
Super powered API testing Super powered API testing
Super powered API testing
postmanclient
 
Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructure
Lindsay Holmwood
 
BDD in Java using Cucumber
BDD in Java using CucumberBDD in Java using Cucumber
BDD in Java using Cucumber
slavkurochkin
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
Jonathan Hitchcock
 

Similar to Behavior Driven Development, Ruby Style (20)

Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and Rspec
 
Cucumber
CucumberCucumber
Cucumber
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled Cucumbers
 
Exploring your APIs with Postman
Exploring your APIs with PostmanExploring your APIs with Postman
Exploring your APIs with Postman
 
Cucumber - We Are Doing It Wrong
Cucumber - We Are Doing It WrongCucumber - We Are Doing It Wrong
Cucumber - We Are Doing It Wrong
 
WE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry SharkovWE are Doing it Wrong - Dmitry Sharkov
WE are Doing it Wrong - Dmitry Sharkov
 
The what, why and how of web analytics testing
The what, why and how of web analytics testingThe what, why and how of web analytics testing
The what, why and how of web analytics testing
 
Agile Software Development with Intrinsic Quality
Agile Software Development with Intrinsic QualityAgile Software Development with Intrinsic Quality
Agile Software Development with Intrinsic Quality
 
Front-End UnitTesting
Front-End UnitTestingFront-End UnitTesting
Front-End UnitTesting
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
20141210 rakuten techtalk
20141210 rakuten techtalk20141210 rakuten techtalk
20141210 rakuten techtalk
 
Making and Breaking Web Services with Ruby
Making and Breaking Web Services with RubyMaking and Breaking Web Services with Ruby
Making and Breaking Web Services with Ruby
 
Behaviour driven development present
Behaviour driven development presentBehaviour driven development present
Behaviour driven development present
 
Testing Zen
Testing ZenTesting Zen
Testing Zen
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
 
Verdades e mentiras sobre teste de software no mundo magico do agile
Verdades e mentiras sobre teste de software no mundo magico do agileVerdades e mentiras sobre teste de software no mundo magico do agile
Verdades e mentiras sobre teste de software no mundo magico do agile
 
Super powered API testing
Super powered API testing Super powered API testing
Super powered API testing
 
Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructure
 
BDD in Java using Cucumber
BDD in Java using CucumberBDD in Java using Cucumber
BDD in Java using Cucumber
 
Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
 

Recently uploaded

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 

Recently uploaded (20)

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 

Behavior Driven Development, Ruby Style

  • 1.
  • 2. Behaviour-Driven Development ft. Ruby, Cucumber & RSpec
  • 3. Видове тестване Области за проверка Начини за проверка Process Doc Reviews Functional Manual Security Automated Performance Sampling Stress/Load Test Driven Usability Behavior Driven Glob/Loc
  • 4. Tестове Ръчни Автоматизирани Квалификация Средна Висока Удоволствие   Мащаб 0 ∞ Цена $$$$$ $$$
  • 6. Agile и автоматизацията Add test Watch Refactor Test Fail Run Write Tests Code
  • 7.
  • 8. I love the term diversity. Di-ver-si-ty. Doesn’t that sound great?
  • 9. Testing Frameworks за Ruby Cucumber RSpec Test::Minitest Shoulda Test::Unit Steak
  • 10. Cucumber RSpec
  • 11.
  • 12. Първи идват feature тестовете
  • 13. features online_shopping.feature
  • 14. $ rake cucumber Feature: Online shopping In order to use the full capabilities of our online shop A user Should be able to make an order Scenario: Buying a beer # features/online_shopping.feature:6 Given that there are 5 beers on stock When Vasko buys 2 beers Then there should be 3 beers left 1 scenario (1 undefined) 3 steps (3 undefined) 0m0.003s
  • 15. features step_definitions shopping_steps.rb
  • 16. Feature: Online shopping In order to use the full capabilities of our online shop A user Should be able to make an order Scenario: Buying a beer # features/online_shopping.feature:6 Given that there are 5 beers on stock uninitialized constant Beer (NameError) ./features/step_definitions/online_shopping_steps.rb:5: in `/^that there are (d+) beers on stock$/‘ When Vasko buys 2 beers Then there should be 3 beers left Failing Scenarios: cucumber features/online_shopping.feature:6 # Scenario: Buying a beer 1 scenario (1 failed) 3 steps (1 failed, 2 skipped) 0m0.469s
  • 17. $ rake cucumber Feature: Online shopping In order to use the full capabilities of our online shop A user Should be able to make an order Scenario: Buying a beer # features/online_shopping.feature:6 Given that there are 5 beers on stock When Vasko buys 2 beers Then there should be 3 beers left 1 scenario (1 passed) 3 steps (3 passed) 0m0.003s
  • 18. Gherkin Над 40 езика $ cucumber --i18n help | ar | Arabic | ‫|العربية‬ | bg Bulgarian | български | | ca | Catalan | català | | cs | Czech | Česky | | cy-GB | Welsh | Cymraeg | | da | Danish | dansk | | de | German | Deutsch | | en | English | English | | en-Scouse | Scouse | Scouse | | en-au | Australian | Australian | … … …
  • 19.
  • 20.
  • 21. $ rake cucumber # language: bg Функционалност: Пазаруване онлайн За да използват пълните възможности на нашия онлайн магазин Потребителите Трябва да могат да правят поръчки Сценарий: Купуване на бира # features/online_shopping.feature:10 Дадено е, че има налични 5 бири Когато Васко купи 2 бири То трябва да останат 3 бири 1 scenario (1 passed) 3 steps (3 passed) 0m0.003s
  • 23. Test
  • 24. Spec
  • 29. Cucumber + RSpec – задвижване на реализацията отвън - навътре Feature Spec Code Refactor
  • 31. Guard Bundle update Bundle already up-to-date RSpec results 197 examples, 0 failures (15 pending) in 12.274 seconds Cucumber Results 13 passed steps
  • 32. Spork Spork Rspec & Cucumber successfully started
  • 34.
  • 36. Ресурси • Десетте най-големи софтуерни грешки: http://themanojblog.blogspot.com/2009/05/ blog-wars-episode-v-historys-top-ten.html • Тестване на софтуер: http://en.wikipedia.org/wiki/Software_testing • Допълнитени ресурси: http://www.softwaretestinghelp.com
  • 37. Ресурси • Cucumber: http://cukes.info • RSpec: http://rspec.info • Guard: https://github.com/guard/guard • Spork: https://github.com/sporkrb/spork • Jenkins: http://jenkins-ci.org/
  • 38. Контакти • Георги Кременлиев: – george@empowerunited.com – @gssgek • Цветомила Михайлова: – tsvetomila@empowerunited.com – @tsvetomila