SlideShare uma empresa Scribd logo
Anderson Leite
email a [email_address] t w i tter @an d erson_leite blog w ww.an d ersonleite.com.br
CLIENTES
DESENVOLVEDORES
TESTERS
#PUTA FALTA DE SACANAGEM A maior parte dos softwares que escrevemos  nunca  será usado.
BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA CLIENTE PARA  CONTROLAR  MINHAS MUSICAS QUERO  UM  SOFTWARE QUE GERENCIE  MINHAS MP3
BDD CUCUMBER COBERTURA DESENVOLVEDOR def   create   @musica = Musica. new (params[:musica])  if  @musica.save  flash[:notice] =  “Perfect!”   redirect_to @musica  else   render :action => 'new'  end  end
BDD CUCUMBER COBERTURA TESTER HOJE  EU  ARREBENTO ESSE  SOFTWARE ....
LINGUAGEM COMUM BDD CUCUMBER COBERTURA
BDD + BDD CUCUMBER COBERTURA
BDD BDD CUCUMBER COBERTURA Behaviour-driven development  é sobre implementar  uma aplicação descrevendo seu  comportamento   da perspectiva dos seus  stakeholders .
BDD BDD CUCUMBER COBERTURA
BDD BDD CUCUMBER COBERTURA Faça o suficiente
BDD BDD CUCUMBER COBERTURA Faça o suficiente Entregue valor real
BDD BDD CUCUMBER COBERTURA Faça o suficiente Entregue valor real Tudo é comportamento
BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA
 
