Pular para o conteúdo
SDETRole
SDETRole

Glossário · IA em testes

Self-healing locator

Também chamado de: self-healing locators, self-healing, locator auto-reparável, testes auto-reparáveis

Definição

Locator que, ao deixar de encontrar o elemento, faz a ferramenta escolher um substituto provável a partir de atributos salvos ou de um modelo e seguir com o teste.

Um self-healing locator (locator auto-reparável) é um locator de teste de UI apoiado por um mecanismo de recuperação. Quando o locator principal não encontra um elemento, por exemplo porque um id mudou, a ferramenta procura na página o elemento que melhor corresponde ao que ela sabia sobre o original (tag, texto, atributos, posição, vizinhos), usa esse elemento e normalmente registra o “reparo” (heal) para que alguém atualize o teste. O objetivo é ter menos falhas causadas por mudanças inofensivas no markup.

Como funciona na prática

A maioria das implementações segue o mesmo padrão:

  1. Nas execuções que passam, guarda uma impressão digital (fingerprint) de cada elemento que o teste toca.
  2. Quando um locator falha, pontua os elementos candidatos da página em relação a essa impressão digital.
  3. Se o melhor candidato fica acima de um limite, usa esse elemento e registra a substituição; caso contrário, falha normalmente.

Esse tipo de reparo por similaridade de atributos já está consolidado: ferramentas comerciais o oferecem, e o Healenium é uma opção open source para Selenium. O reparo baseado em LLM, no qual um modelo lê a página ou a árvore de acessibilidade e propõe um novo locator ou um teste corrigido, é mais recente. Os test agents do Playwright, introduzidos na versão 1.56, incluem um healer que sugere correções para testes que falham; trate-os como assistentes que propõem mudanças para revisão, e não como um piloto automático.

O risco real: “consertar” um bug de verdade

Um reparo pressupõe que a mudança foi cosmética. Às vezes não foi:

  • O botão “Enviar” foi removido por engano, e o healer clica em “Salvar rascunho” no lugar.
  • Um campo teve o rótulo trocado de “E-mail” para “Usuário”, uma mudança real de requisito que o teste deveria ter sinalizado.
  • Existem duas linhas parecidas e o healer escolhe a errada, então o teste passa contra os dados errados.

Em todos esses casos, um teste que deveria falhar fica verde. Regras que mantêm o reparo honesto:

  • Reporte cada reparo e reprove a execução (ou pelo menos sinalize) no gate de release.
  • Transforme os reparos em mudanças de código. Aceite ou rejeite o locator sugerido na revisão; não deixe a ferramenta continuar usando-o silenciosamente.
  • Verifique resultados, não só interações, para que clicar no elemento errado ainda falhe na assertion seguinte.

Corrija os locators primeiro

Boa parte da fragilidade que o self-healing tenta resolver vem de seletores frágeis: longas cadeias de XPath, nomes de classe gerados, caminhos baseados em índice. Locators voltados ao usuário, como getByRole('button', { name: 'Submit' }) do Playwright, ou atributos data-testid estáveis eliminam a maior parte dessa necessidade sem nenhum chute.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →