HeadlinesBriefing favicon HeadlinesBriefing.com

RealDiff : Différenciation du comportement à l'exécution

Hacker News •
×

RealDiff trouve les changements de comportement à l'exécution que la revue de code source ordinaire manque. Il construit deux révisions Git, observe leurs tests, apprend une ligne de base de bruit à partir de trois exécutions de base, et signale le premier comportement modifié dans chaque arbre d'appels. Un diff de code source vous dit ce qui a été modifié. RealDiff vous dit ce que la modification a fait, y compris les effets dans des fichiers que la pull request n'a jamais touchés.

Un refactoring d'apparence inoffensive peut changer le comportement loin du fichier modifié. Par exemple, remplacer List.Sort par OrderBy modifie un moteur de tarification non modifié. Dans la démo, Discount Engine.Select Discount renvoyait "CLEARANCE_40", renvoie maintenant "SEASONAL_15". Checkout Totals.Compute renvoyait 60, renvoie maintenant 85. L'assistant modifié se trouve dans Infrastructure.Collections ; l'effet observé est dans Commerce.Pricing. Deux des trois tests qui ont exécuté cela n'ont pas fait d'assertion sur le changement.

Exécutez la démo incluse ou inspectez la pull request de démo .NET publique maintenue et son exécution hébergée réussie. La preuve crée un arbre de changements proposés temporaire, ne modifie que Sorting Extensions.cs, exécute la base deux fois plus le changement une fois, et écrit findings.json. Il vérifie que le fichier modifié ne contribue à aucun membre tracé, que la frontière est Commerce.Pricing.Discount Engine.Select Discount dans un projet non modifié, que deux sites d'appel ont changé sans réaction d'assertion, que cinq clés divergentes se réduisent à trois nœuds frontières, et que la sélection à priorité égale est déterministe entre les nouveaux processus.

Les portes .NET, Java, Node, Go, Rust et Python maintenues appliquent les mêmes règles de conformité : ensembles de méthodes identiques, comptes d'événements par clé et ordinaux d'entrée, déclencheurs de source, preuves de résumé, et zéro divergence de moteur des exécutions non vides. Statut : aperçu anticipé.

Entités clés : Personnes : issacnitin | Emplacements : GitHub, Azure DevOps, MCP