CUKES.INFO BDD CUCUMBER COBERTURA
CUCUMBER gem install cucumber BDD CUCUMBER COBERTURA gem install cucumber-rails gem install database_cleaner gem install capybara gem install rspec
CUCUMBER PROJECT_ROOT/ | -- FEATURES | -- musicas.feature BDD CUCUMBER COBERTURA
CUCUMBER PROJECT_ROOT/ | -- FEATURES | -- musicas.feature -- SUPPORT | env.rb BDD CUCUMBER COBERTURA
CUCUMBER PROJECT_ROOT/ | -- FEATURES | -- musicas.feature -- SUPPORT | env.rb -- STEP_DEFINITIONS | musicas_steps.rb BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA given  when then and  but  Dado  QuandoEntão  E  Mas
STEP BDD CUCUMBER COBERTURA DEFINITION Dado  uma situação Dado  /^uma situação$/  do   visit "/" end end
BDD CUCUMBER COBERTURA feature  background  scenario  scenario_outlineexamples  FuncionalidadeContextoCenário  Esquema do Cenário Exemplos
FUNCIONALIDADE
BDD CUCUMBER COBERTURA Cenario:  [titulo] Dado  [contexto] E  [mais contextos] Quando  faço [alguma ação] E  [outra ação] Então  eu deveria ver [resultado] Mas  não deveria ver [outro resultado]
BDD CUCUMBER COBERTURA Dado que estou na pagina inicial
BDD CUCUMBER COBERTURA Quando adiciono minha nova musica
BDD CUCUMBER COBERTURA Entao vejo uma mensagem de sucesso
BDD CUCUMBER COBERTURA Funcionalidade:  Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario:   Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
BDD CUCUMBER COBERTURA Funcionalidade:  Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario:   Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
BDD CUCUMBER COBERTURA
Dado  /^ que estou na pagina inicial $/  do   visit  "/" end end end BDD CUCUMBER COBERTURA
Quando  /^ adiciono minha nova musica $/  do  click_link  "New Musica"   fill_in  "musica[nome]", :with => "Vou Cantar"   fill_in  "musica[letra]", :with => "Cantando..."  click_button  "Submit" end BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA Entao  /^ vejo ela cadastrada na lista $/  do  page.should have_content   "Successfully created  musica." end
BDD CUCUMBER COBERTURA Funcionalidade:  Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario:   Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
POTHIX LEGAL  .... MAS EU TERIA  USADO O  VIM   :) BDD CUCUMBER COBERTURA
BACKGROUND /  CONTEXTO
BDD CUCUMBER COBERTURA Dado que estou na pagina inicial
BDD CUCUMBER COBERTURA Quando edito uma musica
BDD CUCUMBER COBERTURA Entao vejo a mensagem de confirmacao
BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Cenario:   Inserir nova musica Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Cenario:   Editar Musica Quando edito uma musica Entao vejo a mensagem de confirmacao Quando edito uma musica Entao vejo a mensagem de confirmacao Quando edito uma musica Entao vejo a mensagem de confirmacao
Testes são independentes BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Cenario:   Editar Musica E que a seguinte musica existe: | nome  | letra  | | vou cantar | cantando | Quando edito uma musica Entao vejo a mensagem de confirmacao MULTILINE TABLES
BDD CUCUMBER COBERTURA GREEN LIKE A CUKE!
ESQUEMA DE CENARIO
BDD CUCUMBER COBERTURA Quando adiciono a musica &quot;<nome>&quot;
BDD CUCUMBER COBERTURA Quando adiciono a musica &quot;<nome>&quot;
BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Esquema do Cenario:  Validacao Quando adiciono a musica &quot; <nome> &quot; Entao vejo a mensagem &quot; <mensagem> &quot; Exemplos: | nome  | mensagem  | | restart | Successfully created musica.| |  | Nome can't be blank  | | nome  | mensagem  | | restart | Successfully created musica.| |  | Nome can't be blank  | | nome  | mensagem  | | restart | Successfully created musica.| |  | Nome can't be blank  | | nome  | mensagem  | | restart | Successfully created musica.| |  | Nome can't be blank  |
BDD CUCUMBER COBERTURA GREEN LIKE A CUKE!
BDD CUCUMBER COBERTURA Quando edito uma musica
BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Cenario:  Letra da Musica E eu seleciono uma letra Entao verifico na tela &quot;&quot;&quot; Sei que os dias passaram E eu vejo  que o nosso pra sempre acabou  E nada do que nos foi contado, Os desejos e sonhos que a vida mudou &quot;&quot;&quot; Os desejos e sonhos que a vida mudou &quot;&quot;&quot;
BDD CUCUMBER COBERTURA MULTILINE STRINGS
BDD CUCUMBER COBERTURA CUCUMBER OPTIONS - TAGS / FORMAT  @inserir Cenario:   Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso cucumber --tags @inserir --format pretty
BDD CUCUMBER COBERTURA REFACTOR and REPEAT
BDD CUCUMBER COBERTURA
BDD CUCUMBER COBERTURA RELEVANCE-RCOV gem install relevance-rcov Cucumber::Rake::Task.new(:rcov) do |t|  t.rcov = true  t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/}  t.rcov_opts << %[-o &quot;features_rcov&quot;]  end end
RELEVANCE-RCOV BDD CUCUMBER COBERTURA
RELEVANCE-RCOV BDD CUCUMBER COBERTURA
RELEVANCE-RCOV BDD CUCUMBER COBERTURA
CONCLUINDO... BDD CUCUMBER COBERTURA
http://github.com/andersonleite/kidsongs http://www.slideshare.net/andersonleite
SÉRIO!   =D Se você não usar  testes  na sua próxima aplicação... #VOU XINGAR MUITO NO TWITTER
Anderson Leite @anderson_leite [email_address] www.andersonleite.com.br

Mais conteúdo relacionado

