Cada metodologia tem suas vantagens para adoção, a TDD (Test-Driven
Development ) oferece uma técnica simples que pode garantir a qualidade de
entrega e principalmente a segurança nas alterações realizadas no código após
sua implementação.
A técnica dessa metodologia é escrever os testes primeiro e
depois codificar, dessa maneira você irá se preocupar em pensar em cenários de
aceitação, como entrada e saída para atender requisitos de funcionalidade, antes
de efetivamente implementá-los.
Tudo Terá um Teste Afinal
Tudo que precisa ser criado deverá começar pelo teste, para
que possamos criar os testes, precisamos ter pleno entendimento da
implementação para escrever os testes que precisaram ser validados para atender
os requisitos. Outro ponto, é que os testes são evolutivos, devemos escrever um
teste, efetuar a implementação, verificação seu resultado positivo, melhorar o
código, testar o resultado, escrever um novo teste, implementar a solução, verificar
seu resultado e assim por diante. Se durante o processo de uma nova
implementação ou melhoria algo quebrar, os testes anteriores vão apontar e tudo
deverá ser validado antes de darmos continuidade.
Redução de Código Complexos
Muitas vezes escrevemos códigos que acabam ficando imutáveis,
ou seja, uma vez que funcionou ficamos com receio de alterá-lo e acabar
quebrando o que está funcionando. Tendo uma fundação baseada em testes, podemos
tranquilamente analisar o código para efetuar sua refatoração para
simplificá-lo ou ainda performá-lo, sem a preocupação que ao final ele poderá
quebrar algo, porque os testes vão garantir sua aderência. Outro fator positivo
é que os testes não serão escritos para atender a codificação e sim cenários de
negócios, como consequência teremos mais códigos testáveis.
Simplicidade em Primeiro Lugar
Todo desenvolvedor tem o deve ter como parte principal do
seu trabalho planejar a implementação, e sem dúvida alguma sendo feito esse
planejamento da forma mais simples e objetiva possível o resultado será
praticamente a perfeição, já dizia Leonardo da Vinci, "Simplicidade é o
último grau de sofisticação". Quando definimos iniciamos pelo teste que precisa
ser validado, temos que pensar na implementação mais simples que atende os requisitos
e caso a solução não seja simplista no primeiro momento, podemos melhorá-la num
próximo ciclo garantido a qualidade da execução.
Código Refatorados com Segurança
Muitas vezes temos que alterar códigos de terceiros, ou os
nossos próprios, e não se sentimos confortáveis em garantir que nada irá parar
de funcionar, contudo, se essa rotina contiver testes que foram escritos
exclusivamente pensando em atender os requisitos de negócio, podemos
tranquilamente efetuar alterações e aplicar os testes para validá-los, com isso
qualquer alteração fica praticamente segurança em fornecer a garantia de
sucesso na sua implementação.
Basicamente, o ciclo do TDD é escreva o teste, implemente um
código para fazer o teste ser válido e melhore o código sem quebre nenhum teste.
Repita esse ciclo até que sinta-se todos os requisitos foram testados e
atendidos.
Para um cenário onde um desenvolvedor deve garantir seu produto
final, ou seja, a codificação de uma necessidade, essa metodologia oferece
muitos fatores positivos para facilitar a entrega e também garantir a
qualidade, é um paradigma começar por algo que não seja o código, porém após um
período de adaptação você verá como é mais simples e funcional utilizar o método
Test-Driven Development (TDD).
Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
//marcelogoberto.com.br
Arquiteto na GFT Brasil
//marcelogoberto.com.br