TDD: A abordagem orientada a testes

O Desenvolvimento Orientado a Testes (TDD) é uma metodologia de desenvolvimento de software que coloca os testes no centro do processo de codificação.

Avatar


30 de Novembro de 2023

Fala, meus consagrados! Beleza?

O Desenvolvimento Orientado a Testes (TDD) é uma metodologia de desenvolvimento de software que coloca os testes no centro do processo de codificação. Consiste em um ciclo iterativo de curto prazo, no qual os testes são escritos antes do código de produção. Esse ciclo segue uma sequência de passos: escrever um teste que inicialmente falhe, implementar o código mínimo necessário para passar no teste e, por fim, refatorar o código para melhorar sua estrutura, mantendo os testes funcionando.

O Test Driven Development (TDD) é um processo de desenvolvimento de software que visa o feedback rápido e a garantia de que o comportamento da aplicação está cumprindo o que é requerido. Para isso o processo funciona em ciclos pequenos e os requisitos são escritos como casos de teste.

O TDD busca garantir que cada parte do código seja testada de forma automatizada, promovendo uma abordagem incremental e iterativa. Os testes são escritos em pequenos incrementos, o que ajuda a validar continuamente a funcionalidade enquanto o código é desenvolvido. Isso resulta em um código mais confiável, coeso e de melhor qualidade.

Figura 1: Ciclo de desenvolvimento do TDD.

Descrevendo a figura 1, temos:

  • Red: escreve-se um teste que inicialmente não passa
  • Adiciona-se uma nova funcionalidade ao sistema
  • Green: deve-se fazer o teste passar
  • Refactoring: refatora-se o código da nova funcionalidade
  • Escreve-se o próximo teste.

O TDD é uma metodologia que pode ser aplicada a uma variedade de linguagens de programação. Algumas das linguagens mais populares que suportam TDD incluem Java, JavaScript, Python, Ruby, C#, e diversas outras. Frameworks de teste como JUnit (para Java), Jest (para JavaScript), pytest (para Python), entre outros, são comumente utilizados para implementar o TDD em diferentes linguagens.

Os benefícios do TDD são diversos. Ele promove um desenvolvimento mais seguro, pois a cobertura de testes é ampliada desde o início do processo. A metodologia também encoraja a modularização do código, já que os testes são escritos em unidades pequenas e isoladas. Isso resulta em um design mais limpo e componentes mais independentes.

Além disso, o TDD leva a uma melhor compreensão dos requisitos, uma vez que os testes são escritos com base nas expectativas do comportamento do sistema. Isso contribui para um código mais confiável e facilita futuras modificações, reduzindo a probabilidade de regressões.

O Test-Driven Development é uma metodologia que transforma a forma como os desenvolvedores abordam a escrita de código. Ao priorizar os testes desde o início, o TDD promove uma cultura de qualidade, modularidade e confiabilidade no desenvolvimento de software. Sua aplicação efetiva requer prática e comprometimento, mas os benefícios resultantes são notáveis, tornando-o uma prática valiosa para equipes de desenvolvimento em busca de maior qualidade e eficiência em seus projetos.

Questão de concurso

[FGV 2023 Banco do Brasil – Analista Tecnológico] O desenvolvimento orientado a testes (TDD) é um processo que se baseia na repetição em ciclos de desenvolvimento curtos. Ele é baseado no conceito test-first oriundo da programação extrema (XP) que incentiva o design simples com alto nível de confiança. 

O procedimento que conduz este ciclo é denominado

A) refatoração vermelho-verde. 

B) documentação executável.

C) testes da caixa-branca. 

D) testes da caixa-preta. 

E) mocking up.

Comentários:

O conceito descrito na questão refere-se ao ciclo característico do Test-Driven Development (TDD), onde os testes são escritos antes do código de produção. O procedimento que conduz esse ciclo é conhecido como “refatoração vermelho-verde”, sendo a alternativa correta a letra a.

O termo “vermelho-verde” representa a sequência de passos dentro do ciclo do TDD: primeiro, o teste é escrito e, como não há implementação ainda, ele falha (sinalizado pelo resultado vermelho). Em seguida, o código é desenvolvido para passar no teste recém-escrito, resultando em um teste bem-sucedido (sinalizado pelo resultado verde). A “refatoração” acontece depois que o teste passa, permitindo a melhoria do código sem alterar seu comportamento externo.

A alternativa B, “documentação executável”, não está diretamente relacionada ao ciclo do TDD, embora o TDD resulte em uma forma de documentação viva através dos testes. As alternativas C e D, “testes da caixa-branca” e “testes da caixa-preta”, referem-se a tipos de abordagens de testes e não ao procedimento específico do ciclo do TDD. Por fim, “mocking up” é uma técnica de simulação de partes do sistema que não estão disponíveis ou que seriam complicadas de utilizar durante os testes, mas não é o procedimento principal do TDD.

Gabarito: letra A.

Espero que tenham gostado! 

Forte abraço e até a próxima jornada!

_________________________

Professor Rogerão Araújo


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:

CONCURSOS ABERTOS

CONCURSOS 2023

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:

TELEGRAM

Avatar


30 de Novembro de 2023