Based on Richard's three definitions, I've created three example questions that compare two variables.
FunctionCompare asks students to write a function that does this.
InputCompare requires them to input two numbers before doing the comparison.
TemplateCompare defines the variables in the test cases, as the template has been modified to allow this.
All approaches have merit, and it depends on your students and what you aim to teach to figure out which is best.
I currently design for a curriculum very focused on input and output, so I'd use InputCompare, but also the input function is rarely used in real world programming, so if that's your goal then FunctionCompare is probably the best bet (as functions are very real world programming).
TemplateCompare is neat, but as far as I can tell is only necessary if you need students to name their variables a certain way, which you may, but I've never had that need. Having students come up with their own variable names (and learning the hard way that choosing bad variable names is a bad idea) is part of the fun of teaching programming to me! (Note this isn't to say template customization is worthless, quite the opposite I use it a lot, but in this particular use case I don't see it as necessary).
Let me know if you have any questions about how these work.
Kind regards,
Henry