PPTX
Vamos gravar um cd de musica na escola
PDF
Como o Cucumber Funciona
PPT
BDD: Cucumber + Selenium + Java
PPTX
BDD com specflow e selenium webdriver
PDF
Testes In Browser Em Rails Com Capybara E Webdriver
PDF
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
PPTX
Aplicacoes para celular com Ruby
PDF
Abertura do ruby_rails_no_mundo_real_guru_sp
Vamos gravar um cd de musica na escola
Como o Cucumber Funciona
BDD: Cucumber + Selenium + Java
BDD com specflow e selenium webdriver
Testes In Browser Em Rails Com Capybara E Webdriver
Ruby + Rails no Mundo Real 2010 - Voodoo é pra Jacu - Entendendo metaprograma...
Aplicacoes para celular com Ruby
Abertura do ruby_rails_no_mundo_real_guru_sp

Destaque (20)

PDF
Aula 02 POO - Meu Primeiro Código
PDF
Geek night-2015
PDF
Lógica de Programação - Unimep/Pronatec - Aula08
PDF
batch - escalando um sistema sem fermento
PDF
O que há de novo no Rails 3
PDF
O que você NÃO aprendeu sobre Programação Orientada a Objetos
PPTX
Selenium - WebDriver
PDF
Programacao Orientada A Objetos (Java)
PDF
Como testar sua aplicação Android e iOS: uma abordagem prática
PDF
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
PPTX
BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizado...
PDF
Pagando sua dívida técnica à vista
PDF
BDD em Ação - Testadores 2015
PDF
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
PDF
Revisão Sobre Programação Orientada a Objetos com Java
PDF
Programação Orientada á Objeto - Paradigmas e Implementação
PDF
BDD com Cucumber
PPT
Introdução a programação Orientada a Objeto
PDF
Apostila Lógica de Programação
PPT
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
Aula 02 POO - Meu Primeiro Código
Geek night-2015
Lógica de Programação - Unimep/Pronatec - Aula08
batch - escalando um sistema sem fermento
O que há de novo no Rails 3
O que você NÃO aprendeu sobre Programação Orientada a Objetos
Selenium - WebDriver
Programacao Orientada A Objetos (Java)
Como testar sua aplicação Android e iOS: uma abordagem prática
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizado...
Pagando sua dívida técnica à vista
BDD em Ação - Testadores 2015
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
Revisão Sobre Programação Orientada a Objetos com Java
Programação Orientada á Objeto - Paradigmas e Implementação
BDD com Cucumber
Introdução a programação Orientada a Objeto
Apostila Lógica de Programação
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
Anúncio

Último (12)

PPTX
Integração Saúde e Segurança no Trabalho NR-1.pptx
PPTX
Operação segura com Empilhadeira Oficial.pptx
PDF
requalificação DE NR10. eletricidade segurança pdf
PDF
roteiro_de_estudos_de_19_a_30_de_outubro_-_4os_anos.pdf
DOC
atividade ADAPTADA 02 COM GABARITO).doc
PPTX
Tecnicas de operação em empilhadeira-edson.pptx
DOC
atividade ADAPTADA 01 COM GABARITO).doc
PPTX
A explicação completa sobre o Ses e Leur.pptx
PPT
Apresentação Equipamento de Proteção Individual - EPI
PPT
Segurança na Operaçao e Manutenção de Aparelhos em Instalaçoes Elétricas.ppt
PPTX
Descritores Do Saeb - Tópico I | PDF | Conhecimento
PDF
420224870-Gestao-pela-qualidade-e-melhoria-de-processos.pdf
Integração Saúde e Segurança no Trabalho NR-1.pptx
Operação segura com Empilhadeira Oficial.pptx
requalificação DE NR10. eletricidade segurança pdf
roteiro_de_estudos_de_19_a_30_de_outubro_-_4os_anos.pdf
atividade ADAPTADA 02 COM GABARITO).doc
Tecnicas de operação em empilhadeira-edson.pptx
atividade ADAPTADA 01 COM GABARITO).doc
A explicação completa sobre o Ses e Leur.pptx
Apresentação Equipamento de Proteção Individual - EPI
Segurança na Operaçao e Manutenção de Aparelhos em Instalaçoes Elétricas.ppt
Descritores Do Saeb - Tópico I | PDF | Conhecimento
420224870-Gestao-pela-qualidade-e-melhoria-de-processos.pdf
Anúncio

