Pular para o conteúdo
Ilustração de um desenvolvedor diante de um monitor com código Java enquanto um robô de inteligência artificial o auxilia na criação de testes unitários com JUnit e Mockito, apontando para os testes exibidos na tela.
Inteligência Artificial

Sem testes automatizados em 2026? Não tem mais desculpa

#IA#AI#teste#testar#software#decisão

Por Avelino Ferreira Gomes Filho

Publicado em Atualizado em 8 min de leituraK21

Por que os testes automatizados sempre perdiam para o prazo

Teste automatizado é código que verifica código. Você escreve uma vez e um robô executa sempre que alguém muda alguma coisa. Já falamos aqui sobre a pirâmide de testes e as ferramentas de cada camada e sobre TDD , a prática de escrever o teste antes do código.

O problema nunca foi entender o valor. Foi pagar a conta.

Testar uma classe existente exigia ler o código, descobrir os cenários, montar a massa de dados (os dados de entrada que o teste usa), criar mocks (objetos falsos que imitam banco, serviço ou API) e ainda configurar o servidor de integração contínua. Horas de trabalho que o usuário nunca vê. Com prazo apertado, é a primeira coisa que cai.

A fatura chegava depois: bug em produção, retrabalho e aquele medo de colocar em produção que trava o time inteiro.

A IA derrubou o custo de escrever teste

Qualquer assistente de código competente (Claude, ChatGPT, Gemini, Copilot) escreve testes unitários, testes de integração, massa de dados e mocks. E faz isso em cima do seu código real, não de um exemplo de livro.

Não é promessa de marketing. A Meta publicou, em 2024, os resultados do TestGen-LLM , uma ferramenta interna que usa modelos de linguagem para melhorar testes escritos por humanos. Numa avaliação nos produtos Reels e Stories do Instagram, 75% dos testes gerados compilaram, 57% passaram de forma confiável e 25% aumentaram a cobertura. Nas maratonas internas de testes do Instagram e do Facebook, a ferramenta melhorou 11,5% das classes em que foi aplicada, e 73% das recomendações foram aceitas pelos engenheiros para ir à produção.

Repara no detalhe: nem todo teste gerado prestou. Muitos foram descartados por filtros automáticos e pela revisão humana. A lição não é "a IA acerta tudo". É que gerar teste ficou tão barato que dá para jogar fora o que não serve e ainda sair no lucro.

Aqui na K21 já vimos esse desconto em outro tipo de trabalho. Uma aplicação Java de quase 15 anos, cuja migração havia sido abandonada várias vezes, foi atualizada em menos de um dia com a ajuda da IA. Contei essa história. As dívidas técnicas receberam um grande desconto . O teste segue a mesma lógica, com uma vantagem: é um trabalho repetitivo e bem delimitado, exatamente onde a IA vai melhor.

O que mudou no custo de testar, tarefa por tarefa

Tarefa

Antes da IA

Com IA

O que continua sendo seu

Escrever testes para uma classe existente

Ler o código inteiro e escrever cenário por cenário

Colar a classe e pedir os testes

Conferir se o teste verifica a regra certa

Descobrir casos de borda (nulos, limites, datas)

Depender da experiência de quem escreve

Pedir a lista de cenários antes do código

Decidir quais cenários importam para o negócio

Montar massa de dados e mocks

Trabalho braçal e repetitivo

Gerado junto com o teste

Garantir que os dados representam casos reais

Configurar o pipeline no Jenkins

Documentação, tentativa e erro

Descrever o projeto e pedir o Jenkinsfile

Validar ferramentas, credenciais e onde o pipeline para

Entender por que um teste falhou

Depurar sozinho

Colar o log e pedir diagnóstico

Decidir se o erro está no código ou no teste

A última coluna é a que importa. A IA barateou a execução. O julgamento continua com você.

Não sabe escrever o teste? Peça para a IA

Esse é o ponto que mais gente ignora. Você não precisa dominar JUnit, pytest ou Mockito para começar. Precisa saber pedir.

Esta é a classe CalculadoraDeFrete do meu projeto Java 21 com Maven.
[cole a classe aqui]

1. Antes de escrever código, liste os cenários que merecem teste,
  Incluyendo casos de borde.
2. Depois, escreva os testes com JUnit 5 ou 6, usando Mockito
  Para simular o repositório.
3. Não altere a classe original.
4. Explique em uma linha o que cada teste garante.

O passo 1 é o mais importante. Pedir os cenários antes do código obriga a IA a mostrar o raciocínio. Você revisa uma lista de dez linhas, não de duzentas linhas de teste.

Se o código for antigo demais para alguém lembrar como funciona, peça testes de caracterização (que registram o comportamento atual, certo ou errado, para você poder mexer sem quebrar nada). É o primeiro passo seguro em qualquer sistema legado.

Não sabe montar o pipeline no Jenkins? Peça para a IA também

Teste que só roda quando alguém se lembra não protege nada. Quem garante que ele roda sempre é o pipeline de integração contínua: a sequência automática de etapas que o servidor executa a cada mudança no repositório. O Jenkins é um dos servidores mais usados para isso.

Tenho um projeto Java 21 com Maven num repositório no Git.
Crie um Jenkinsfile declarativo que:
1. faça o checkout do código;
2. compile e rode os testes com mvn verify;
3. publique o relatório dos testes JUnit;
4. falhe o build se algum teste quebrar.
Explique cada bloco e diga o que preciso configurar no Jenkins antes.

Uma resposta típica fica assim:

  
  pipeline {
      agent any
      tools {
          // os nomes precisam bater com os cadastrados em Gerenciar Jenkins, menu Tools
          jdk 'JDK21'
          maven 'Maven3'
      }
      stages {
          stage('Checkout') {
              steps { checkout scm }
          }
          stage('Build e testes') {
              steps { sh 'mvn -B clean verify' }
          }
      }
      post {
          always {
              junit 'target/surefire-reports/*.xml'
          }
      }
  }
  

