Last semester for my final exam in an Intro to Programming class I was teaching, I decided to give a series of small programs that had a number of bugs in them.
I gave them copies of the expected output as a 'control'.
The students were then asked to find / fix the programs to get them to compile and run.
I think this really closely matches what software developers do in the real world, and was the closest analog (pardon the pun) -- to some kind of hands-on skills tests that I've seen other career college curriculums use.