Using software testing to move students from trial-and-error to reflection-in-action | Synapse