Legenda: o pipeline não testa melhor do que você; ele testa sempre, sem esquecer, e barra a mudança antes que ela chegue ao usuário.

O mvn verify compila e executa os testes. Se um deles falhar, o Maven retorna um erro e o Jenkins marca o build como quebrado. O junit publica o relatório para o time ver o que falhou. Você não precisa decorar Groovy. Precisa ler, entender o que cada bloco faz e testar num branch antes de ligar para todo mundo.

IA sem teste é código errado chegando mais rápido

Tem um lado B. A IA não barateou só o teste. Ela acelerou a produção de código. E código produzido mais rápido, sem rede de proteção, quebra mais rápido.

Os dados confirmam. A pesquisa DORA de 2024, com cerca de 3.000 respondentes, estimou que cada aumento de 25% na adoção de IA melhora a qualidade da documentação em 7,5%, a do código em 3,4% e a velocidade de revisão em 3,1%. No mesmo movimento, a vazão das entregas cai 1,5% e a estabilidade cai 7,2%. O próprio relatório conclui que fundamentos como lotes pequenos e testes robustos continuam cruciais. Se você quer entender o que essas métricas medem, vale a pena ler nosso post sobre as métricas DORA .

A IA melhora o que acontece antes do merge e piora o que acontece depois: sem testes que impeçam a entrega, o ganho individual vira instabilidade em produção.

Traduzindo: se você usa IA para escrever código e não para escrever testes, está usando a ferramenta pela metade. É pela metade errada.

O alerta vale no sentido contrário também. Teste gerado por IA e não lido é mera decoração. A IA pode escrever um teste que confirme o bug em vez de apontá-lo, porque ela aprende o comportamento a partir do código que você mostrou. Quer saber se os testes pegam erro de verdade? Peça à IA que configure um teste de mutação (técnica que altera o código deliberadamente para ver se os testes percebem). No Java, a ferramenta mais conhecida é o PIT.

Falta de teste deveria ser crime

Não está no Código Penal, claro. Mas pensa comigo: se uma engenheira civil deixasse de calcular a carga de uma laje porque "não deu tempo", ninguém aceitaria a desculpa. O cálculo é barato perto do estrago.

No software, aceitamos essa desculpa por décadas porque o teste era realmente caro. Não é mais. Quando o custo de fazer o certo despenca, deixar de fazer deixa de ser uma restrição e vira negligência.

A régua mudou:

  • "Não sei escrever teste." Peça para a IA.

  • "Não sei configurar o Jenkins." Peça para a IA.

  • "Não tenho tempo." Você tem o tempo de uma conversa e de uma revisão.

O critério agora é outro

A pergunta deixou de ser "vale a pena testar?". Passou a ser "quem revisa os testes que a IA escreveu?". Se ninguém revisa, o problema não é ferramenta. É responsabilidade.

Comece pela classe em que você mais tem medo de mexer. Peça os cenários, peça os testes, peça o pipeline. Leia tudo. Suba num branch. Na próxima sexta às 17h, quem vai reclamar é o pipeline, não o usuário.

Pronto pra dar o próximo passo?

  • Certified Scrum Developer (CSD) : você sai sabendo aplicar integração contínua, testes automatizados, TDD e IA na rotina de um time Scrum, com certificação da Scrum Alliance.

  • Product AI : você sai sabendo usar a IA como copiloto em todas as etapas de criação de um produto, do backlog às métricas.

Perguntas frequentes

A IA consegue escrever testes automatizados confiáveis?

Consegue, desde que alguém revise. Na experiência publicada pela Meta com o TestGen-LLM, a maior parte das sugestões aprovadas pelos filtros automáticos foi aceita pelos engenheiros, mas muitos testes gerados foram descartados ao longo do processo. Por isso, o fluxo seguro é gerar, rodar, filtrar e ler. A IA reduz o custo de escrever o teste, não a responsabilidade de validar o que ele verifica.

Preciso saber programar para pedir testes à IA?

Você precisa entender o suficiente do sistema para dizer o que ele deveria fazer. A IA escreve o código do teste, mas não conhece a regra de negócio melhor do que você. Pedir primeiro a lista de cenários em linguagem simples ajuda muito, porque permite que qualquer pessoa do time revise o raciocínio antes do código existir. Quem não programa pode validar os cenários; quem programa valida a implementação.

Como criar um pipeline no Jenkins para executar os testes?

Descreva para a IA a linguagem, a ferramenta de build e o repositório do projeto, e peça um Jenkinsfile declarativo que faça o checkout, compile, rode os testes, publique o relatório e falhe o build quando um teste falhar. Peça também a lista do que precisa ser configurado no Jenkins antes, como o JDK, o Maven e as credenciais do repositório. Teste o pipeline num branch separado antes de aplicá-lo ao fluxo principal. Assim, a primeira falha ocorre com você, não com o time inteiro.

Testes gerados por IA substituem o TDD?

Não substituem, complementam. No TDD, o teste vem antes do código e serve para desenhar a solução, enquanto a geração por IA costuma cobrir código já existente. A IA também pode ajudar no próprio TDD, sugerindo cenários e escrevendo o primeiro teste que falha a partir da regra que você descreveu. O ganho maior aparece em sistemas legados, onde escrever testes à mão sempre foi o obstáculo para começar.

Pronto pra dar o próximo passo?

Conheça os cursos da K21 e leve essas ideias pra prática com quem vive agilidade todo dia.

Ver cursos K21

Continue lendo