HeadlinesBriefing favicon HeadlinesBriefing.com

RealDiff: Diferenciación de comportamiento para Pull Requests

Hacker News •
×

RealDiff encuentra cambios de comportamiento en tiempo de ejecución que la revisión de código ordinaria pasa por alto. Construye dos revisiones Git, observa sus pruebas, aprende una línea base de ruido a partir de tres ejecuciones base e informa el primer comportamiento cambiado en cada árbol de llamadas. Un diff de código fuente te dice qué se editó. RealDiff te dice qué hizo la edición, incluyendo efectos en archivos que el pull request nunca tocó.

Una refactorización de aspecto inofensivo puede cambiar el comportamiento lejos del archivo editado. Por ejemplo, reemplazar List.Sort con OrderBy altera un motor de precios no editado. En la demostración, Discount Engine.Select Discount devolvía "CLEARANCE_40", ahora devuelve "SEASONAL_15". Checkout Totals.Compute devolvía 60, ahora devuelve 85. El helper editado está en Infrastructure.Collections; el efecto observado está en Commerce.Pricing. Dos de las tres pruebas que ejecutaron esto no afirmaron sobre el cambio.

Ejecuta la demostración incluida o inspecciona el pull request de demostración público de .NET mantenido y su ejecución alojada exitosa. La prueba crea un árbol de cambios propuestos temporal, cambia solo Sorting Extensions.cs, ejecuta la base dos veces más el cambio una vez y escribe findings.json. Verifica que el archivo editado contribuye con cero miembros rastreados, la frontera es Commerce.Pricing.Discount Engine.Select Discount en un proyecto no editado, dos sitios de llamada cambiaron sin que una aserción reaccionara, cinco claves divergentes colapsan en tres nodos de frontera y la selección de igual prioridad es determinista en procesos nuevos.

Las puertas de .NET, Java, Node, Go, Rust y Python mantenidas aplican las mismas reglas de conformidad: conjuntos de métodos idénticos, recuentos de eventos por clave y ordinales de entrada, disparadores de código fuente, pruebas de resumen y cero divergencias de motor de ejecuciones no vacías. Estado: vista previa temprana.

Entidades clave: Personas: issacnitin | Ubicaciones: GitHub, Azure DevOps, MCP