VictorOliveiraArtigo sobre Quality Assurance e praticas de teste modernas
De seletores quebrados a agentes que escrevem, executam e reparam testes sozinhos: um guia prático para aplicar Inteligência Artificial no seu processo de qualidade sem cair em modinhas.
Se você trabalha com qualidade de software, provavelmente já percebeu que a conversa mudou. Há alguns anos, o grande debate era "automatizar ou não automatizar". Em seguida, virou "Cypress ou Selenium?". Hoje, em 2026, a pergunta que domina conferências como o Agile Testing Days, relatórios do setor como o World Quality Report e praticamente toda comunidade de QA é outra: como usar Inteligência Artificial para transformar a forma como garantimos qualidade.
E não se trata de hype vazio. Segundo pesquisas recentes da indústria, mais de 40% das empresas já utilizam ferramentas de IA generativa — como ChatGPT, Claude e Gemini — em seus fluxos de teste. A nova geração de ferramentas vai além: agentes autônomos capazes de gerar casos de teste, executá-los, diagnosticar falhas e até auto-reparar scripts quebrados. É o chamado Agentic QA, e ele está redefinindo o papel de quem trabalha com qualidade.
Neste artigo, vamos entender por que esse é o tema mais relevante da área atualmente, ver exemplos práticos de aplicação — com código real — e discutir os limites dessa tecnologia. Porque, sim, existem limites.
Antes de falar de IA, precisamos entender o problema que ela resolve.
Quem já escreveu suítes de automação E2E sabe: o teste não é o difícil — manter o teste é. Um seletor CSS muda, um id é renomeado, um botão ganha uma nova classe, e dezenas de testes quebram da noite para o dia. Estudos da indústria estimam que equipes gastam entre 30% e 50% do tempo de automação apenas consertando scripts que pararam de funcionar por mudanças legítimas na interface — não por bugs reais.
Esse fenômeno tem nome: teste frágil (flaky/brittle test). E ele gera dois efeitos perversos:
É exatamente aqui que a IA entra — não substituindo o QA, mas atacando o gargalo que sempre impediu a automação de escalar.
A evolução da disciplina pode ser resumida em cinco ondas:
| Onda | Característica | Ferramentas típicas |
|---|---|---|
| Manual | Casos de teste escritos e executados à mão | Planilhas, Jira, TestRail |
| Automação | Scripts determinísticos | Selenium, JUnit |
| Shift-left | Testes cedo no ciclo, TDD/BDD | Cucumber, Jest |
| IA assistiva | Copilotos geram trechos de teste | Copilot, Cursor |
| QA Agêntico (2026) | Agentes geram, executam, diagnosticam e reparam testes | Playwright MCP, Claude Code, Healenium |
Na onda atual, o profissional de QA deixa de ser um executor e passa a ser um orquestrador: define estratégia, critérios de aceite e governança, enquanto agentes cuidam da parte repetitiva.
Vamos aos exemplos práticos.
O uso mais direto de IA generativa é transformar linguagem natural em código de teste. Veja este prompt dado a um assistente de código conectado ao seu repositório:
Gere um teste Playwright em TypeScript para o fluxo de login:
- Dado que o usuário acessa /login
- Quando preenche email válido e senha válida
- Então deve ser redirecionado para /dashboard
- E deve ver a mensagem "Bem-vindo de volta"
Use seletores semânticos (getByRole, getByLabel), nunca XPath ou classes CSS.
Resultado típico:
import { test, expect } from '@playwright/test';
test('login com credenciais válidas redireciona para o dashboard', async ({ page }) => {
await page.goto('/login');
await page.getByLabel('E-mail').fill('ana@exemplo.com');
await page.getByLabel('Senha').fill('SenhaSegura123');
await page.getByRole('button', { name: 'Entrar' }).click();
await expect(page).toHaveURL(/.*dashboard/);
await expect(page.getByText('Bem-vindo de volta')).toBeVisible();
});
Note o detalhe importante: o pedido para usar seletores semânticos (getByRole, getByLabel). Isso não é estética — é a base para o próximo exemplo, porque seletores baseados em acessibilidade são muito mais resilientes a mudanças visuais.
O ganho real aqui não é só velocidade de escrita. É que o QA gasta menos tempo digitando boilerplate e mais tempo pensando em cenários de risco: e se a senha expirar? E se houver MFA? E se o usuário tiver sessão ativa?
Este é, na minha avaliação, o recurso de IA mais impactante para times de automação hoje.
A ideia: quando um seletor quebra porque a UI mudou, um mecanismo inteligente identifica o elemento correto pelo contexto (texto, papel ARIA, posição, atributos) e atualiza o locator automaticamente, registrando a mudança para revisão humana.
Ferramentas como Healenium (open source, integra com Selenium) fazem isso hoje. O conceito em ação:
// Antes da mudança da UI:
driver.findElement(By.id("btn-submit")).click(); // ❌ quebra após refactor
// Com Healenium: o teste roda, o framework detecta que o id sumiu,
// encontra o novo elemento pelo contexto ("role=button", texto "Enviar"),
// repara o locator e grava a correção no relatório:
WebElement btn = driver.findElement(By.id("btn-submit")); // ✅ auto-curado
btn.click();
No ecossistema Playwright, o Model Context Protocol (MCP) levou isso adiante: agentes podem ler o DOM via árvore de acessibilidade — do mesmo jeito que leitores de tela — e interagir com a página semanticamente, em vez de depender de seletores frágeis. Um teste descrito como "faça login e valide o saldo exibido no painel" pode ser executado por um agente que navega como um humano navegaria.
O resultado prático relatado por equipes que adotam self-healing: queda drástica de falsos positivos e horas de manutenção devolvidas ao time para trabalho de maior valor.
Há um segundo lado nessa história: cada vez mais, o produto que testamos também usa IA — chatbots, busca semântica, recomendações. Como testar algo não determinístico, cuja resposta correta varia?
A resposta emergente é o padrão LLM-as-a-Judge: usar um modelo de linguagem para avaliar, em escala, as saídas de outro modelo contra critérios definidos. Frameworks como DeepEval permitem incluir essas avaliações direto no CI:
from deepeval import assert_test
from deepeval.test_case import LLMTestCase
from deepeval.metrics import AnswerRelevancyMetric, HallucinationMetric
test_case = LLMTestCase(
input="Qual o prazo de entrega para o CEP 01310-100?",
actual_output="Entregas para essa região levam de 3 a 5 dias úteis.",
retrieval_context=["Tabela de prazos: região centro - 3 a 5 dias úteis."]
)
assert_test(
test_case,
[AnswerRelevancyMetric(threshold=0.8),
HallucinationMetric(threshold=0.5)]
)
Se o chatbot começar a alucinar respostas sobre prazos após uma troca de versão do modelo ou do prompt, o pipeline quebra o build — exatamente como um teste de regressão tradicional faria. Prompts passam a ser tratados como código: versionados, testados e monitorados.
Agora, a parte que separa profissionais maduros de entusiastas ingênuos. IA aplicada a testes tem riscos concretos:
A regra de ouro: IA acelera, mas quem garante qualidade continua sendo o profissional de QA — agora com superpoderes.
A Inteligência Artificial está transformando Quality Assurance naquilo que a disciplina sempre deveria ter sido: uma função estratégica de prevenção, não um gargalo operacional de execução. Quem domina as novas ferramentas entrega mais cobertura com menos manutenção e participa das decisões de produto desde o design