SlideShare uma empresa Scribd logo
1 de 22
BDD com
     Cucumber
RubyLX 2 - 7 de Novembro de 2009
          Ilídio Varandas
        varandasi@gmail.com
              IV4.pt
                                      Em
                                   25 minutos
Quem utiliza ?


• Cucumber
• RSpec
O que é o BDD?
O que é o BDD?
• Técnica de desenvolvimento de software,
  que encoraja a colaboração entre:
O que é o BDD?
• Técnica de desenvolvimento de software,
  que encoraja a colaboração entre:
 • Programadores
O que é o BDD?
• Técnica de desenvolvimento de software,
  que encoraja a colaboração entre:
 • Programadores
 • QA (Quality Assurance)
O que é o BDD?
• Técnica de desenvolvimento de software,
  que encoraja a colaboração entre:
 • Programadores
 • QA (Quality Assurance)
 • Áreas de negócio, e outros participantes
    não técnicos
Cucumber
Cucumber

• É uma ferramenta para criação de testes e
  gestão de requisitos
Cucumber

• É uma ferramenta para criação de testes e
  gestão de requisitos
• Facilita a comunicação entre os
  programadores e os stake-holders
Cucumber - Estrutura


Features descritas em   Definição dos Steps em
        texto                   Ruby
Cucumber - Feature
Cucumber - Feature
Feature: title

In order to [Business Value]
As a [Role]
I want to [Some Action]
Cucumber - Feature
Feature: title                 Título



In order to [Business Value]
As a [Role]
I want to [Some Action]
Cucumber - Feature
Feature: title                  Título



In order to [Business Value]
As a [Role]                    Narrativa

I want to [Some Action]
Cucumber - Feature
Feature: title                  Título



In order to [Business Value]
As a [Role]                    Narrativa

I want to [Some Action]

Scenario: title

Given [Context]
When [Action]
Then [Outcome]
Cucumber - Feature
Feature: title                     Título



In order to [Business Value]
As a [Role]                      Narrativa

I want to [Some Action]

Scenario: title
                                Cenários que
                               servem com o
Given [Context]                  critérios de
When [Action]                     aceitação

Then [Outcome]
Cucumber - Step
  Given we like “pastel de belém”         Feature (texto)


                  regexp match

