A way to automatically create product programs for multiple versions of a program, which lets patch specifications be written and checked that describe the intended change, if any.


Code patches are the basic blocks of software evolution and several testing and analysis techniques have been proposed to validate them. However, due to lack of specifications, most of these techniques focus on generic errors, such as crashes.

In this vision paper, we propose to adopt product programs as a practical means of writing patch specifications that could be checked using existing testing techniques.

Future work will investigate the feasibility of automatically generating product programs for real-world code patches, the ease of writing useful patch specifications, and the integration of such patch specifications with existing testing techniques.


The artifact is available at https://doi.org/10.5281/zenodo.7591940.