terça-feira, 20 de outubro de 2020

Refatoração e TDD – Test Driven Development

Uma programação de qualidade deve envolver um processo de melhoria contínua, com o mínimo de erros e total compatibilidade com o código existente. Não é incomum, depois de algum tempo, o código ficar poluído e desorganizado, e a refatoração pode ajudar a introduzir melhorias no código existente. 

 Desenvolvimento Orientado a Testes.

 

 

De acordo com Fowler (2004), refatoração

é o processo de alteração de um sistema de software de modo que o comportamento observável do código não mude, mas que sua estrutura interna seja melhorada. É uma maneira disciplinada de aperfeiçoar o código que minimiza a chance de introdução de falhas. Em essência, refatorar é melhorar o projeto do código após este ter sido escrito.

Assim, como benefício, o código se tornará mais simples, legível e com boa qualidade.

Falhas de software são tão comuns quanto danosas. É certo que a experiência diz que é quase impossível remover todos os erros de programação, no entanto, quando aplicamos testes adequados durante o desenvolvimento conseguimos eliminar a maioria dos erros comuns.

O sucesso do processo de refatoração depende da sua associação com testes, senão fica difícil saber se a refatoração foi feita corretamente, ou seja, não alterou o comportamento e as funcionalidades originais do código, e não introduziu erros em partes que estavam funcionando corretamente antes.

Desta forma, a refatoração e o processo de desenvolvimento dirigido a testes ou TDD ( Test Driven Development ) são conceitos relacionados, pois um apoia o trabalho do outro e funcionam de forma harmoniosa.

De acordo com o artigo da Caelum (2014), no TDD você escreve seus testes antes mesmo de escrever o código de produção, e o conjunto de testes automatizados gerados pela prática oferecem mais segurança ao desenvolvedor quando alterações no código são necessárias. Isso porque os testes automatizados, que podem ser executados em segundos, podem ser utilizados sempre pelo desenvolvedor e, caso ocorra algum erro, ele é rapidamente notificado e consegue corrigir o problema antes de enviar a versão para o cliente.

Muitos o consideram uma técnica de desenvolvimento. Alguns também o consideram como uma forma de criar um código limpo. Mas o fato preponderante é que atua como um grande apoio na qualidade do desenvolvimento de software.

O funcionamento do TDD é simples: o desenvolvedor escreve um teste que falha, faz este teste passar da maneira mais simples possível e, por fim, refatora o código. Esse processo é conhecido como Ciclo Vermelho-Verde-Refatora, conforme ilustra a figura 49.

  1. Vermelho – Escrever um teste automatizado simples que não passa, e provavelmente não compile na primeira execução;
  2. Verde – Fazer o teste passar rapidamente;
  3. Refatorar – Melhorar o código que já está escrito, tornando-o mais fácil de entender e modificar.

Estudos nos mostram que desenvolvedores que praticam TDD gastam menos tempo debugando , escrevem mais testes automatizados para uma funcionalidade e defeitos são encontrados mais rapidamente do que por aqueles que não praticam TDD. Em termos de qualidade interna, os estudos mostram que os desenvolvedores tem uma forte percepção de que a prática os ajuda a pensar melhor sobre seu projeto de classes (CAELUM, 2014).

Nenhum comentário:

Postar um comentário