Given /^we like “([^"]*)“$/i do |food|
 food.should == ‘pastel de belém’          Step (Ruby)
end
Instalação


• gem install cucumber rspec rspec-rails
  webrat
Demo
Questões?
Referências


• http://cukes.info/
• The RSpec Book

Mais conteúdo relacionado

Destaque

Modul 2 kb 1 perumusan masalah dan tujuan penelitian
Modul 2 kb 1 perumusan masalah dan tujuan penelitianModul 2 kb 1 perumusan masalah dan tujuan penelitian
Modul 2 kb 1 perumusan masalah dan tujuan penelitianUwes Chaeruman
 
Int. Mkt. Presentation
Int. Mkt. PresentationInt. Mkt. Presentation
Int. Mkt. Presentationapantell
 
kb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitas
kb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitaskb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitas
kb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitasUwes Chaeruman
 
Kb 1 penyulit dan komplikasi masa nifas
Kb 1 penyulit dan komplikasi masa nifasKb 1 penyulit dan komplikasi masa nifas
Kb 1 penyulit dan komplikasi masa nifasUwes Chaeruman
 
Modul 5 kb2 penatalaksanaan pasien post operasi
Modul 5 kb2 penatalaksanaan pasien post operasiModul 5 kb2 penatalaksanaan pasien post operasi
Modul 5 kb2 penatalaksanaan pasien post operasiUwes Chaeruman
 

Destaque (10)

Modul 2 kb 1 perumusan masalah dan tujuan penelitian
Modul 2 kb 1 perumusan masalah dan tujuan penelitianModul 2 kb 1 perumusan masalah dan tujuan penelitian
Modul 2 kb 1 perumusan masalah dan tujuan penelitian
 
Modul 4 kb 4
Modul 4 kb 4Modul 4 kb 4
Modul 4 kb 4
 
Int. Mkt. Presentation
Int. Mkt. PresentationInt. Mkt. Presentation
Int. Mkt. Presentation
 
Kb 2
Kb 2Kb 2
Kb 2
 
Kb 3
Kb 3Kb 3
Kb 3
 
kb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitas
kb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitaskb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitas
kb1 asuhan keperawatan pasien dengan gangguan pemenuhan kebutuhan aktifitas
 
Kb 1 penyulit dan komplikasi masa nifas
Kb 1 penyulit dan komplikasi masa nifasKb 1 penyulit dan komplikasi masa nifas
Kb 1 penyulit dan komplikasi masa nifas
 
Modul 1 kb 2
Modul 1 kb 2Modul 1 kb 2
Modul 1 kb 2
 
Modul 5 kb2 penatalaksanaan pasien post operasi
Modul 5 kb2 penatalaksanaan pasien post operasiModul 5 kb2 penatalaksanaan pasien post operasi
Modul 5 kb2 penatalaksanaan pasien post operasi
 
Online marketing research 2011
Online marketing research 2011Online marketing research 2011
Online marketing research 2011
 

Bdd Cucumber Em 25 Minutos

  • 1. BDD com Cucumber RubyLX 2 - 7 de Novembro de 2009 Ilídio Varandas varandasi@gmail.com IV4.pt Em 25 minutos
  • 2. Quem utiliza ? • Cucumber • RSpec
  • 3. O que é o BDD?
  • 4. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre:
  • 5. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre: • Programadores
  • 6. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre: • Programadores • QA (Quality Assurance)
  • 7. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre: • Programadores • QA (Quality Assurance) • Áreas de negócio, e outros participantes não técnicos
  • 9. Cucumber • É uma ferramenta para criação de testes e gestão de requisitos
  • 10. Cucumber • É uma ferramenta para criação de testes e gestão de requisitos • Facilita a comunicação entre os programadores e os stake-holders
  • 11. Cucumber - Estrutura Features descritas em Definição dos Steps em texto Ruby
  • 13. Cucumber - Feature Feature: title In order to [Business Value] As a [Role] I want to [Some Action]
  • 14. Cucumber - Feature Feature: title Título In order to [Business Value] As a [Role] I want to [Some Action]
  • 15. Cucumber - Feature Feature: title Título In order to [Business Value] As a [Role] Narrativa I want to [Some Action]
  • 16. Cucumber - Feature Feature: title Título In order to [Business Value] As a [Role] Narrativa I want to [Some Action] Scenario: title Given [Context] When [Action] Then [Outcome]
  • 17. Cucumber - Feature Feature: title Título In order to [Business Value] As a [Role] Narrativa I want to [Some Action] Scenario: title Cenários que servem com o Given [Context] critérios de When [Action] aceitação Then [Outcome]
  • 18. Cucumber - Step Given we like “pastel de belém” Feature (texto) regexp match Given /^we like “([^"]*)“$/i do |food| food.should == ‘pastel de belém’ Step (Ruby) end
  • 19. Instalação • gem install cucumber rspec rspec-rails webrat
  • 20. Demo

Notas do Editor

  1. Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado) Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ? Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
  2. Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado) Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ? Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
  3. Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado) Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ? Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
  4. Ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código (BDD ajuda a chegar a uma definição de finalizado) Quem já acabou um desenvolvimento e no período de aceitação lhe disseram: “não foi isto que eu pedi” ou “esqueci-me de te mencionar uma coisa” ? Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.
  5. Ferramenta para criar testes de aceitação automatizados. Pode ser usado pelo programador como ferramenta de TDD E pelo cliente para gestão de requisitos. Permite reduzir o fosso entre o programador e os stake holders através do uso de linguagem que ambos entendem Funcionalidades que desejam ter
  6. Ferramenta para criar testes de aceitação automatizados. Pode ser usado pelo programador como ferramenta de TDD E pelo cliente para gestão de requisitos. Permite reduzir o fosso entre o programador e os stake holders através do uso de linguagem que ambos entendem Funcionalidades que desejam ter
  7. Lê ficheiros de texto com as funcionalidades da aplicação As funcionalidades são descritas com cenários de exemplo Os steps permitem a interacção com o código a ser desenvolvido
  8. Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
  9. Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
  10. Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
  11. Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
  12. Título Breve Narrativa E um número arbitrário de cenários que servem como critérios de aceitação Não é rígido, não há um template, o que for melhor para comunicar com o cliente podem usar. Desde que tenham estes 3 pontos Assim que temos o nosso Business value, queremos definir os critérios de aceitação. Que são executáveis
  13. O que permite com que os steps sejam executáveis são os step definitions Falar do RSpec dentro do step
  14. Não é obrigatório instalar o rspec, rspec-rails e o webrat. Mas ajudam imenso webrat Browser Simulator for expressive, high level acceptance testing