Desenvolvimento Dirigido por Testes (TDD)

Slides:



Advertisements
Apresentações semelhantes
Behaviour-Driven Development em Ruby
Advertisements

Desenvolvimento de Plug-ins Orientado a Testes
Community Launch VS 2010 Rio de Janeiro Patrocínio: Praticando Test Driven Development no VS 2010 Christian Cunha Christian Cunha.
Test Driven Development Nazareno Andrade Baseado no material do prof. Hyggo Almeida.
Test Driven Development por Johann Gomes e Thaís Moura.
1 Test Driven Development John Jonathan da Silva /
Implementação TCP Francisco Krahe Luis Brandelli.
Testes de Interface de Usuário AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Hugo Corbucci.
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Mariana Bravo.
Estratégias de Escrita de Testes Automatizados Paulo Cheque Cursos de Verão 2010 Licença: Creative.
Introdução a Testes Automatizados AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Padrões de Testes Automatizados Curso de Verão IME/USP Hugo Corbucci
Testes Automatizados Cursos de Verão 2007 – IME/USP Dairton Bassi & Paulo Cheque.
EA976 – Engenharia de Software AULA 4 Desenvolvimento Ágil.
Refatoração: Melhorando código existente AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Modelagem Orientada a Objetos com UML Cursos para a CTI - IME/USP Dairton Bassi, Hugo Corbucci e Mariana Bravo Departamento de Ciência.
Tracking – Acompanhamento de Projetos Ágeis Curso de Verão 2007 – IME/USP Danilo Sato & Mariana Bravo.
1 Desenvolvimento web com Ruby e Rails Antonio Terceiro Colivre
Modelagem Orientada a Objetos com UML Cursos para a CTI - IME/USP Dairton Bassi, Hugo Corbucci e Mariana Bravo Departamento de Ciência.
LINGUAGEM DE PROGRAMAÇÃO. Breve histórico Ada Lovelace Luigi Menabrea Charles Babbage TradutorMemóriasMáquina analítica.
Test Driven Development (TDD) Carlos Morais Desenvolvimento Dirigido por Testes.
Refatoração: Melhorando a Qualidade de Código Pré-Existente Cursos de Verão 2008 – IME/USP Mariana Bravo & Hugo Corbucci.
Testes de Unidade Paulo Cheque 10/02/2009 Verão 2009.
Introdução à Programação eXtrema (XP) Cursos de Verão IME/USP Mariana Bravo e Hugo Corbucci Departamento de Ciência da Computação.
Objetos Dublês AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Testes de Unidade Curso de Verão IME/USP Hugo Corbucci
Contagem – Probabilidade Condicional
Prof. Anderson Terroso Março/2017
Laboratório de Engenharia de Software
Estudo de Mercado Previsão de demanda.
Olá sou Willian Marques, natural de Minas Gerais que atualmente mora na cidade São Paulo. Programador.
Algoritmo e Lógica Programação Modularização: Funções e Subalgoritmos
Tuplas CHRISTOPHER FREIRE SOUZA EWERTON AMORIM DE OLIVEIRA
Complementos de Engenharia de Software A linguagem VDM++ (4ª parte – Funções avançadas) João Pascoal Faria
Módulo I Capítulo 2: IDE e Variáveis
Desenvolvimento Dirigido por Testes / Testes a Priori
TQS - Teste e Qualidade de Software (Software Testing and Quality) Caso de estudo: Problema da procura duma string num.
Módulo I Capítulo 3: Fluxo de Código e Operador Condicional
POO - Classes Dilvan Moreira.
Coleções: Listas Dilvan Moreira.
Java: Interfaces Alcides Calsavara.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Driven Devlopment Experiment João Pascoal Faria.
Tecnologia e Desenvolvimento de Jogos Digitais
REFATORAÇÃO ASPECTOS BÁSICOS.
Engenharia de Software I
Workshop Agile tdd - Test Driven development
Arquitetura de Computadores
Programação Orientada a Objetos
Javascript, Introdução
Desenvolvimento de Software de Qualidade através de Testes Automatizados 09/02/2009 Verão h.
Citações e Referências
APRESENTAÇÃO TELAS E NAVEGAÇÃO METODOLOGIA RESULTADOS REFERÊNCIAS
Programação.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 8
LÓGICA DE PROGRAMAÇÃO Estruturas de Decisão
Primeiro Passo… Planeje Antes!!.
3.2 Sobrecarga de Métodos (Overloading)
Linguagem PASCAL Tipos Estruturados
Rosemary Silveira Filgueiras Melo
EDA - Prof. Paulemir Campos
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
GRUPO DE TRABALHO XXXXXXXX
Programação Funcional
Projecto Teórico Científico
Ordenando Coleções A Classe Collections.
Análise ESTÁTICA COMPARATIVA
RESULUÇÃO DOS EXERCÍCIOS E
Desenvolvimento orientado a teste, isso funciona mesmo?
Nome Sobrenome, Nome Sobrenome, Nome Sobrenome
Transcrição da apresentação:

Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2008 www.agilcoop.org.br Mariana & Paulo

O que é Desenvolvimento Dirigido por Testes? Dúvidas? Copyleft AgilCoop 2008

Testes a priori Conhecer design Testar Implementar Conseqüência: Testes não são esquecidos devido a falta de tempo, pressão ou estresse, etc Copyleft AgilCoop 2008

O que é Desenvolvimento Dirigido por Testes? “Código limpo que funciona” -- Ron Jeffries Copyleft AgilCoop 2008

O que é Desenvolvimento Dirigido por Testes? Ciclo em passos pequenos: Escreva um teste que falha Faça o teste passar rapidamente Refatore Copyleft AgilCoop 2008

