BDD
                com
     Cucumber
Ruby @ Aliados - 16 de Maio de 2009

           Ilídio Varandas
          twitter.co...
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 (Quali...
O que é o BDD?
• Técnica de desenvolvimento de software,
  que encoraja a colaboração entre:
 • Programadores
 • QA (Quali...
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
  programad...
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 Actio...
Cucumber - Feature
Feature: title                  Título



In order to [Business Value]
As a [Role]                    N...
Cucumber - Feature
Feature: title                  Título



In order to [Business Value]
As a [Role]                    N...
Cucumber - Feature
Feature: title                     Título



In order to [Business Value]
As a [Role]                  ...
Cucumber - Step
Given we like francesinha           Feature (texto)


                  regexp match

Given /^we like (.*)...
Instalação


• gem install cucumber rspec rspec-rails
  webrat
Demo
Questões?
Upcoming SlideShare
Loading in …5
×

Bdd Cucumber

1,450 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,450
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.

    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” ?

    BDD ajuda a chegar a uma definição de finalizado, ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código
  • Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.

    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” ?

    BDD ajuda a chegar a uma definição de finalizado, ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código
  • Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.

    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” ?

    BDD ajuda a chegar a uma definição de finalizado, ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código
  • Concebido originalmente em 2003 por Dan North como resposta ao Test Driven Development, e foi evoluindo ao longo dos anos.

    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” ?

    BDD ajuda a chegar a uma definição de finalizado, ao utilizar uma linguagem comum para descrever os objectivos e os benefícios do código
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • O que permite com que os steps sejam executáveis são os step definitions
    Falar do RSpec dentro do step
  • Não é obrigatório instalar o rspec, rspec-rails e o webrat. Mas ajudam imenso
  • Bdd Cucumber

    1. 1. BDD com Cucumber Ruby @ Aliados - 16 de Maio de 2009 Ilídio Varandas twitter.com/varandas
    2. 2. Quem utiliza ? • Cucumber • RSpec
    3. 3. O que é o BDD?
    4. 4. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre:
    5. 5. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre: • Programadores
    6. 6. O que é o BDD? • Técnica de desenvolvimento de software, que encoraja a colaboração entre: • Programadores • QA (Quality Assurance)
    7. 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
    8. 8. Cucumber
    9. 9. Cucumber • É uma ferramenta para criação de testes e gestão de requisitos
    10. 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. 11. Cucumber - Estrutura Features descritas em Definição dos Steps em texto Ruby
    12. 12. Cucumber - Feature
    13. 13. Cucumber - Feature Feature: title In order to [Business Value] As a [Role] I want to [Some Action]
    14. 14. Cucumber - Feature Feature: title Título In order to [Business Value] As a [Role] I want to [Some Action]
    15. 15. Cucumber - Feature Feature: title Título In order to [Business Value] As a [Role] Narrativa I want to [Some Action]
    16. 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. 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. 18. Cucumber - Step Given we like francesinha Feature (texto) regexp match Given /^we like (.*)$/i do |food| food.should == ‘francesinha’ Step (Ruby) end
    19. 19. Instalação • gem install cucumber rspec rspec-rails webrat
    20. 20. Demo
    21. 21. Questões?

    ×