1. A computer implemented method of preserving functionality in a computer program by generating customized mock inputs, comprising: identifying, by at least one processor, a set of functionalities of the computer program, wherein a first functionality of the set of functionalities has a first input, and a second functionality of the set of functionalities has a second input; determining a first constraint on the first input, wherein the first constraint defines a set of values of the first input which enables the first functionality; determining a second constraint on the second input, wherein the second constraint defines a set of values of the second input which enables the second functionality; generating a first constraint satisfaction problem including the first and second constraints; determining whether a first tuple of mock input values exists that satisfy the first constraint satisfaction problem; and providing, in response to determining that the first tuple exists, the first tuple to the computer program as the customized mock inputs.