Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

BDD com Cucumber, Selenium e Rails

2,875 views

Published on

Slides da palestra BDD on Rails no terceiro encontro XPCE

Published in: Technology, News & Politics
  • Be the first to comment

BDD com Cucumber, Selenium e Rails

  1. 1. BDD on Rails Cucumber, Selenium, Rspec e compahia Christiano Milfont Terceiro encontro 2009 Copyright 2009 Milfont.org
  2. 2. <ul><ul><li>Christiano Milfont </li></ul></ul><ul><ul><li>http://www.milfont.org </li></ul></ul>Palestrante
  3. 3. Release Plan <ul><li>“ A good plan violently executed now is better than a perfect plan executed next week.” </li></ul><ul><li>“ Um bom plano executado violentamente agora é melhor que um plano perfeito executado na próxima semana. </li></ul><ul><li>General George S. Patton </li></ul>
  4. 4. Master Story List ID Criticidade Item Iteração Estimativa Restando 1 Altíssimo Registrar exercicio 1 2 0 2 Baixo Convidar amigos 1 8 ? 3 Baixo ? ? ? 4 Médio Aprovar parceiro 1 2 ? 5 Alto Controlar idade 1 4 0 6 Baixo Cadastrar status ? ? ? 7 Baixo Inserir fotos ? ? ? 8 baixo Cadastro treinador ? ? ?
  5. 5. <ul><li>User Story </li></ul><ul><ul><ul><li>Card [cartão] </li></ul></ul></ul><ul><ul><ul><li>Conversation [conversação] </li></ul></ul></ul><ul><ul><ul><li>Confirmation [confirmação] </li></ul></ul></ul><ul><li>“ Ron Jeffries, 2001” </li></ul>Behaviour Driven Development
  6. 6. Behaviour Driven Development Story Card 2 pontos Funcionalidade Atletas precisam registrar exercícios detalhes: Tipo de exercício, tempo de inicio, tempo de término e frequência cardíaca
  7. 7. Behaviour Driven Development Story Card 2 pontos Funcionalidade Atletas precisam registrar exercícios Propriedades Não obrigatórios: frequência cardíaca. Obrigatórios: tipo de exercício e período
  8. 8. Hands on
  9. 9. Test Driven Development <ul><li>“ Desenvolvimento guiado por testes é um caminho de gerenciamento do medo durante a programação.” </li></ul><ul><li>Kent Beck - Test Driven </li></ul><ul><li>Development by Example </li></ul>
  10. 10. Test Driven Development <ul><li>RED - GREEN - REFACTOR </li></ul><ul><li>Escreva um teste que não funciona. </li></ul><ul><li>Escreva o código e faço-o funcionar. </li></ul><ul><li>Refatore e elimine o código repetitivo. </li></ul>
  11. 11. Test Driven Development <ul><li>O ritmo em 3 A’s </li></ul><ul><li>Arrange [Criar um objeto] </li></ul><ul><li>Act [Invocar um método] </li></ul><ul><li>Assert [Verificar o resultado] </li></ul><ul><li>Refactoring Workbook, Bill Wake </li></ul>
  12. 12. Test Driven Development <ul><li>def idade(data) </li></ul><ul><li>idade_ano = (Date.today.year - data.year) </li></ul><ul><li>if Date.today.month > data.month </li></ul><ul><li>idade_ano </li></ul><ul><li>elsif Date.today.month == data.month && Date.today.day == data.day </li></ul><ul><li>idade_ano </li></ul><ul><li>elsif Date.today.month < data.month </li></ul><ul><li>idade_ano - 1 </li></ul><ul><li>elsif Date.today.month == data.month && Date.today.day < data.day </li></ul><ul><li>idade_ano - 1 </li></ul><ul><li>elsif Date.today.month == data.month && Date.today.day > data.day </li></ul><ul><li>idade_ano </li></ul><ul><li>end </li></ul><ul><li>end </li></ul><ul><li>Estágio 1 - Refactoring </li></ul>
  13. 13. Test Driven Development <ul><li>def idade(data) </li></ul><ul><li>if data </li></ul><ul><li>idade_ano = (Date.today.year - data.year) </li></ul><ul><li>if Date.today.month > data.month || </li></ul><ul><li>Date.today.month == data.month && Date.today.day > data.day || </li></ul><ul><li>Date.today.month == data.month && Date.today.day == data.day </li></ul><ul><li>idade_ano </li></ul><ul><li>elsif Date.today.month < data.month || </li></ul><ul><li>Date.today.month == data.month && Date.today.day < data.day </li></ul><ul><li>idade_ano - 1 </li></ul><ul><li>end </li></ul><ul><li>end </li></ul><ul><li>end </li></ul><ul><li>Estágio 2 - Refactoring </li></ul>
  14. 14. Test Driven Development <ul><li>def idade(data) </li></ul><ul><li>if data </li></ul><ul><li>idade_ano = (Date.today.year - data.year) </li></ul><ul><li>idade_ano = idade_ano - 1 if (Date.today.month <= data.month) && </li></ul><ul><li>(Date.today.day < data.day) </li></ul><ul><li>idade_ano </li></ul><ul><li>end </li></ul><ul><li>end </li></ul><ul><li>Estágio 3 - Refactoring </li></ul>
  15. 15. http://www.xpce.org

×