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