HeadlinesBriefing favicon HeadlinesBriefing.com

RealDiff: Laufzeitverhaltens-Diffing für Pull Requests

Hacker News •
×

RealDiff findet Laufzeitverhaltensänderungen, die bei der normalen Quellcodeprüfung übersehen werden. Es erstellt zwei Git-Revisionen, beobachtet deren Tests, lernt eine Rauschbasislinie aus drei Basisläufen und meldet das erste geänderte Verhalten in jedem Aufrufbaum. Ein Quell-Diff sagt Ihnen, was bearbeitet wurde. RealDiff sagt Ihnen, was die Bearbeitung bewirkt hat, einschließlich Auswirkungen auf Dateien, die der Pull Request nie berührt hat.

Ein harmlos aussehendes Refactoring kann das Verhalten weit entfernt von der bearbeiteten Datei ändern. Beispielsweise ändert das Ersetzen von List.Sort durch OrderBy eine unbearbeitete Preis-Engine. In der Demo gab Discount Engine.Select Discount früher "CLEARANCE_40" zurück, gibt jetzt "SEASONAL_15" zurück. Checkout Totals.Compute gab 60 zurück, gibt jetzt 85 zurück. Der bearbeitete Helfer befindet sich in Infrastructure.Collections; der beobachtete Effekt befindet sich in Commerce.Pricing. Zwei der drei Tests, die dies ausführten, machten keine Assertion über die Änderung.

Führen Sie die enthaltene Demo aus oder inspizieren Sie den gepflegten öffentlichen .NET-Demo-Pull-Request und seinen erfolgreichen gehosteten Lauf. Der Beweis erstellt einen temporären vorgeschlagenen Änderungsbaum, ändert nur Sorting Extensions.cs, führt die Basis zweimal plus die Änderung einmal aus und schreibt findings.json. Es verifiziert, dass die bearbeitete Datei null verfolgte Mitglieder beiträgt, die Grenze Commerce.Pricing.Discount Engine.Select Discount in einem unbearbeiteten Projekt ist, zwei Aufrufstellen ohne Reaktion einer Assertion geändert wurden, fünf abweichende Schlüssel zu drei Grenzknoten kollabieren und die Auswahl mit gleicher Priorität über neue Prozesse deterministisch ist.

Die gepflegten .NET-, Java-, Node-, Go-, Rust- und Python-Gates wenden dieselben Konformitätsregeln an: identische Methodensätze, Ereigniszählungen pro Schlüssel und Eingangsordinals, Quell-Fallstricke, Digest-Beweise und null Engine-Abweichungen bei nicht-leeren Läufen. Status: frühe Vorschau.

Schlüsselentitäten: Personen: issacnitin | Standorte: GitHub, Azure DevOps, MCP