Diretriz: Design Teste-primeiro |  |
Esta diretriz explica como aplicar o design teste-primeiro.
Relacionamentos
Elementos Relacionados | Desenvolvimento Evoluir o Design Executar os Testes de Desenvolvedor Implementar a Solução Implementar os Testes de Desenvolvedor Re-fatoração Teste de Desenvolvedor
Descrição Principal
### Introdução Com o Design Teste-Primeiro (TFD) você faz o design detalhado de uma forma just-in-time (JIT) através da escrita de um simples teste antes de escrever bastante código produtivo necessário para executar o teste. Quando você tiver que adicionar uma nova funcionalidade ao seu sistema, execute os seguintes passos: Adicione rapidamente um teste de desenvolvedor. Você necessita de código fonte apenas para fazer o erro acontecer. Por exemplo, um novo método prestes a ser adicionado a uma classe poderá ser criado apenas para provocar uma exceção fatal. Execute os seus testes. Você executará basicamente a suíte completa de teste, embora por causa da velocidade você possa decidir executar somente um subconjunto. O objetivo é assegurar que o novo teste falhe de fato. Atualize o código produzido. O objetivo é adicionar apenas a funcionalidade necessária para que o código passe no teste. Execute sua suíte de teste de novo. Se os testes falharem você terá que atualizar o código funcional e testá-lo de novo. Uma vez que os testes passem repita os passos. #### Por Que TFD? Uma vantagem significativa do TFD é que ele lhe permite executar pequenos passos ao escrever o software, o que não é somente mais seguro como também mais produtivo do que escrever código em grandes quantidades. Por exemplo, suponha que você tenha adicionado um novo código funcional, compilado e testado ele. Existem grandes chances que seus testes falhem por causa de defeitos existentes no novo código. É muito mais fácil encontrar, e então reparar, estes defeitos se você tiver escrito apenas cinco linhas novas de código ao invés de cinqüenta. A implicação disto é que, o quão mais rápido forem seu compilador e sua suíte de teste de regressão, mais atrativo será continuar com passos cada vez menores. Existem outras três estratégias comuns de teste (listadas aqui em ordem de eficácia). Escrever diversos testes primeiro. Esta é uma variante do TFD onde você escreve mais de um teste antes de escrever bastante código produtivo necessário para executar os testes. A vantagem é que você não precisa construir seu sistema como normalmente é feito, podendo economizar tempo. Tem a desvantagem que você terá que escrever mais código produtivo de uma só vez, aumentando a dificuldade de encontrar a causa de erros novos. Testar após o fato. Nesta abordagem você escreve um pouco de código produtivo e então escreve bastante teste para valida-lo. Esta abordagem tem a vantagem de que você, pelo menos, ainda está validando o código, mas tem a desvantagem de que você perde o benefício inerente do design de escrever o teste primeiramente. ### Coisas boas para saber 1. Uma regra assumida pelo TDD é que você tenha um framework de teste unitário disponível. Os desenvolvedores de software Ágeis usam com freqüência a família de ferramentas de código aberto xUnit, tais como JUnit ou VBUnit, embora as ferramentas comerciais também sejam opções viáveis. 2. Design Orientado a Teste (TDD) = TFD + Re-fatoração 3. TFD/TDD é normalmente usado com código comercial orientado a objeto, embora esta abordagem possa também ser usada para código processual, código de interface de usuário e código de base de dados.
Informações Adicionais
Conceitos | Design Teste-primeiro Re-fatoração
Diretrizes | Re-fatoração
Este programa e o material que o acompanha são disponibilizados sob a Eclipse Public License v1.0 que acompanha esta distribuição. Direitos Autorais do OpenUP.