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

Slides:



Advertisements
Apresentações semelhantes
Behaviour-Driven Development em Ruby
Advertisements

Ruby Introdução.
Desenvolvimento de Plug-ins Orientado a Testes
Test-Driven Development
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.
Introdução a Desenvolvimento de Sistemas
Introdução a Desenvolvimento de Sistemas
XPRecife Madson Menezes Costa Ricardo de Oliveira Cavalcanti.
1 Test Driven Development John Jonathan da Silva /
Implementação TCP Francisco Krahe Luis Brandelli.
Banco de Dados Ágeis e Refatoração SC1: Métodos Ágeis de Desenvolvimento de Software Danilo Sato & João Eduardo Ferreira IV Experimental.
TÉCNICO EM INFORMÁTICA Linguagem e Técnica de Programação III PROF. MARCELO N. SANTOS
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 Mariana Bravo.
Estratégias de Escrita de Testes Automatizados Paulo Cheque Cursos de Verão 2010 Licença: Creative.
TDD usual abordagem normal é BOTTOM-UP não é necessário nenhum projeto anterior.
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
Modelagem Orientada a Objetos com UML Cursos para a CTI - IME/USP Dairton Bassi, Hugo Corbucci e Mariana Bravo Departamento de Ciência.
Desenvolvimento de Software de Qualidade através de Testes Automatizados Paulo Cheque Cursos de.
Testes Automatizados Cursos de Verão 2007 – IME/USP Dairton Bassi & Paulo Cheque.
EA976 – Engenharia de Software AULA 4 Desenvolvimento Ágil.
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.
Código Limpo Curso de Verão IME/USP Hugo Corbucci.
Programação Extrema e outras práticas para elaboração de software Hugo Corbucci AgilCoop DCC - IME - USP
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
Algoritmos e Estruturas de Dados I
Desenvolvimento Dirigido por Testes (TDD)
Olá sou Willian Marques, natural de Minas Gerais que atualmente mora na cidade São Paulo. Programador.
6 – Testes Unitários "Apenas duas coisas são infinitas: o universo e a estupidez humana. E eu não tenho certeza do primeiro.“ - Albert Einstein.
Tuplas CHRISTOPHER FREIRE SOUZA EWERTON AMORIM DE OLIVEIRA
(baseado em slides de ex-alunos)
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test-Driven Development João Pascoal Faria
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introdução a testes unitários automatizados com JUnit.
Módulo I Capítulo 2: IDE e Variáveis
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
Desenvolvimento Dirigido por Testes / Testes a Priori
POO - Classes Dilvan Moreira.
Java: Interfaces Alcides Calsavara.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Driven Devlopment Experiment João Pascoal Faria.
"Apenas duas coisas são infinitas: o universo e a estupidez humana
Testes e Qualidade de Software
Workshop Agile tdd - Test Driven development
Javascript, Introdução
Desenvolvimento de Software de Qualidade através de Testes Automatizados 09/02/2009 Verão h.
Padrões de Testes Automatizados
Desenvolvimento de Sistemas Orientados a Objetos
Rosemary Silveira Filgueiras Melo
3.2 Sobrecarga de Métodos (Overloading)
Linguagem PASCAL Tipos Estruturados
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Tipos Primitivos de Dados
Aula 1 Professores: Conteúdo: Dante Corbucci Filho
MEU NOME É DYENIFFER Podem me encontrar no Linkedin:
RESULUÇÃO DOS EXERCÍCIOS E
Desenvolvimento orientado a teste, isso funciona mesmo?
Programação de Computadores II
Aula 2 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

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

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

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

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

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

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: '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

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 Maior Simples contra Menor Simples

Copyleft AgilCoop Simples contra Simples Repetindo Maior

Copyleft AgilCoop Simples contra Simples: Empate

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

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

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 Perguntas ? Hugo Corbucci

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 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 Menor Trinca contra Maior Dois Pares

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: ● ● ● ●