O que é Test Driven Development (TDD)?
Agile 101
Desenvolvimento orientado a teste/ Test Driven Development ou TDD
O que é Desenvolvimento orientado a teste/ Test Driven Development (TDD)?
So What Are the Benefits of Test Driven Development?
Portanto, Quais São os Benefícios do Test Driven Development?
Além dos benefícios mencionados na seção anterior, o TDD também o proporciona:
O que tudo isso significa para o seu negócio, é:
O Surpreendente Motivo para usar TDD
Hã, e Sobre “Desenvolvedores Não Devem Escrever os Testes para Testar seu Próprio Código?
E Onde o Test Driven Development Se Encaixa em Agile?
Legal, Então Se Pratica o TDD
Src: Spec-india.com
O Ciclo e as Fases do TDD
Test Driven Development significa passar por três fases. De novo e de novo e de novo.
Só isso? Sim, só isso mesmo.
Mas espere, há mais.
As Regras do TDD Como Explicadas pelo Tio Bob
Tio Bob (Robert C. Martin) definiu as regras do TDD no capítulo 5 “Test Driven Development” de seu livro The Clean Coder.
Por que seguir estas regras? Porque elas se destinam a facilitar sua vida.
Mas eu não estou satisfeito com a regra nº 2. Porque tratar os erros de compilação como falhas pode mascarar o fato de que um teste não tem afirmações. E isso é ruim, porque pode enganar você a pensar que um teste está passando quando o código está (em parte) não escrito ou simplesmente errado.
Dito isto, a intenção das regras é manter as coisas concentradas em cada fase e evitar que você fique em ciclos. Por experiência própria, isso ajuda muito a manter as coisas claras em sua cabeça. Por isso:
Exemplos de Uso de TDD
Vamos tornar tudo isso um pouco mais concreto com um exemplo. Então, digamos que você seja encarregado de criar um método que converta os números decimais em números romanos.
A execução do teste não é possível neste momento, porque a classe Romanizer ainda não existe e isso significa erros de compilação.
Passo 2: Fase verde, fazer o teste passar
Adicione a classe Romanizer e dê-lhe um método FromDecimal que pega uma integer e retorna uma string.
Eu gosto de ter certeza de que o teste ainda falha quando o código é compilado. Dessa forma, sei que estou começando com um teste falhado como resultado de afirmações nos testes.
Portanto, escrevo uma implementação que tenho certeza de que falhará.
Passo 1: Fase vermelha, escreva um teste.
Execute os testes e sim, o teste falha. Boa!
Agora crie a implementação mais simples que fará o teste passar.
Bobo? Não. O código está correto e faz o teste passar.
Passo 3: Fase azul, refatorar
Ainda não há muito para refatorar, portanto, para o próximo teste.
Passo 4: Fase vermelha, escreva um teste
O decimal 2 deve retornar “II”.
Faça todos os testes para ver este falhar. Isto é muito importante! Ele permite que você tenha certeza de que é sua implementação que o fará passar e não a falta de afirmações em seu teste.
Ok. Para a fase verde.
Passo 5: Fase verde, faça o teste passar
Mais uma vez, escreva o código mais simples que fará o teste passar.
Hmm. Não gosto que o if-else-if fique muito grande, mas vamos primeiro executar os testes.
And yes, it does make all the tests pass.
Passo 6: Fase azul, refatorar
Esta estrutura if-else-if não é muito elegante, mas dois casos ainda não merecem ser refatorados, e assim por diante para o próximo teste.
Passo 7: Fase vermelha, escreva um teste
O decimal 3 deve retornar “III”.
E executar todos os testes para ver este falhar. (E nenhum outro!)
Passo 8: Fase verde, fazer o teste passar
Mais uma vez, o código mais simples para fazer o teste passar.
Execute todos os testes para garantir que cada um deles ainda passe.
Regras de Refatoração
Por Que é Tão Difícil Exercer o TDD?
Praticar o TDD não é um mar de rosas. Pelo menos não a princípio. Aqui estão os motivos.
Como Você Pode Falhar no TDD — Quais São os Erros Comuns?
Você pode falhar na prática do TDD de muitas maneiras diferentes:
Escrever testes para código trivial, tais como accessors e vistas sem lógica.
Recursos Para Aprender e Melhorar
What Is the Difference Between TDD and BDD?
Qual é a Diferença entre TDD e BDD?
A vida é boa quando suas equipes Agile estão sincronizadas!
Contate-Nos hoje para uma demonstração personalizada do SwiftEnterprise! Ou inscreva-se para atualizações abaixo.