SlideShare uma empresa Scribd logo
BDD on Rails Cucumber, Selenium, Rspec e compahia Christiano Milfont Terceiro encontro 2009 Copyright 2009 Milfont.org
Christiano Milfont http://www.milfont.org Palestrante
Release Plan “ A good plan violently executed now is better than a perfect plan executed next week.” “ Um bom plano executado violentamente agora é melhor que um plano perfeito executado na próxima semana. General George S. Patton
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 ? ? ?
User Story Card  [cartão] Conversation  [conversação] Confirmation  [confirmação] “ Ron Jeffries, 2001” Behaviour Driven Development
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
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
Hands on
Test Driven Development “ Desenvolvimento guiado por testes é um caminho de gerenciamento do medo durante a programação.” Kent Beck  -  Test Driven  Development by Example
Test Driven Development RED - GREEN - REFACTOR Escreva um teste que não funciona. Escreva o código e faço-o funcionar. Refatore e elimine o código repetitivo.
Test Driven Development O ritmo em 3 A’s Arrange [Criar um objeto] Act  [Invocar um método] Assert  [Verificar o resultado] Refactoring Workbook, Bill Wake
Test Driven Development def idade(data) idade_ano = (Date.today.year - data.year) if Date.today.month > data.month idade_ano elsif Date.today.month == data.month && Date.today.day == data.day idade_ano elsif Date.today.month < data.month idade_ano - 1 elsif Date.today.month == data.month && Date.today.day < data.day idade_ano - 1 elsif Date.today.month == data.month && Date.today.day > data.day idade_ano end end Estágio 1 - Refactoring
Test Driven Development def idade(data) if data idade_ano = (Date.today.year - data.year) if Date.today.month > data.month || Date.today.month == data.month && Date.today.day > data.day || Date.today.month == data.month && Date.today.day == data.day idade_ano elsif Date.today.month < data.month || Date.today.month == data.month && Date.today.day < data.day idade_ano - 1 end end end Estágio 2 - Refactoring
Test Driven Development def idade(data) if data idade_ano = (Date.today.year - data.year) idade_ano = idade_ano - 1 if (Date.today.month <= data.month) && (Date.today.day < data.day) idade_ano end end Estágio 3 - Refactoring
http://www.xpce.org

Mais conteúdo relacionado

PDF
Apresentando Extreme Programming
PDF
Domain driven design
PPT
Behaviour Driven Development
ODP
Mvc sem Controller
PPT
Test Driven Development
ODP
Combinando OO e Funcional em javascript de forma prática
PPT
Mare de Agilidade - BDD e TDD
PDF
Equipes sem Líderes formais e realmente autogeridas
Apresentando Extreme Programming
Domain driven design
Behaviour Driven Development
Mvc sem Controller
Test Driven Development
Combinando OO e Funcional em javascript de forma prática
Mare de Agilidade - BDD e TDD
Equipes sem Líderes formais e realmente autogeridas

Semelhante a BDD com Cucumber, Selenium e Rails (20)

PPTX
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
PDF
Behavior Driven Development - Unificando propostas de negócio com testes e có...
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
PPTX
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
PPTX
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
PPTX
Desenvolvimento dirigido por comportamento e por teste
PPTX
Behaviour Driven Development
PDF
Desenvolvimento ágil de software
PPTX
Behavior-Driven Development (BDD) - DevOps Summit 2016
PDF
Test First, TDD e outros Bichos
PPTX
Behavior-Driven Development (BDD) - Abril/2017
KEY
Bdd e ci
PPTX
Boas práticas de desenvolvimento Ágil
PDF
BDD em Ação
PDF
Teste sua aplicação antes que ela teste você
PDF
TDD para "meros mortais"
PDF
Testes utilizando cucumber + PhantomJs
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
Desenvolvimento dirigido por comportamento e por teste
Behaviour Driven Development
Desenvolvimento ágil de software
Behavior-Driven Development (BDD) - DevOps Summit 2016
Test First, TDD e outros Bichos
Behavior-Driven Development (BDD) - Abril/2017
Bdd e ci
Boas práticas de desenvolvimento Ágil
BDD em Ação
Teste sua aplicação antes que ela teste você
TDD para "meros mortais"
Testes utilizando cucumber + PhantomJs
Anúncio

Mais de Milfont Consulting (20)

