Testes de software

Test-driven Development: códigos limpos e prontos para implementação!

A sigla TDD significa Test-driven Development, ou Desenvolvimento dirigido/orientado a testes. São várias as tecnologias e processos para testar os componentes de uma solução de software corretamente, alguns visam testar a integração entre esses componentes, enquanto outros visam testar cada componente de maneira isolada. O TDD é uma dessas metodologias que auxiliam a aplicar testes no nosso código de forma mais granular.
Descoberto ou criado em 2003 pelo kent Beck, o pai do XP ( Extreme Programming), o TDD se baseia essencialmente em testes unitários, ou seja, que testam a menor unidade de uma aplicação, o que normalmente, nas linguagens estruturadas orientadas a objetos funcionais, são os métodos ou as funções.

A premissa principal quando a gente vai implementar o TDD, é escrever o teste antes do código. Isso mesmo, escrever o teste antes mesmo do código existir! Pode parecer estranho e alguns desenvolvedores podem considerar o TDD uma perda de tempo, porém o Test-driven Development traz diversas vantagens, a primeira delas é que você desenvolve facilmente um código limpo.

Segundo Robert Martin, mais conhecido como Uncle Bob, um dos 17 signatários originais do Manifesto Ágil em 2001 e autor do livro Clean Code, quando você desenvolve um teste antes de desenvolver um código, você desenvolve um código fácil de ser testado e consequentemente, desenvolve um código muito mais limpo. A razão disso é que: seguindo o TDD você reduz naturalmente os acoplamentos da sua aplicação.

ENTENDA DO PROCESSO DE TEST-DRIVEN DEVELOPMENT

Pra ficar mais fácil entender, veja como funciona a implementação. O processo do Test-driven Development se baseia na repetição de um ciclo de desenvolvimento e testes em 3 fases: fase vermelha, verde e refatoração.

  1. Na fase vermelha, você escreverá um teste unitário que ao ser executado irá falhar pois o código em si ainda não existe.
  2. Depois, na fase verde, você deve  implementar um código que seja suficiente para passar no teste unitário recém escrito.
  3. Na terceira fase, você faz a refatoração do código, melhorando a leitura, eliminando redundâncias e adotando boas práticas.

Assim fica mais fácil entender como o ciclo do TDD nos ajuda a projetar um código mais limpo e nos motiva a sempre limpar nosso código. Afinal, estamos atrelados a este ciclo de testes e refatoração.

Segundo Uncle Bob, você estará sempre alternando entre escrever seus testes e escrever seus códigos, portanto estará constantemente testando de forma rápida e tudo sempre estará funcionando. No final, como seu código está sendo desenvolvido e orientado a testes, você reduz os bugs e o seu tempo gasto em debug. Além disso, o TDD é uma forma de documentar como cada parte do sistema funciona de uma forma clara para que outros programadores interpretem facilmente.

Uncle Bob ainda diz que, além de todas as outras vantagens, a real razão para se implementar o TDD, é que assim que seu código passa por esse ciclo de desenvolvimento e teste, ele estará pronto para implementação.

MANUAL DO DEV – TDD

Confira este conteúdo em vídeo no Manual do Dev com a desenvolvedora Julia Reche:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *