[TIP] Talking to a test-is-from-outer-space crowd

Mark Sienkiewicz sienkiew at stsci.edu
Tue Apr 12 11:40:17 PDT 2011


Gary Bernhardt wrote:
> On Apr 12, 2011, at 7:34 AM, Mark Sienkiewicz <sienkiew at stsci.edu> wrote:
>   
>> I mostly agree, but not with this part.  You can't teach people by throwing all the complexity at them at once.
>>     
>
> Important qualifier: "when they're learning on their own". In a pairing situation, I find that this concern doesn't matter much. (And they'll learn far faster. And they'll see the immediate utility in the thing rather than having to appreciate it as an abstraction.)

I think the concern is still there, but with pairing you can include 
more complexity than you might otherwise.  The second person of the pair 
is acting as a guide, so the student doesn't have to understand 
everything.  If the teacher is careful about which parts to explain and 
which parts to gloss over, the student can pick up an understanding of 
the system without needing to understand every detail.

In the unittest example, a teacher might provide the basic structure of 
a test.  Explain to the student "unittest instantiates one of these 
objects and then calls one of the test methods; you write the test 
method".  If the student gets confused, the teacher can provide 
direction, so that the student doesn't get lost for hours.  When you see 
that they have a basic understanding, you can fill in more of the details.

If the knowledge you need to convey is not too far beyond what the 
student could gather on their own, then pairing works well.  You want to 
choose the complexity to maximize the learning.  Too little, and they 
could have gotten more out of that session; too much, and they don't 
grasp it all.

I expect that you think "this concern doesn't matter much" because you 
made good choices in this area.  You wouldn't think of teaching a 
student "This is a variable" and then jump into "now we are going to use 
MPI to implement map/reduce parallel processing, using sqlalchemy to 
join tables in our database to get the input and output 3D models for 
Blender".  It's too big a step.

Mark

p.s. Of course, you don't necessarily formally declare "student" and 
"teacher" when pairing, but it accurately describes what happens sometimes.




More information about the testing-in-python mailing list