ODP
Continuous integration e continuous delivery para salvar o seu projeto!
ODP
ODP
Engine de template em Javascript com HTML Sprites
ODP
MVC Model 3
ODP
Dar caos à ordem
ODP
I TDD my jQuery code without Browser
PDF
Oxente BDD
PDF
Construindo WebApps ricas com Rails e Sencha
PDF
Dar Ordem ao Caos
PPT
Primeiro Dia Livre Opensocial
ODP
Tw Dwr 2007 Ap01
PPT
Course Hibernate 2008
PDF
Opensocial
PPT
Frameworks Ajax
PDF
OpenSocial CCT
PDF
PDF
Conhecendo a JSR 223: Scripting for the Java Platform
ODP
Ajaxificando
PDF
Integração Contínua 3FCSL
PPT
Extreme Programming
Continuous integration e continuous delivery para salvar o seu projeto!
Engine de template em Javascript com HTML Sprites
MVC Model 3
Dar caos à ordem
I TDD my jQuery code without Browser
Oxente BDD
Construindo WebApps ricas com Rails e Sencha
Dar Ordem ao Caos
Primeiro Dia Livre Opensocial
Tw Dwr 2007 Ap01
Course Hibernate 2008
Opensocial
Frameworks Ajax
OpenSocial CCT
Conhecendo a JSR 223: Scripting for the Java Platform
Ajaxificando
Integração Contínua 3FCSL
Extreme Programming
Anúncio

Último (16)

PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
COBITxITIL-Entenda as diferença em uso governança TI
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Arquitetura de computadores - Memórias Secundárias
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Processos na gestão de transportes, TM100 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express

BDD com Cucumber, Selenium e Rails

  • 1. BDD on Rails Cucumber, Selenium, Rspec e compahia Christiano Milfont Terceiro encontro 2009 Copyright 2009 Milfont.org
  • 3. Release Plan “ A good plan violently executed now is better than a perfect plan executed next week.” “ Um bom plano executado violentamente agora é melhor que um plano perfeito executado na próxima semana. General George S. Patton
  • 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. User Story Card [cartão] Conversation [conversação] Confirmation [confirmação] “ Ron Jeffries, 2001” Behaviour Driven Development
  • 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. 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
  • 9. Test Driven Development “ Desenvolvimento guiado por testes é um caminho de gerenciamento do medo durante a programação.” Kent Beck - Test Driven Development by Example
  • 10. Test Driven Development RED - GREEN - REFACTOR Escreva um teste que não funciona. Escreva o código e faço-o funcionar. Refatore e elimine o código repetitivo.
  • 11. Test Driven Development O ritmo em 3 A’s Arrange [Criar um objeto] Act [Invocar um método] Assert [Verificar o resultado] Refactoring Workbook, Bill Wake
  • 12. Test Driven Development def idade(data) idade_ano = (Date.today.year - data.year) if Date.today.month > data.month idade_ano elsif Date.today.month == data.month && Date.today.day == data.day idade_ano elsif Date.today.month < data.month idade_ano - 1 elsif Date.today.month == data.month && Date.today.day < data.day idade_ano - 1 elsif Date.today.month == data.month && Date.today.day > data.day idade_ano end end Estágio 1 - Refactoring
  • 13. Test Driven Development def idade(data) if data idade_ano = (Date.today.year - data.year) if Date.today.month > data.month || Date.today.month == data.month && Date.today.day > data.day || Date.today.month == data.month && Date.today.day == data.day idade_ano elsif Date.today.month < data.month || Date.today.month == data.month && Date.today.day < data.day idade_ano - 1 end end end Estágio 2 - Refactoring
  • 14. Test Driven Development def idade(data) if data idade_ano = (Date.today.year - data.year) idade_ano = idade_ano - 1 if (Date.today.month <= data.month) && (Date.today.day < data.day) idade_ano end end Estágio 3 - Refactoring

Notas do Editor

  • #3: Anos 80 - década Code-and-Fix. Ausência de metodologias de desenvolvimento. Programação procedural e estruturada. Evolução da programação linear. Programas são: sequência, decisão e iteração. Dificuldade de simular relações entre entidades em processos de negócios.
  • #6: Contar história do analista pedreiro Critérios de aceitação devem ser executáveis UML fracassou em ser uma linguagem de modelagem por provocar um gap entre o modelo e a execução.
  • #7: A story card with notes providing additional detail.
  • #8: A story card with notes providing additional detail.
  • #9: A story card with notes providing additional detail.
  • #10: In a paper called “Simple Smalltalk Testing: With Patterns,”1 Kent Beck described how to write Object Tests using Smalltalk. This paper presented the evolution of a simple testing framework that became known as SUnit. Kent teamed up with Erich Gamma to port the framework to Java and called the result JUnit. Since 1999, Fearless programming
  • #11: Three Rules of TDD Só escreve codigo depois de passar em todas as verificações possiveis
  • #12: Arrange = Create an object Act = Invoke a method Assert = Check a result
  • #13: Arrange = Create an object Act = Invoke a method Assert = Check a result
  • #14: Arrange = Create an object Act = Invoke a method Assert = Check a result
  • #15: Arrange = Create an object Act = Invoke a method Assert = Check a result