Tecnologia

Introdução ao TDD

Por: , setembro 24, 2013

Introdução

TDD (Test Driven Development – Desenvolvimento dirigido por testes) é uma técnica de desenvolvimento de software baseada na criação de um teste automatizado que falhe antes mesmo da implementação de um novo código.
O ciclo de um desenvolvimento utilizando TDD acontece da seguinte forma:

– Inicialmente implementa-se um teste para a funcionalidade em questão. Sabemos que o teste não vai passar, pois ainda não implementamos o código necessário.
– Depois de executar o teste e verificar a falha, escrevemos o código da funcionalidade de forma simples, para apenas atender, momentaneamente, o teste quebrado.
– Finalizada essa implementação, devemos novamente executar o teste que estava falhando e o esperado é que ele rode com sucesso. Caso o teste não passe devemos rever o código implementado até que ele seja executado corretamente.
– Feito isso devemos verificar o código para refatorar o mesmo, de forma a aplicar padrões de projeto e remover os “Code Smells”, que nada mais são do que sintomas ou indícios que indiquem possíveis problemas em seu código, como duplicação ou não utilização trechos implementados desnecessariamente.
– A cada refactoring realizado, devemos executar novamente o teste e verificar se ainda está passando. Se tudo estiver ok, reinicie todo o processo com a próxima funcionalidade do sistema, pois a atual já está pronta!
 
Analisando uma nova funcionalidade em específico, aplica-se o TDD até que seu desenvolvimento se conclua. Esse conjunto de passos é muito difundido entre os desenvolvedores que trabalham com TDD pelo nome de “red-green-refactor”. ]
Dentre as vantagens desse tipo de desenvolvimento podemos destacar:

1 – Apesar do processo parecer mais demorado, pois temos que escrever teste e depois código, essa prática se converte em menor tempo de depuração e correção de defeitos, além de naturalmente aumentar a qualidade do código escrito.

2 – Com a utilização do TDD, seu código ficará mais fácil de ser testado. Como consequência disso, é bem provável que seu código fique mais claro, dispensando documentações desncessárias.

3 – Utilizando TDD temos a garantia que todas as funcionalidades do sistema estarão cobertas por testes. Sendo assim, conseguimos garantir que alterações futuras no código não afetarão implementações de funcionalidades já concluídas pois o teste previamente implementado irá falhar.

Esse é o primeiro post de uma pequena série de textos sobre o assunto. No próximo post vou demonstrar o passo a passo da implementação de testes em JAVA utilizando o framework Junit. Nos demais, avançaremos com exemplos mais aprofundados sobre TDD.

 
Até a próxima.

  • Receba nosso conteúdo em primeira mão.