There are a couple of ways you could evidence it as mentioned. Giving out code with errors and having pupils fix it is one way, and it also covers ‘reading and interpreting’ a program. Having pupils print each version of their program, with errors being fixed along the way is another(you’ve already mentioned both of these).
Another way would be just to have pupils write a wee evaluation of how successful they were (after completion), mentioning any errors they encountered and how they resolved them. The problem with this is that you could cheat and lie about it, but you could do that with every other piece of evidence too I suppose.