Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAirton Lisboa Malheiro Alterado mais de 7 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.