Developer Tools

Neural Change Prediction maps code changes to behavior without execution

Automatically learn how mutations alter program output for smarter debugging

Deep Dive

Researchers Laura Plein, Souhila Zidane, Jordan Samhi, and Andreas Zeller present Neural Change Prediction, a technique that learns associations between software changes and their dynamic effects by automatically applying numerous mutations and observing how output changes. The method requires executing the program under test for each mutation. From these (change, effect) pairs, models are created that (1) for a desired behavior change predict where and how to change the code, and (2) for a given code change predict its effect on output. The technique does not require prior knowledge of the code or its semantics. Case studies on CSS configuration files and Python programs demonstrate generality and wide applicability.

Key Points
  • Predicts code changes needed to achieve a specific behavioral outcome (e.g., bug repair or feature addition).
  • Forecasts behavioral effects of a given code change without re-executing the program.
  • Fully automatic, no prior semantic knowledge required; validated on CSS and Python programs.

Why It Matters

Automates reasoning about code changes, potentially speeding up debugging, testing, and automated program repair for any executable software.