Ciclo Red → Green → Refactor no TDD
O ciclo Red–Green–Refactor é o núcleo da abordagem de desenvolvimento orientado por testes (TDD). Ele organiza o processo de criação de software em pequenos ciclos de verificação e evolução incremental. Esse fluxo garante que o código seja construído com base em testes, aumentando a confiabilidade e a qualidade do sistema desde as etapas iniciais.
- RED (vermelho): O desenvolvedor começa escrevendo um teste automatizado para uma funcionalidade ainda inexistente. Como não há implementação, o teste falha, indicando que o comportamento desejado ainda não está presente.
- GREEN (verde): Em seguida, o programador escreve o código mínimo necessário para que o teste passe. O foco aqui é apenas fazer o teste funcionar, sem se preocupar, neste momento, com qualidade de código ou estrutura ideal.
- REFACTOR (refatorar): Com o teste passando, o código é melhorado internamente, ajustando nomes, extraindo métodos, eliminando duplicações, sem alterar o comportamento externo. Todos os testes devem continuar passando após essa refatoração.
Esse ciclo é repetido inúmeras vezes ao longo do desenvolvimento. A grande vantagem dessa abordagem é que cada pequena mudança é validada imediatamente, tornando os erros mais fáceis de localizar e corrigir.
| Etapa | Descrição |
| Red | Escreve-se um teste que falha, pois o recurso ainda não existe. |
| Green | Implementa-se o código mínimo para fazer o teste passar. |
| Refactor | O código é refatorado para melhorar sua qualidade, mantendo todos os testes funcionando. |
| Objetivo | Garantir que o código só evolua quando estiver devidamente testado e que seja mantido de forma limpa. |
QUESTÃO INÉDITA
No ciclo Red–Green–Refactor do Test-Driven Development (TDD), a etapa “Green” consiste em refatorar o código para que todos os testes passem, adicionando melhorias funcionais sempre que necessário.
Comentário:
A etapa Green é dedicada apenas a escrever o código mínimo necessário para que o teste passe. A refatoração ocorre depois, na etapa “Refactor”, e não deve incluir novas funcionalidades.
Gabarito está ERRADO
Teste de Regressão e TDD
Um dos maiores benefícios do desenvolvimento orientado por testes (TDD) é a redução significativa dos custos com testes de regressão. Esse tipo de teste consiste em executar novamente todos os testes que já haviam passado anteriormente, após qualquer alteração no sistema, com o objetivo de garantir que nenhuma nova falha tenha sido introduzida.
Quando realizado manualmente, o teste de regressão pode ser extremamente caro e demorado, tornando-se inviável em muitos projetos. No entanto, com testes automatizados, como os adotados no TDD, o custo e o tempo de execução desses testes são reduzidos drasticamente.
Isso permite que eles sejam executados constantemente, oferecendo feedback rápido ao desenvolvedor, e aumentando a confiabilidade das mudanças. Para que o desenvolvedor continue adicionando novas funcionalidades, é essencial que todos os testes anteriores continuem passando sem falhas, o que garante maior estabilidade do sistema.
Aplicabilidade, Limitações e Ferramentas
Embora o TDD traga diversos benefícios, como feedback rápido, aumento de produtividade, menor acoplamento e código mais coeso, ele apresenta limitações em determinados contextos.
É mais eficaz no desenvolvimento de software novo, em que a funcionalidade é construída do zero ou com bibliotecas padrão bem testadas. Em sistemas legados ou com código reutilizado, o desenvolvedor precisa escrever testes adicionais para validar componentes já existentes.
Em sistemas multi-threaded, por exemplo, o TDD pode ser ineficaz, pois diferentes execuções podem gerar comportamentos não determinísticos, dificultando a validação via testes automatizados. Além disso, o TDD não substitui os testes de sistema, que são necessários para validar desempenho, confiabilidade e conformidade com os requisitos dos usuários. Quanto às ferramentas, destacam-se JUnit, TestNG, NUnit, PHPUnit, Jasmine, PyUnit, entre outras, utilizadas para implementar testes unitários, testes de integração e testes de aceitação.
PULO DO GATO
Código limpo tende a propiciar mais segurança na correção de bug´s, melhora a eficiência da equipe, código fica mais flexível, mais coeso e menos acoplado.
SE LIGA
Embora o nome possa sugerir o contrário, o Test Driven Development (TDD) não é apenas uma estratégia para testar sistemas. Na verdade, trata-se de uma abordagem completa de desenvolvimento de software, em que os testes orientam o processo de codificação. Em muitos contextos, o TDD pode inclusive ser considerado uma técnica de programação estruturada, já que influencia diretamente a forma como o código é pensado, escrito e evoluído ao longo do tempo.
QUESTAO INÉDITA
A) O TDD é um conjunto de técnicas de teste voltadas exclusivamente para a validação de sistemas prontos.
B) Embora com foco em testes, o TDD é fundamentalmente uma abordagem de desenvolvimento de software.
C) O uso do TDD limita-se à criação de suítes de testes de regressão manual.
D) O TDD não interfere na forma de programação, apenas na fase de verificação do sistema.
E) O TDD substitui completamente os testes de sistema e de aceitação.
Comentário:
O TDD é, antes de tudo, uma estratégia de desenvolvimento, não apenas de teste. Sua lógica propõe que o código seja escrito com base em testes criados antecipadamente, o que o torna uma técnica de programação guiada por testes. As demais opções confundem escopo ou função da abordagem.
Gabarito é a letra B.
Uma Abordagem Guiada por Testes
O Test-Driven Development (TDD) se destaca por uma série de características que o tornam mais do que uma técnica de teste: ele é uma abordagem completa de desenvolvimento orientado à qualidade. Ao colocar os testes como ponto de partida e de sustentação do código, o TDD influencia diretamente o design, a organização e a manutenção do software. Cada funcionalidade é desenvolvida a partir de testes automatizados, que definem o comportamento esperado do sistema
CAIU NA PROVA
Ano: 2024 Banca: FGV Órgão: AL-SC Prova: FGV – 2024 – AL-SC – Analista Legislativo III – Analista de Sistemas
A prática de Test Driven Development (TDD, ou Desenvolvimento Orientado por Testes) se relaciona com o conceito de verificação e validação e se baseia em um ciclo para garantir a qualidade do código. Entre as características do TDD, é correto o que se afirma em
A prática de Test Driven Development (TDD, ou Desenvolvimento Orientado por Testes) se relaciona com o conceito de verificação e validação e se baseia em um ciclo para garantir a qualidade do código.
Entre as características do TDD, é correto o que se afirma em
A) Trata-se de desenvolvimento orientado para os comportamentos, sendo o desenvolvedor responsável por escrever os testes e validá-los de forma que eles funcionem.
B) Trata-se de desenvolvimento orientado para os testes, sendo atribuição do programador escrever como o problema deve se comportar.
C) Na prática, se refere a escrever um teste automatizado durante o desenvolvimento do código de fato.
D) O ciclo do TDD se inicia com a criação de um teste, para auxiliar a codificação, segue com a realização da codificação para passar no teste, e finaliza com a eliminação das redundâncias, ao se refatorar o código.
E) No desenvolvimento de programas são intercalados testes, elicitação de requisitos e desenvolvimento de código, tendo os testes embutidos em um programa separado que os executa e invoca o sistema que está sendo testado.
Comentário
A alternativa D descreve corretamente o ciclo TDD (Red – Green – Refactor):
Red – escrever um teste que inicialmente falha;
Green – escrever o código necessário para fazer o teste passar;
Refactor – melhorar o código, eliminando duplicações ou melhorando estrutura sem alterar funcionalidade.
A) Descreve parcialmente o BDD (Behavior Driven Development), não o TDD.
B) Mistura conceitos e não expressa com clareza a prática do TDD.
C) Errado: o teste é escrito antes do código, não durante.
E) Mistura práticas gerais de testes com requisitos, mas não define corretamente o ciclo do TDD.
Gabarito é a letra D.
Bons estudo
![[Intervalo entre promoções] R$ 64,90 – Cabeçalho](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/01/30115027/intervalo-cabecalho.webp)
![[Intervalo entre promoções] R$ 64,90 – Post](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/01/30115357/intervalo-post.webp)



Participe da conversa