ReviewBench: GitHub cria benchmark para revisão de código com IA

O GitHub acabou de lançar o ReviewBench, um benchmark aberto para comparar agentes de revisão de código que usam inteligência artificial. A ferramenta reúne mais de 219 pull requests de 187 repositórios públicos, distribuídas por 19 linguagens, para medir não só quantos problemas cada sistema encontra, mas também a quantidade de alertas incorretos que produz.

- Advertisement -

ReviewBench tenta aproximar os testes da realidade

O ponto de partida do GitHub foi uma análise de 103,9 milhões de pull requests. A empresa utilizou esses dados para aproximar o benchmark da distribuição real de linguagens, tamanhos de repositório e formatos de alteração encontrados na plataforma.

Ainda assim, o ReviewBench não replica essa amostra à escala. O conjunto público inclui 219 pull requests, selecionadas a partir de 187 repositórios com licenças de código aberto.

Para além disso, o GitHub deu mais foco a alterações de dimensão intermédia e a mudanças que envolvem vários ficheiros. Desta forma, reduz sobretudo a influência de pequenas edições num único ficheiro, que nem sempre representam o trabalho mais exigente de uma revisão.

Esta escolha é importante porque um agente pode ter bons resultados em exemplos curtos e controlados, mas revelar limitações quando precisa de compreender relações entre vários ficheiros. É precisamente esse tipo de diferença que o benchmark pretende tornar visível.

Várias fontes ajudam a criar o conjunto de referência

O processo usa o Claude Sonnet 5 como avaliador de linguagem. O GitHub publicou a grelha e a configuração utilizadas, o que permite perceber como cada descoberta foi analisada e repetir a avaliação com os mesmos critérios.

- Advertisement -

Para reforçar este processo, engenheiros seniores que não participaram na construção do conjunto voltaram a classificar todos os problemas de referência. Segundo o GitHub, houve concordância de 96,6% entre essa avaliação independente e as classificações usadas no ReviewBench.

Precisão e cobertura podem dar resultados diferentes

ReviewBench

Uma das ideias mais úteis do ReviewBench é não apresentar uma única classificação como se existisse um vencedor universal. Na revisão de código, há equipas que preferem receber mais alertas, enquanto outras querem reduzir o ruído e analisar apenas problemas com maior probabilidade de serem importantes.

Por isso, o benchmark separa duas famílias de métricas:

  • As métricas grounded comparam cada agente com os problemas já existentes no conjunto de referência. Assim, permitem uma comparação direta entre sistemas.
  • As métricas augmented analisam também os alertas que não coincidem com os problemas de referência. Desta forma se um agente encontrar uma falha válida que nenhum dos revisores originais identificou, pode receber crédito por essa descoberta.

Em cada família, o benchmark calcula precisão, cobertura e F1. Assim, os resultados podem mostrar tanto a capacidade de encontrar problemas como o equilíbrio entre cobertura e ruído..

Os resultados podem ainda ser filtrados por gravidade e categoria. O ReviewBench distingue, por exemplo, problemas críticos, médios e baixos, além de áreas como correção, segurança, fiabilidade, manutenção e testes. O peso dado à precisão ou à cobertura também pode mudar através da métrica Fβ.

O GitHub diz que os resultados acompanham os testes reais

O objetivo de um benchmark não é apenas ordenar ferramentas. Também deve indicar se uma alteração que melhora o resultado em laboratório tem probabilidade de melhorar a experiência de quem utiliza o produto.

O GitHub afirma que tem usado o ReviewBench para avaliar versões sucessivas do Copilot code review. De acordo com a empresa, as alterações observadas no benchmark têm apontado na mesma direção dos testes A/B realizados em produção.

A título de exemplo, num teste recente com uma revisão baseada em vários modelos, o GitHub registou aumentos na taxa de comentários considerados úteis, na cobertura e no volume de comentários, além de uma redução do custo por revisão. 

Este resultado deve ser lido com alguma cautela. Os dados são apresentados pelo próprio GitHub e não transformam o ReviewBench num substituto dos testes com utilizadores. A avaliação em produção continua a ser necessária, sobretudo porque mais comentários não significam automaticamente uma revisão melhor.

Qualquer equipa pode testar o próprio agente

O ReviewBench está disponível como pré-visualização de investigação no site oficial. Os interessados podem consultar o conjunto de dados, explorar o quadro de resultados e submeter o seu próprio agente de revisão de código.

O processo começa com o registo através de uma conta GitHub e a configuração de uma imagem de contentor. Depois, é possível testar o agente num conjunto inicial de 25 pull requests. A avaliação final utiliza as 219 pull requests, em três rondas, com o mesmo avaliador usado nas restantes submissões.

Na prática, isto pode ajudar equipas portuguesas e europeias a comparar ferramentas com critérios mais próximos das suas necessidades. Uma empresa preocupada sobretudo com segurança pode analisar essa categoria, enquanto uma equipa com muitos programadores pode preferir uma ferramenta com menor ruído e maior precisão.

O maior mérito do ReviewBench está, assim, na transparência. O benchmark não elimina todas as limitações de uma avaliação feita por IA, mas torna mais fácil ver que dados foram usados, que problemas contam e que compromisso existe entre encontrar mais falhas e gerar menos falsos alarmes.

Fica ainda mais conectado:

fonte

- Pub -
David Ventura
David Ventura
A simbiose entre a vida quotidiana e o prazer do desfrutar da tecnologia. O meu objetivo é claro. Ajudar quem lê a tomar decisões informadas através de linguagem clara, análises honestas e sem filtros comerciais. Encontra mais conteúdo em: IG: @davidventura.ph