Desenvolvimento Orientado a Testes com Agentes de IA
Aprenda as melhores práticas para combinar TDD com agentes de codificação de IA como Windsurf e Claude 3.5 Sonnet para automatizar e agilizar seu pipeline de desenvolvimento de software.

O que é TDD (Desenvolvimento Orientado a Testes)?
Em sua essência, o TDD gira em torno de um processo cíclico conhecido como Vermelho-Verde-Refatorar. O ciclo começa com a fase “Vermelho”, em que o desenvolvedor escreve um caso de teste automatizado que define uma funcionalidade ou comportamento desejado. Este teste é intencionalmente escrito para falhar inicialmente porque o código correspondente ainda não existe. Essa falha inicial é fundamental, pois garante que o teste está realmente verificando a funcionalidade pretendida e pode capturar erros assim que o código for implementado.
A fase seguinte, “Verde”, envolve escrever a menor quantidade de código necessária para fazer o teste que falhou anteriormente passar. Este princípio incentiva os desenvolvedores a focar no requisito imediato definido pelo teste, manter uma base de código limpa e evitar over-engineering.
Por fim, a fase “Refatorar” foca em melhorar a estrutura, legibilidade e manutenibilidade tanto do código de teste quanto do código de produção, garantindo que todos os testes existentes continuem passando. A refatoração garante que a base de código permaneça saudável e adaptável a futuras mudanças sem introduzir regressões, tendo a suíte de testes existente como rede de segurança durante essa fase.
Como Automatizar Todo o Seu Pipeline de TDD?
Há diversos fatores que afetam o desempenho de Agentes de IA durante a codificação. Desde o modelo LLM até a forma como você estrutura seu código e o pipeline de desenvolvimento. Descobrimos que o TDD é eficaz com o Windsurf e o Claude 3.5 sonnet. A seguir, um exemplo de tarefa implementada com TDD.
O que você precisa?
Antes de começar a codificar, precisamos dos seguintes itens:
Testes Suficientes
Garanta que você já tenha testes de acordo com o TDD e que eles cubram a maior parte do escopo do seu problema, considerando o que é lógico e útil para o Agente de IA. Não é necessário mudar ou personalizar nada pensando no Agente de IA. Se seus testes e sua convenção de nomes seguem um padrão, melhor ainda. Como primeiro passo, o Agente de IA visualizará esses testes para começar a implementação.
Aqui está um exemplo de teste que tenho e que verifica se um documento foi inserido corretamente no MongoDB:

Interfaces
Uma Interface em Java (ou qualquer outra linguagem de programação) é uma estrutura que define como as classes devem ser e quais métodos devem implementar. Para guiar ainda mais o Agente de IA, pode ser útil criar uma Interface para o seu repositório inserir documentos:


Descrição específica da tarefa
Por fim, precisamos de uma descrição específica da tarefa. Normalmente, você pode usar JIRA ou issues do GitHub para definir a tarefa. Esta é a nossa:

Inicie o Vibe Coding
Vibe coding significa que você descreve o que precisa em inglês simples (ou até mesmo comandos de voz), e a IA gera o código para você em tempo real. Detalhamos o Vibe Coding neste blog. Aqui está o prompt que usei no Windsurf para concluir a tarefa:

Implemente a seguinte consulta como uma combinação de uma ou mais consultas nomeadas e código Java.
Encontre todos os motoristas que completaram pelo menos X viagens com avaliação acima de 5 em determinado intervalo de datas e que nunca receberam uma avaliação abaixo de 3 estrelas.
Nota:
Não é necessário encontrar uma única consulta para resolver esta tarefa (você pode usar uma combinação de código Java e consultas nomeadas), mas é preciso considerar o desempenho do ORM, ou seja, garantir que sua solução também seja razoavelmente rápida caso você tenha muitas entidades. Durante a sessão de discussão, você deverá ser capaz de explicar que tipos de problemas podem surgir com consultas mal escritas.
@Ass1_2_2Test.java#L35-60
estes são os testes correspondentes. Está implementado em@DriverDAO.java#L34-63
Mencionar os arquivos é o aspecto mais importante ao fazer vibe coding. Agora sente-se e veja o Agente de IA fazer sua mágica. Ele implementou a Classe, executou os testes e reiterou até fazer os testes passarem:

Perguntas frequentes
- O que é Desenvolvimento Orientado a Testes (TDD)?
Desenvolvimento Orientado a Testes (TDD) é uma abordagem de desenvolvimento de software onde testes automatizados são escritos antes do código real. O processo segue um ciclo Vermelho-Verde-Refatorar: escrever um teste que falha (Vermelho), implementar o código para passar no teste (Verde) e então refatorar o código mantendo todos os testes passando.
- Como os Agentes de IA podem automatizar o pipeline de TDD?
Agentes de IA como o Windsurf, especialmente quando combinados com modelos como o Claude 3.5 Sonnet, podem automatizar a geração de código, executar testes e realizar melhorias iterativas, tornando o processo de TDD mais rápido e eficiente.
- Quais são os pré-requisitos para automatizar o TDD com Agentes de IA?
Para automatizar o TDD com Agentes de IA, é necessário um conjunto abrangente de testes, interfaces claramente definidas e descrições específicas das tarefas. A padronização dos nomes dos testes e uma documentação clara ajudam a orientar o Agente de IA para obter resultados ótimos.
- O que é Vibe Coding?
Vibe Coding é uma abordagem impulsionada por IA em que desenvolvedores descrevem requisitos em inglês simples (ou por voz), e a IA gera o código em tempo real, iterando até que todos os testes passem e a solução atenda aos requisitos.
Yasha é um talentoso desenvolvedor de software especializado em Python, Java e aprendizado de máquina. Yasha escreve artigos técnicos sobre IA, engenharia de prompts e desenvolvimento de chatbots.

Impulsione Seu Desenvolvimento com Agentes de IA
Descubra como os engenheiros de fluxos de IA e agentes de codificação da FlowHunt podem automatizar seu processo de desenvolvimento para máxima eficiência e inovação.