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

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.
Extreme Programming Alexandre Nodari.
CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
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.
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.
Refatoração: Melhorando código existente AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.
Introdução a Testes Automatizados Cursos de Verão 2008 – IME/USP Paulo Cheque.
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.
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
Prof. Anderson Terroso Março/2017
Desenvolvimento Dirigido por Testes (TDD)
Laboratório de Engenharia de Software
Olá sou Willian Marques, natural de Minas Gerais que atualmente mora na cidade São Paulo. Programador.
Tuplas CHRISTOPHER FREIRE SOUZA EWERTON AMORIM DE OLIVEIRA
Testes e Qualidade de Software
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
Faça cara feia pro baixo astral ... Evite discussões que não levam a nada...
Workshop Agile tdd - Test Driven development
Arquitetura de Computadores
Programação Orientada a Objetos
Javascript, Introdução
Programação Orientada a Objetos
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
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
EDA - Prof. Paulemir Campos
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
GRUPO DE TRABALHO XXXXXXXX
ALGORITMOS.
A classe String.
Ordenando Coleções A Classe Collections.
Vetores.
RESULUÇÃO DOS EXERCÍCIOS E
Desenvolvimento orientado a teste, isso funciona mesmo?
Nome Sobrenome, Nome Sobrenome, Nome Sobrenome
Programação de Computadores II
Transcrição da apresentação:

Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão Mariana Bravo

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

Copyleft AgilCoop 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 O que é Desenvolvimento Dirigido por Testes? “Código limpo que funciona” -- Ron Jeffries

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

Copyleft AgilCoop Demonstração: Poker!

Copyleft AgilCoop 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 ● Falso: false e nil ● Métodos booleanos: metodo?

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

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

Copyleft AgilCoop SIMPLES

Copyleft AgilCoop Maior Simples contra Menor Simples

Copyleft AgilCoop Simples contra Simples Repetindo Maior

Copyleft AgilCoop Simples contra Simples: Empate

Copyleft AgilCoop PARES

Copyleft AgilCoop Maior Par contra Menor Par

Copyleft AgilCoop Par contra Par com Par Igual

Copyleft AgilCoop Par contra Par: Empate

Copyleft AgilCoop Menor Par contra Maior Simples

Copyleft AgilCoop DOIS PARES

Copyleft AgilCoop Maior Dois Pares contra Menor Dois Pares

Copyleft AgilCoop Dois Pares contra Dois Pares com Dois Pares Iguais

Copyleft AgilCoop Dois Pares contra Dois Pares: Empate

Copyleft AgilCoop Menor Dois Pares contra Maior Par

Copyleft AgilCoop TRINCA

Copyleft AgilCoop Menor Trinca contra Maior Dois Pares

Copyleft AgilCoop 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 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 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 Referências ● Online: ● ● ● ●