In doing maintenance there is always a risk that inadvertently errors are introduced. For that risk there is no fundamental difference in doing maintenance by hand or using automated solutions. However , automated solutions have the large advantage that a conversion is repeatable and scales to a large set of source files without additional costs.
In the absence of formal proofs that the behaviour of code before and after a conversion is identical the best way to gain confidence is by testing. Testing cannot give 100% guarantees but by showing that at least all branches in code are touched by testing it can provide sufficient confidence in the conversion.
Therefore the project will address the following research question: How can we automatically create functional test cases that will exercise a function on ‘all’ possible inputs and then compare results before and after a conversion?