BDD & Cucumber

  • 2. email a [email_address] t w i tter @an d erson_leite blog w ww.an d ersonleite.com.br
  • 6. #PUTA FALTA DE SACANAGEM A maior parte dos softwares que escrevemos nunca será usado.
  • 9. BDD CUCUMBER COBERTURA CLIENTE PARA CONTROLAR MINHAS MUSICAS QUERO UM SOFTWARE QUE GERENCIE MINHAS MP3
  • 10. BDD CUCUMBER COBERTURA DESENVOLVEDOR def create @musica = Musica. new (params[:musica]) if @musica.save flash[:notice] = “Perfect!” redirect_to @musica else render :action => 'new' end end
  • 11. BDD CUCUMBER COBERTURA TESTER HOJE EU ARREBENTO ESSE SOFTWARE ....
  • 12. LINGUAGEM COMUM BDD CUCUMBER COBERTURA
  • 13. BDD + BDD CUCUMBER COBERTURA
  • 14. BDD BDD CUCUMBER COBERTURA Behaviour-driven development é sobre implementar uma aplicação descrevendo seu comportamento da perspectiva dos seus stakeholders .
  • 15. BDD BDD CUCUMBER COBERTURA
  • 16. BDD BDD CUCUMBER COBERTURA Faça o suficiente
  • 17. BDD BDD CUCUMBER COBERTURA Faça o suficiente Entregue valor real
  • 18. BDD BDD CUCUMBER COBERTURA Faça o suficiente Entregue valor real Tudo é comportamento
  • 21.  
  • 23. CUCUMBER gem install cucumber BDD CUCUMBER COBERTURA gem install cucumber-rails gem install database_cleaner gem install capybara gem install rspec
  • 24. CUCUMBER PROJECT_ROOT/ | -- FEATURES | -- musicas.feature BDD CUCUMBER COBERTURA
  • 25. CUCUMBER PROJECT_ROOT/ | -- FEATURES | -- musicas.feature -- SUPPORT | env.rb BDD CUCUMBER COBERTURA
  • 26. CUCUMBER PROJECT_ROOT/ | -- FEATURES | -- musicas.feature -- SUPPORT | env.rb -- STEP_DEFINITIONS | musicas_steps.rb BDD CUCUMBER COBERTURA
  • 27. BDD CUCUMBER COBERTURA given when then and but Dado QuandoEntão E Mas
  • 28. STEP BDD CUCUMBER COBERTURA DEFINITION Dado uma situação Dado /^uma situação$/ do visit &quot;/&quot; end end
  • 29. BDD CUCUMBER COBERTURA feature background scenario scenario_outlineexamples FuncionalidadeContextoCenário Esquema do Cenário Exemplos
  • 31. BDD CUCUMBER COBERTURA Cenario: [titulo] Dado [contexto] E [mais contextos] Quando faço [alguma ação] E [outra ação] Então eu deveria ver [resultado] Mas não deveria ver [outro resultado]
  • 32. BDD CUCUMBER COBERTURA Dado que estou na pagina inicial
  • 33. BDD CUCUMBER COBERTURA Quando adiciono minha nova musica
  • 34. BDD CUCUMBER COBERTURA Entao vejo uma mensagem de sucesso
  • 35. BDD CUCUMBER COBERTURA Funcionalidade: Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario: Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
  • 36. BDD CUCUMBER COBERTURA Funcionalidade: Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario: Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
  • 38. Dado /^ que estou na pagina inicial $/ do visit &quot;/&quot; end end end BDD CUCUMBER COBERTURA
  • 39. Quando /^ adiciono minha nova musica $/ do click_link &quot;New Musica&quot; fill_in &quot;musica[nome]&quot;, :with => &quot;Vou Cantar&quot; fill_in &quot;musica[letra]&quot;, :with => &quot;Cantando...&quot; click_button &quot;Submit&quot; end BDD CUCUMBER COBERTURA
  • 40. BDD CUCUMBER COBERTURA Entao /^ vejo ela cadastrada na lista $/ do page.should have_content &quot;Successfully created musica.&quot; end
  • 41. BDD CUCUMBER COBERTURA Funcionalidade: Para treinar todas cancoes Como um admirador das boas letras Quero um controle de músicas Cenario: Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso
  • 42. POTHIX LEGAL .... MAS EU TERIA USADO O VIM :) BDD CUCUMBER COBERTURA
  • 43. BACKGROUND / CONTEXTO
  • 44. BDD CUCUMBER COBERTURA Dado que estou na pagina inicial
  • 45. BDD CUCUMBER COBERTURA Quando edito uma musica
  • 46. BDD CUCUMBER COBERTURA Entao vejo a mensagem de confirmacao
  • 47. BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Cenario: Inserir nova musica Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Cenario: Editar Musica Quando edito uma musica Entao vejo a mensagem de confirmacao Quando edito uma musica Entao vejo a mensagem de confirmacao Quando edito uma musica Entao vejo a mensagem de confirmacao
  • 48. Testes são independentes BDD CUCUMBER COBERTURA
  • 49. BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Cenario: Editar Musica E que a seguinte musica existe: | nome | letra | | vou cantar | cantando | Quando edito uma musica Entao vejo a mensagem de confirmacao MULTILINE TABLES
  • 50. BDD CUCUMBER COBERTURA GREEN LIKE A CUKE!
  • 52. BDD CUCUMBER COBERTURA Quando adiciono a musica &quot;<nome>&quot;
  • 53. BDD CUCUMBER COBERTURA Quando adiciono a musica &quot;<nome>&quot;
  • 54. BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Esquema do Cenario: Validacao Quando adiciono a musica &quot; <nome> &quot; Entao vejo a mensagem &quot; <mensagem> &quot; Exemplos: | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank | | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank | | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank | | nome | mensagem | | restart | Successfully created musica.| | | Nome can't be blank |
  • 55. BDD CUCUMBER COBERTURA GREEN LIKE A CUKE!
  • 56. BDD CUCUMBER COBERTURA Quando edito uma musica
  • 57. BDD CUCUMBER COBERTURA Contexto: Dado que estou na pagina inicial Cenario: Letra da Musica E eu seleciono uma letra Entao verifico na tela &quot;&quot;&quot; Sei que os dias passaram E eu vejo que o nosso pra sempre acabou E nada do que nos foi contado, Os desejos e sonhos que a vida mudou &quot;&quot;&quot; Os desejos e sonhos que a vida mudou &quot;&quot;&quot;
  • 58. BDD CUCUMBER COBERTURA MULTILINE STRINGS
  • 59. BDD CUCUMBER COBERTURA CUCUMBER OPTIONS - TAGS / FORMAT @inserir Cenario: Inserir nova musica Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso Dado que estou na pagina inicial Quando adiciono minha nova musica Entao vejo uma mensagem de sucesso cucumber --tags @inserir --format pretty
  • 60. BDD CUCUMBER COBERTURA REFACTOR and REPEAT
  • 62. BDD CUCUMBER COBERTURA RELEVANCE-RCOV gem install relevance-rcov Cucumber::Rake::Task.new(:rcov) do |t| t.rcov = true t.rcov_opts = %w{--rails --exclude osx\/objc,gems\/,spec\/} t.rcov_opts << %[-o &quot;features_rcov&quot;] end end
  • 68. SÉRIO! =D Se você não usar testes na sua próxima aplicação... #VOU XINGAR MUITO NO TWITTER
  • 69. Anderson Leite @anderson_leite [email_address] www.andersonleite.com.br