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 2009 Mariana Bravo.

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2009 Mariana Bravo."— Transcrição da apresentação:

1 Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2009 www.agilcoop.org.br Mariana Bravo

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

3 Copyleft AgilCoop 20083 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

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

5 Copyleft AgilCoop 20085 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 20086 Demonstração: Poker!

7 Copyleft AgilCoop 20087 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?

8 Copyleft AgilCoop 20088 + 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 )

9 Copyleft AgilCoop 20089 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 200810 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

11 Copyleft AgilCoop 200811 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 200812 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 200813 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 200814 Carta mais alta ● '2E 5P 7C 8E DO' ● Vale a carta mais alta: 10 ● Desempate pelo valor das cartas

15 Copyleft AgilCoop 200815 SIMPLES

16 Copyleft AgilCoop 200816 Maior Simples contra Menor Simples

17 Copyleft AgilCoop 200817 Simples contra Simples Repetindo Maior

18 Copyleft AgilCoop 200818 Simples contra Simples: Empate

19 Copyleft AgilCoop 200819 PARES

20 Copyleft AgilCoop 200820 Maior Par contra Menor Par

21 Copyleft AgilCoop 200821 Par contra Par com Par Igual

22 Copyleft AgilCoop 200822 Par contra Par: Empate

23 Copyleft AgilCoop 200823 Menor Par contra Maior Simples

24 Copyleft AgilCoop 200824 DOIS PARES

25 Copyleft AgilCoop 200825 Maior Dois Pares contra Menor Dois Pares

26 Copyleft AgilCoop 200826 Dois Pares contra Dois Pares com Dois Pares Iguais

27 Copyleft AgilCoop 200827 Dois Pares contra Dois Pares: Empate

28 Copyleft AgilCoop 200828 Menor Dois Pares contra Maior Par

29 Copyleft AgilCoop 200829 TRINCA

30 Copyleft AgilCoop 200830 Menor Trinca contra Maior Dois Pares

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

32 Copyleft AgilCoop 200832 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

33 Copyleft AgilCoop 200833 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

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


Carregar ppt "Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2009 Mariana Bravo."

Apresentações semelhantes


Anúncios Google