A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2010 Hugo Corbucci.

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2010 Hugo Corbucci."— Transcrição da apresentação:

1 Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2010 www.agilcoop.org.br Hugo Corbucci

2 Copyleft AgilCoop 20102 O que é Desenvolvimento Dirigido por Testes? Entenderam?

3 Copyleft AgilCoop 20103 Testes a priori ● Conhecer design ● Testar ● Implementar ● Consequência: Testes não são esquecidos devido a falta de tempo, pressão ou estresse, etc

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

5 Copyleft AgilCoop 20105 O que é Desenvolvimento Dirigido por Testes? ● Ciclo em passos pequenos: 1.Escreva um teste que falha 2.Faça o teste passar rapidamente 3.Refatore

6 Copyleft AgilCoop 20106 Demonstração: Poker!

7 Copyleft AgilCoop 20107 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 ● Equals (true ou false): 1 == 1 (== true)

8 Copyleft AgilCoop 20108 + Linguagem: Ruby ● Getters/Setters: attr_reader e attr_accessor – Exemplo: attr_reader :variavel ● Métodos booleanos: metodo? ● CompareTo (-1, 0, 1): ● Append (add): lista << elemento ● Mapas: { chave => valor } ● Alguns métodos auxiliares: – each_cons(inteiro) – string[indice, quantidade]: “abcd”[2,2] (= “cd”) each_cons(2 )

9 Copyleft AgilCoop 20109 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

10 Copyleft AgilCoop 201010 Poker Simplificado ● Cartas: '2C 3E 4P 5O DO', '2E JE QO KE AP' ● Dois jogadores, 5 cartas (ordenadas) cada um ● Regras: – Maior carta (Jogo simples) – Par – 2 Pares – Trinca

11 Copyleft AgilCoop 201011 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

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

13 Copyleft AgilCoop 201013 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

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

15 Copyleft AgilCoop 201015 Maior Simples contra Menor Simples

16 Copyleft AgilCoop 201016 Simples contra Simples Repetindo Maior

17 Copyleft AgilCoop 201017 Simples contra Simples: Empate

18 Copyleft AgilCoop 201018 Contornando dificuldades ● Fugindo das dependências: – Mocks – Stubs ● Refatorar testes para reduzir custo de manutenção

19 Copyleft AgilCoop 201019 Limitações ● Testes lentos – Estresse – Carga – Integração – etc. ● Desenvolvimento de algoritmos “ótimos”

20 Copyleft AgilCoop 201020 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

21 Copyleft AgilCoop 201021 Perguntas ? Hugo Corbucci hugo@agilcoop.org.br

22 Copyleft AgilCoop 201022 Maior Par contra Menor Par

23 Copyleft AgilCoop 201023 Par contra Par com Par Igual

24 Copyleft AgilCoop 201024 Par contra Par: Empate

25 Copyleft AgilCoop 201025 Menor Par contra Maior Simples

26 Copyleft AgilCoop 201026 Maior Dois Pares contra Menor Dois Pares

27 Copyleft AgilCoop 201027 Dois Pares contra Dois Pares com Dois Pares Iguais

28 Copyleft AgilCoop 201028 Dois Pares contra Dois Pares: Empate

29 Copyleft AgilCoop 201029 Menor Dois Pares contra Maior Par

30 Copyleft AgilCoop 201030 Menor Trinca contra Maior Dois Pares

31 Copyleft AgilCoop 201031 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

32 Copyleft AgilCoop 201032 Referências ● Online: ● www.testdriven.com www.testdriven.com ● www.xprogramming.com www.xprogramming.com ● www.agilcoop.org.br www.agilcoop.org.br ● www.katacasts.com www.katacasts.com


Carregar ppt "Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2010 Hugo Corbucci."

Apresentações semelhantes


Anúncios Google