Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

BDD com Cucumber, Selenium e Rails

2 884 vues

Publié le

Slides da palestra BDD on Rails no terceiro encontro XPCE

  • Soyez le premier à commenter

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

×