Sber mostrou como RAG e LLM na IDE transformam cenários manuais em testes automatizados
A Sber mostrou um protótipo para JetBrains IDE que gera testes automatizados a partir de cenários manuais com uma combinação de LLM e RAG. O sistema busca…
Processado por IA de Habr AI; editado por Hamidun News
O Sber demonstrou como reduzir uma das tarefas mais rotineiras em QA: converter cenários de teste manual em testes automatizados diretamente na IDE. No coração está uma combinação de LLM e RAG, que não apenas escreve código, mas primeiro busca exemplos relevantes dentro do próprio projeto para preservar seu estilo, convenções e arquitetura.
Por Que o Prompt Direto Não Funciona
A ideia de "apenas enviar um teste manual para o modelo e obter código pronto" se desintegra na prática diante dos detalhes. Um LLM realmente pode montar um teste Java funcionando, mas quase certamente não o fará da maneira aceita em um time específico: esquecerá do Allure, violará o esquema de nomenclatura, colocará URLs e corpos de requisição no lugar errado, adicionará verificações desnecessárias ou não utilizará utilitários internos como um método comum de verificação de status. Para automação de testes, isso não é cosmética mas uma perda real de compatibilidade com o projeto.
O problema é mais profundo do que apenas a qualidade do prompt. Testes automatizados vivem dentro de seu próprio framework, ligados à arquitetura, CI, Page Object, chaves TMS e convenções de anotações. Se tentar passar o projeto inteiro para o modelo, rápido bate nas limitações da janela de contexto, aumento de latência e custo de requisições.
Mesmo depois disso, alucinações, passos perdidos e resultados instáveis permanecem, exigindo refinamento manual ao estado desejado.
Como o RAG Funciona
Em vez de few-shot estático com exemplos selecionados manualmente, o time do Sber criou um plugin para JetBrains IDE. Ele escaneia o projeto através da estrutura PSI, não como texto bruto, então vê classes, métodos, anotações e chamadas. Nessa base, o sistema coleta etapas Allure, testes automatizados existentes, suas chaves TMS, código e breves descrições textuais. Em seguida, essas descrições são convertidas em embeddings e salvas junto com metadados em uma base de conhecimento local ou armazenamento vetorial. Quando um novo cenário manual chega ao trabalho, o sistema passa por vários estágios:
- identifica a ação e resultado esperado para cada passo;
- constrói várias variantes semânticas de consulta para encontrar passos similares;
- pede ao LLM para descrever brevemente todo o teste para encontrar um teste automatizado similar por significado;
- substitui automaticamente exemplos encontrados no prompt em vez de few-shot manual;
- verifica o resultado através de requisição repetida ao modelo e através de PSI dentro da IDE.
Essa abordagem torna possível obter código que parece ter sido escrito por alguém desse time, não um modelo externo sem contexto. O artigo enfatiza separadamente que busca semântica é necessária não pelo sake de RAG na moda, mas para um propósito prático: trazer para a geração exatamente aqueles passos, utilitários e padrões que já comprovaram sua eficácia dentro do projeto.
RAG é few-shot que encontra os exemplos necessários por conta própria.
Resultados do Protótipo
Segundo o time, o protótipo interno já mostrou efeito mensurável. Cerca de 68% dos testes gerados estavam em nível aceitável e exigiam apenas edições mínimas, e a satisfação geral do usuário foi aproximadamente 80%. A ferramenta mostrou melhores resultados em cenários de API simples e similares, onde é especialmente importante reproduzir rapidamente um template de código estabelecido sem copiar manualmente de testes adjacentes.
Engenheiros de automação também notaram redução na carga cognitiva: menos tempo em trabalho rotineiro, mais tempo em cenários complexos e decisões arquiteturais. Mas não há "piloto automático" universal aqui. Testes complexos com grande número de passos ainda tendem a ser simplificados pelo modelo, e para cenários de UI precisa de mais contexto, como informações sobre objetos de página.
Alucinações também não desapareceram, então verificação final permanece obrigatória. Ao mesmo tempo, os autores observam que não viram limitações sérias por idiomas: resultados similares foram obtidos não apenas em Java, mas também em Python e Gherkin. Segundo suas estimativas, tal ferramenta pode economizar para um engenheiro de automação mais da metade do tempo escrevendo novos testes rotineiros.
O Que Isso Significa
Para ferramentas de IA em desenvolvimento, um estágio mais interessante está começando: o valor está mudando de "gerar qualquer código" para "gerar código que se integre imediatamente em um projeto vivo". A história do Sber mostra que em QA, teams que ganharão não são aquelas que simplesmente conectam LLM à IDE, mas aquelas que envolvem o modelo ao redor de sua própria base de conhecimento, verificações e regras de engenharia.
Quer parar de ler sobre IA e começar a usar?
AI News é um feed curado de notícias de IA. A Hamidun Academy ensina você a usar IA no trabalho.