SlideShare uma empresa Scribd logo
1 de 31
Luciano Costa
behaviour  =   comportamento
behaviour driven development == desenvolvimento orientado a comportamento BDD
descreva  como sua aplicação  deve se   comportar BDD
teste primeiro, codifique depois! BDD/TDD
codifique  somente o necessário para passar no teste BDD/TDD
comportamento
Por que você está aqui?
Estrutura de User Story   Sendo um ...  Eu quero/necessito ...  De modo que ...
Estrutura de User Story   Sendo um ...  (quem)  Eu quero/necessito ...  (funcionalidade)  De modo que ...  (valor de negócio)
Sistema para locadora de DVD’s brilliant! exemplo
Funcionalidade: Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir
Funcionalidade :   Usuário lista filmes a alugar com prioridade Para   aumentar a quantidade de filmes alugados O   usuário cadastrado Necessita   informar os filmes que deseja assistir
Funcionalidade :   Usuário lista filmes a alugar com prioridade Para   aumentar a quantidade de filmes alugados O   usuário cadastrado Necessita   informar os filmes que deseja assistir Ooops! Eu acho que vi um padrão!
Funcionalidade :   Usuário lista filmes a alugar com prioridade Para   aumentar a quantidade de filmes alugados O   usuário cadastrado Necessita   informar os filmes que deseja assistir Lembra User Story? Ooops! Eu acho que vi um padrão!
Funcionalidade:   Usuário lista filmes a alugar com prioridade Para   aumentar a quantidade de filmes alugados O   usuário cadastrado Necessita   informar os filmes que deseja assistir (quem) (funcionalidade) (valor de negócio) Glup! Eu vi sim! Eu vi sim!
Estrutura de User Story   Sendo um ...  (quem)  Eu quero/necessito ...  (funcionalidade)  De modo que ...  (valor de negócio)
Funcionalidade:   Usuário lista filmes a alugar com prioridade Para   aumentar a quantidade de filmes alugados O   usuário cadastrado Necessita   informar os filmes que deseja assistir (quem) (funcionalidade) (valor de negócio) Cucumber Feature
behaviour driven development ,[object Object],[object Object],[object Object],[object Object]
Funcionalidade :   Usuário lista filmes a alugar com prioridade Para   aumentar a quantidade de filmes alugados O   usuário cadastrado Necessita   informar os filmes que deseja assistir Cenário : Alta prioridade Dado   que estou autenticado Quando   eu clicar no filme  “Elvis” E   apertar o botão  “prioridade alta” Então   eu devo ver  “filme adicionado à lista” E   devo ver  “Elvis”  na minha lista E  “Elvis”  deve estar marcado como  “prioridade alta” Cenário : .... Dado  ...  Quando   ... Então   ... /features/aluguel.feature
Dado  “que estou autenticado”  do //code end Quando  “eu clicar no filme Elvis”  do //code end E  “apertar o botão prioridade alta”  do //code end Então  “eu devo ver filme adicionado à lista”  do //code end E  “devo ver Elvis na minha lista”  do //code end E  “Elvis” deve estar marcado como prioridade alta”  do //code end /features/steps/aluguel_steps.rb
The Art of  War  Plain Text!
Cucumber   é uma   ferramenta   que   executa documentação   de   funcionalidades   escrita em   texto puro
Internacionalização! use o  seu   idioma
integrações
Dúvidas ?
E quanto à tradução de  “Cucumber”  ? =)
 
 
Cucumber = Pepino!
Obrigado, abraço! Luciano Costa [email_address] Don Pepino!

Mais conteúdo relacionado

Destaque

O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilSamanta Cicilia
 
Plano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de ServidoresPlano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de ServidoresDiego Armando
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Maurício Linhares
 
Cuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecCuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecMaurício Linhares
 
Plano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidadePlano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidadeSharles Sa
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMaurício Linhares
 
Demoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaDemoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaVanderson Silva
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Vanderson Silva
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralVanderson Silva
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogCesar Augusto Nogueira
 
Relatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo FreireRelatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo FreireMaurício Linhares
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralVanderson Silva
 
Relatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-TeacherRelatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-TeacherMaurício Linhares
 

Destaque (20)

O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágil
 
Behaviour-Driven Development com Ruby
Behaviour-Driven Development com RubyBehaviour-Driven Development com Ruby
Behaviour-Driven Development com Ruby
 
Plano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de ServidoresPlano de projeto - Sistema de Remoção de Servidores
Plano de projeto - Sistema de Remoção de Servidores
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015BDD em Ação - Testadores 2015
BDD em Ação - Testadores 2015
 
Cuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecCuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpec
 
Aprendendo ruby
Aprendendo rubyAprendendo ruby
Aprendendo ruby
 
Plano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidadePlano de gerenciamento_da_qualidade
Plano de gerenciamento_da_qualidade
 
Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Demoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a horaDemoiselle 3 Está chegando a hora
Demoiselle 3 Está chegando a hora
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Relatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo FreireRelatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo Freire
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Cucumber and BDD
Cucumber and BDDCucumber and BDD
Cucumber and BDD
 
Inspeções em desenvolvimento de software
Inspeções em desenvolvimento de softwareInspeções em desenvolvimento de software
Inspeções em desenvolvimento de software
 
Relatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-TeacherRelatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-Teacher
 

BDD com Cucumber - Desenvolvimento orientado a comportamento

  • 2. behaviour = comportamento
  • 3. behaviour driven development == desenvolvimento orientado a comportamento BDD
  • 4. descreva como sua aplicação deve se comportar BDD
  • 5. teste primeiro, codifique depois! BDD/TDD
  • 6. codifique somente o necessário para passar no teste BDD/TDD
  • 8. Por que você está aqui?
  • 9. Estrutura de User Story Sendo um ... Eu quero/necessito ... De modo que ...
  • 10. Estrutura de User Story Sendo um ... (quem) Eu quero/necessito ... (funcionalidade) De modo que ... (valor de negócio)
  • 11. Sistema para locadora de DVD’s brilliant! exemplo
  • 12. Funcionalidade: Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir
  • 13. Funcionalidade : Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir
  • 14. Funcionalidade : Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir Ooops! Eu acho que vi um padrão!
  • 15. Funcionalidade : Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir Lembra User Story? Ooops! Eu acho que vi um padrão!
  • 16. Funcionalidade: Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir (quem) (funcionalidade) (valor de negócio) Glup! Eu vi sim! Eu vi sim!
  • 17. Estrutura de User Story Sendo um ... (quem) Eu quero/necessito ... (funcionalidade) De modo que ... (valor de negócio)
  • 18. Funcionalidade: Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir (quem) (funcionalidade) (valor de negócio) Cucumber Feature
  • 19.
  • 20. Funcionalidade : Usuário lista filmes a alugar com prioridade Para aumentar a quantidade de filmes alugados O usuário cadastrado Necessita informar os filmes que deseja assistir Cenário : Alta prioridade Dado que estou autenticado Quando eu clicar no filme “Elvis” E apertar o botão “prioridade alta” Então eu devo ver “filme adicionado à lista” E devo ver “Elvis” na minha lista E “Elvis” deve estar marcado como “prioridade alta” Cenário : .... Dado ... Quando ... Então ... /features/aluguel.feature
  • 21. Dado “que estou autenticado” do //code end Quando “eu clicar no filme Elvis” do //code end E “apertar o botão prioridade alta” do //code end Então “eu devo ver filme adicionado à lista” do //code end E “devo ver Elvis na minha lista” do //code end E “Elvis” deve estar marcado como prioridade alta” do //code end /features/steps/aluguel_steps.rb
  • 22. The Art of War Plain Text!
  • 23. Cucumber é uma ferramenta que executa documentação de funcionalidades escrita em texto puro
  • 27. E quanto à tradução de “Cucumber” ? =)
  • 28.  
  • 29.  
  • 31. Obrigado, abraço! Luciano Costa [email_address] Don Pepino!