HeadlinesBriefing favicon HeadlinesBriefing.com

RealDiff: Diferenciação de comportamento para Pull Requests

Hacker News •
×

RealDiff encontra mudanças de comportamento em tempo de execução que a revisão de código fonte comum perde. Ele constrói duas revisões Git, observa seus testes, aprende uma linha de base de ruído a partir de três execuções base e relata o primeiro comportamento alterado em cada árvore de chamadas. Um diff de código fonte diz o que foi editado. RealDiff diz o que a edição fez, incluindo efeitos em arquivos que o pull request nunca tocou.

Um refatoramento de aparência inofensiva pode mudar o comportamento distante do arquivo editado. Por exemplo, substituir List.Sort por OrderBy altera um mecanismo de precificação não editado. Na demonstração, Discount Engine.Select Discount retornava "CLEARANCE_40", agora retorna "SEASONAL_15". Checkout Totals.Compute retornava 60, agora retorna 85. O auxiliar editado está em Infrastructure.Collections; o efeito observado está em Commerce.Pricing. Dois dos três testes que executaram isso não afirmaram sobre a mudança.

Execute a demonstração incluída ou inspecione o pull request de demonstração .NET público mantido e sua execução hospedada bem-sucedida. A prova cria uma árvore de mudanças propostas temporária, altera apenas Sorting Extensions.cs, executa a base duas vezes mais a mudança uma vez e escreve findings.json. Ele verifica se o arquivo editado contribui com zero membros rastreados, a fronteira é Commerce.Pricing.Discount Engine.Select Discount em um projeto não editado, dois sites de chamada mudaram sem uma asserção reagindo, cinco chaves divergentes colapsam em três nós de fronteira e a seleção de prioridade igual é determinística em novos processos.

Os gates .NET, Java, Node, Go, Rust e Python mantidos aplicam as mesmas regras de conformidade: conjuntos de métodos idênticos, contagens de eventos por chave e ordinais de entrada, gatilhos de fonte, provas de resumo e zero divergências de mecanismo de execuções não vazias. Status: prévia antecipada.

Entidades principais: Pessoas: issacnitin | Locais: GitHub, Azure DevOps, MCP