Demonstração: Poker! Copyleft AgilCoop 2008

Linguagem: Ruby Definindo uma classe: class MinhaClasse end Delimitador de métodos: def meuMetodo end Contrutor: def initialize end Criando uma instância: Classe.new Verificando um tipo de instância: x.kind_of? Y Constantes: LETRA_MAIUSCULA = ... Variaveis de instância: @variavel Falso: false e nil Métodos booleanos: metodo? Copyleft AgilCoop 2008

+ Linguagem: Ruby Getters/Setters: attr_reader e attr_accessor Exemplo: attr_reader :variavel Equals (true ou false): 1 == 1 (= true) CompareTo (-1, 0, 1): <==> Append (add): lista << elemento Mapas: { chave => valor } Alguns métodos auxiliares: each_cons(inteiro) string[indice, quantidade]: “abc”[1,2] (= “bc”) each_cons(2) Copyleft AgilCoop 2008

Arcabouço de Teste: rSpec describe Classe do ... end it “frase” do end kind_of? => be_kind_of dois_pares? => be_dois_pares variavel.should variavel.should_not Copyleft AgilCoop 2008

Poker Simplificado Cartas: '2H 3S 4C 5D TD', 'JS QD KS AC 2S' Dois jogadores, 5 cartas (ordenadas) cada um Regras: Maior carta (Jogo simples) Par 2 Pares Trinca Copyleft AgilCoop 2008

O que o programa deve fazer Entrada: 2 jogadores, 5 cartas cada um Recebe as cartas como strings ordenadas por valor Exemplo: '5O DC ... ' e '6E JP ...' Saída: quem venceu entre as duas mãos Responde Jogo1 ou Jogo2 Copyleft AgilCoop 2008

Tarefas pendentes Decidir quem ganhou no poker Copyleft AgilCoop 2008

Jogos Cada jogo tem 5 cartas Exemplo: '2E 5P 7C 8E DO' Existem diversos tipos de jogos, e queremos saber compará-los de acordo com as regras Copyleft AgilCoop 2008

Tarefas pendentes Decidir quem ganhou no poker Jogo: Deve ter 5 cartas Deve comparar de acordo com as regras Copyleft AgilCoop 2008

Cartas Cartas Valores: de 2 a 9, D é 10, J, Q, K, A Exemplos: 2C 3E 4P 5O DO JE QO KE AP Naipes E (espadas) Valor C (copas) Naipe P (paus) O (ouros) Copyleft AgilCoop 2008

Tarefas pendentes Decidir quem ganhou no poker Jogo: Deve ter 5 cartas Deve comparar de acordo com as regras Carta: Deve ter valor Deve ter naipe Deve comparar por valor Copyleft AgilCoop 2008

Jogos Cada jogo tem 5 cartas Exemplo: '2E 5P 7C 8E DO' Existem diversos tipos de jogos, e queremos saber compará-los Copyleft AgilCoop 2008

Tarefas pendentes Decidir quem ganhou no poker Jogo: Deve ter 5 cartas Deve comparar de acordo com as regras Carta Copyleft AgilCoop 2008

Carta mais alta '2E 5P 7C 8E DO' Vale a carta mais alta: 10 Desempate pelo valor das cartas Copyleft AgilCoop 2008

Base 16?? Copyleft AgilCoop 2008

SIMPLES Copyleft AgilCoop 2008

Maior Simples contra Menor Simples Copyleft AgilCoop 2008

Simples contra Simples Repetindo Maior Copyleft AgilCoop 2008

Simples contra Simples: Empate Copyleft AgilCoop 2008

PARES Copyleft AgilCoop 2008

Maior Par contra Menor Par Copyleft AgilCoop 2008

Par contra Par com Par Igual Copyleft AgilCoop 2008

Par contra Par: Empate Copyleft AgilCoop 2008

Menor Par contra Maior Simples Copyleft AgilCoop 2008

DOIS PARES Copyleft AgilCoop 2008

Maior Dois Pares contra Menor Dois Pares Copyleft AgilCoop 2008

Dois Pares contra Dois Pares com Dois Pares Iguais Copyleft AgilCoop 2008

Dois Pares contra Dois Pares: Empate Copyleft AgilCoop 2008

Menor Dois Pares contra Maior Par Copyleft AgilCoop 2008

TRINCA Copyleft AgilCoop 2008

Menor Trinca contra Maior Dois Pares Copyleft AgilCoop 2008

Tarefas pendentes Decidir quem ganhou no poker Jogo: Deve ter 5 cartas Deve comparar de acordo com as regras Carta Carta mais alta Copyleft AgilCoop 2008

Conclusão Design evolui junto com o conhecimento Code for tomorrow, design for today (K. Beck) Desenvolvimento com “Passos Pequenos” Expressa a intenção do programador com testes Servem como documentação Copyleft AgilCoop 2008

Conclusão O Código: Nome dos testes definem o comportamento esperado Fatorados (sem duplicação) Alta cobertura Evita código inútil Alta qualidade do código Refatorações são seguras com testes automatizados Copyleft AgilCoop 2008

Referências Livros: Kent Beck, “Test-Driven Development: By Example”, Addison-Wesley Professional, 2002 David Astels, “Test Driven Development: A Practical Guide”, Prentice Hall PTR, 2003 Martin Fowler et al, “Refactoring: Improving the Design of Existing Code”, Addison-Wesley Professional, 1999 Joshua Kerievsky, “Refactoring to Patterns”, Addison- Wesley, 2004 Copyleft AgilCoop 2008

Referências Online: www.testdriven.com www.xprogramming.com www.dtsato.com/blog/default www.agilcoop.org.br Copyleft AgilCoop 2008