Deja Vu at Scale: Paraphrase-Robust Detection of Duplicate Gherkin Steps in Behaviour-Driven Software Testing with Sentence-Transformer Embeddings and a 1.1M-Step Open Benchmark

Este artigo aborda os custos de manutenção de etapas Gherkin duplicadas em Desenvolvimento Orientado por Comportamento ao lançar um benchmark de larga escala e interorganizacional de mais de 1,1 milhão de etapas e ao introduzir um detector robusto a paráfrases que combina métodos exatos, léxicos e semânticos para identificar e quantificar redundância eliminável significativa.

Autores originais: Ali Hassaan Mughal, Noor Fatima, Muhammad Bilal

Publicado 2026-06-15
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Ali Hassaan Mughal, Noor Fatima, Muhammad Bilal

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você é o editor de um livro de receitas colaborativo e massivo. Milhares de chefs de diferentes cozinhas contribuíram com receitas. Com o tempo, você percebe um problema: as mesmas instruções aparecem repetidamente, apenas escritas de forma ligeiramente diferente.

  • Um chef escreve: "Add two cups of flour."
  • Outro escreve: "Add 2 cups of flour."
  • Um terceiro escreve: "Put in 2 cups of flour."

No mundo dos testes de software, essas instruções são chamadas de passos Gherkin. Elas são as "receitas" que dizem a um computador como testar um software. O problema é que, quando essas instruções são duplicadas ou levemente parafraseadas, torna-se um pesadelo de manutenção. Se você precisar alterar um passo (como mudar de "Adicionar farinha" para "Adicionar farinha de amêndoas"), pode ter que caçar e editar milhares de cópias em vez de apenas uma.

Este artigo, intitulado "Déjà Vu at Scale," trata da construção de uma ferramenta superinteligente para encontrar esses duplicados, mesmo quando são escritos de formas ligeiramente diferentes, e da criação de uma biblioteca gigante de exemplos para provar que a ferramenta funciona.

Aqui está a divisão do que eles fizeram, usando analogias simples:

1. O Problema: O Efeito "Déjà Vu"

Os autores descobriram que, no mundo do software, a duplicação está em toda parte. Eles analisaram 347 projetos de software diferentes (como 347 livros de receitas diferentes) e encontraram mais de 1,1 milhão de instruções.

  • O Dado: Eles descobriram que 80% dessas instruções eram cópias exatas de algo mais.
  • A Dor: Se uma empresa quiser corrigir um erro de digitação ou mudar uma regra, ela pode ter que editar milhares de arquivos. É como tentar atualizar uma receita em um livro de receitas onde essa receita está escrita em 1.000 páginas diferentes em 1.000 livros diferentes.

2. A Solução: Um "Bibliotecário Inteligente"

Os autores construíram uma ferramenta chamada cukereuse. Pense nesta ferramenta como um superbibliotecário que consegue ler as instruções e entender que "Add 2 cups" e "Add two cups" são a mesma coisa, mesmo que a grafia ou o espaçamento sejam diferentes.

Eles não usaram apenas um truque; eles usaram um sistema de defesa de quatro camadas para capturar duplicatas:

  1. A Correspondência Exata: Se duas instruções forem idênticas até o último caractere (como duas fotocópias), ela as captura instantaneamente.
  2. A Correspondência "Quase": Se as instruções forem 90% iguais (como "Add 2 cups" vs "Add two cups"), ela também as captura.
  3. A Correspondência de "Significado": Esta é a parte inteligente. Ela usa IA (chamada de Sentence Transformers) para entender o significado. Ela sabe que "The user clicks the button" e "Clicking the button by the user" significam a mesma coisa, mesmo que as palavras sejam totalmente diferentes.
  4. O Híbrido: Ela combina as verificações "Quase" e de "Significado" para ser extra cautelosa.

3. A Prova: O Teste do "Padrão de Ouro"

Para provar que o bibliotecário deles era realmente bom, eles não apenas adivinharam. Eles criaram um conjunto de testes gigante:

  • Eles pegaram 1.020 pares de instruções.
  • Três pessoas diferentes (os autores) leram manualmente e decidiram: "Estes são duplicados ou não?"
  • Eles garantiram que todos concordassem com as respostas (uma pontuação alta chamada Fleiss' κ = 0.84, que é como uma equipe de juízes concordando sobre quem venceu um concurso).
  • O Resultado: Sua ferramenta de "Correspondência de Significado" foi muito boa, mas a ferramenta de "Correspondência Quase" foi a mais confiável e honesta, identificando corretamente os duplicados cerca de 82% das vezes sem se confundir com as regras do teste.

4. A Grande Descoberta: A Economia de "Consolidação"

A parte mais emocionante do artigo é a matemática que eles fizeram sobre as economias.

  • Eles descobriram que, em um projeto de software típico, você poderia deletar cerca de 62,5% das instruções duplicadas e substituí-las por apenas uma instrução "mestre".
  • A Analogia: Imagine que você tem 100 páginas de um livro de receitas. Após usar esta ferramenta, você percebe que só precisa de 37 páginas únicas. As outras 63 páginas são apenas cópias. Você pode jogá-las fora, tornando o livro muito mais fino e fácil de gerenciar.
  • Eles vincularam isso à ISO/IEC 25010, que é basicamente um conjunto de regras globiais para "bom software". Eles mostraram que limpar esses duplicados torna o software mais fácil de mudar (Manutenibilidade) e menos propenso a quebrar (Confiabilidade).

5. O Que Eles Lançaram para o Mundo

Os autores não guardaram suas descobertas para si mesmos. Eles lançaram um "kit inicial" para qualquer pessoa que queira realizar esta pesquisa:

  • Os Dados: Uma coleção massiva de 1,1 milhão de instruções do mundo real de projetos de software públicos.
  • O Teste: Os 1.020 pares de instruções com as respostas do "padrão de ouro".
  • A Ferramenta: O próprio código do software (cukereuse) que encontra os duplicados.
  • As Regras: Um guia sobre como eles decidiram o que conta como um duplicado.

Resumo

Em resumo, este artigo diz: "As instruções de teste de software estão cheias de duplicatas desnecessárias, tornando-as difíceis de gerenciar. Construímos uma ferramenta inteligente que encontra esses duplicados (mesmo quando são escritos de forma diferente), provamos que funciona com um teste massivo e de alta qualidade, e mostramos que corrigir isso pode poupar às equipes de software uma enorme quantidade de tempo e esforço. Estamos entregando todas as nossas ferramentas e dados gratuitamente para que outros possam usá-los."

O que eles NÃO alegaram:

  • Eles não disseram exatamente quanto dinheiro isso economiza (porque cada empresa paga seus trabalhadores de forma diferente).
  • Eles não disseram que isso resolve todos os problemas de qualidade de software, apenas o problema específico de instruções duplicadas.
  • Eles não alegaram que sua ferramenta funciona em dados privados e secretos de empresas (já que analisaram apenas dados públicos).

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →