terça-feira, 24 de março de 2020

Principais Motivos para Adoção de Desenvolvimento Guiado por Teste (TDD)




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