SlideShare una empresa de Scribd logo
1 de 21
BDD
                com
     Cucumber
Ruby @ Aliados - 16 de Maio de 2009

           Ilídio Varandas
          twitter.com/varandas
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 francesinha           Feature (texto)


                  regexp match

Given /^we like (.*)$/i do |food|
 food.should == ‘francesinha’        Step (Ruby)
end
Instalação


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

Más contenido relacionado

Similar a BDD com Cucumber Ruby

BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de ServiçoRafael Lima
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalEduardo Bregaida
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Railsoverduka
 
Ruby On Rails : Produtividade, Agilidade, Apenas uma Ferramenta?
Ruby On Rails :  Produtividade, Agilidade, Apenas uma Ferramenta?Ruby On Rails :  Produtividade, Agilidade, Apenas uma Ferramenta?
Ruby On Rails : Produtividade, Agilidade, Apenas uma Ferramenta?Rodrigo Urubatan
 
Dito Tech Talk RSpec
Dito Tech Talk RSpecDito Tech Talk RSpec
Dito Tech Talk RSpecguest49d83b2
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaGabriel Molter
 
Gerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On RailsGerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On RailsRodrigo Urubatan
 
DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 Eduardo Bregaida
 
Workshop calabash android
Workshop calabash androidWorkshop calabash android
Workshop calabash androidGislaine Melo
 
pepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSSpepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSSRodrigo Urubatan
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Renato Groff
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Renato Groff
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
.NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE...
.NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE....NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE...
.NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE...Renato Groff
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumRafael Cruz, MCT, MBA
 

Similar a BDD com Cucumber Ruby (20)

BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Java+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso TotalJava+DDD+BDD+TDD=Sucesso Total
Java+DDD+BDD+TDD=Sucesso Total
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Rails
 
Ruby On Rails : Produtividade, Agilidade, Apenas uma Ferramenta?
Ruby On Rails :  Produtividade, Agilidade, Apenas uma Ferramenta?Ruby On Rails :  Produtividade, Agilidade, Apenas uma Ferramenta?
Ruby On Rails : Produtividade, Agilidade, Apenas uma Ferramenta?
 
Dito Tech Talk RSpec
Dito Tech Talk RSpecDito Tech Talk RSpec
Dito Tech Talk RSpec
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e Prática
 
Gerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On RailsGerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On Rails
 
Palestra Fatec
Palestra FatecPalestra Fatec
Palestra Fatec
 
Behaviour-Driven Development com Ruby
Behaviour-Driven Development com RubyBehaviour-Driven Development com Ruby
Behaviour-Driven Development com Ruby
 
DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015
 
Workshop calabash android
Workshop calabash androidWorkshop calabash android
Workshop calabash android
 
pepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSSpepinos do cliente no código de testes da aplicação com OSS
pepinos do cliente no código de testes da aplicação com OSS
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
.NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE...
.NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE....NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE...
.NET Core 3.x + ASP.NET Core 3.x + Docker + Kubernetes na prática - Canal .NE...
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
 

BDD com Cucumber Ruby

  • 1. BDD com Cucumber Ruby @ Aliados - 16 de Maio de 2009 Ilídio Varandas twitter.com/varandas
  • 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 francesinha Feature (texto) regexp match Given /^we like (.*)$/i do |food| food.should == ‘francesinha’ Step (Ruby) end
  • 19. Instalação • gem install cucumber rspec rspec-rails webrat
  • 20. Demo

Notas del editor

  1. 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
  2. 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
  3. 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
  4. 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
  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