Friday 24 October 2014

Asking the right question?

I played a game of who-is-who yesterday. The game is all about eliminating options until you are able to guess who your opponent is. In other words: It is all about probing for specific information, that will give you a complete picture of your opponent – Much like testing an application, where you’re verifying and validating until you reach agreed level of knowledge.
 
Probing for information is about asking questions. Poor questions and poor questioning techniques interfere with the information gathering by creating confusion and misinformation, just like poor test cases will lead to false positive and negative results.
 
Question: So thinking about questions like test cases and visa verse I started wondering if questioning techniques for human communication could be applied when writing test cases…?
 
To answer a question like that I had a look at questioning techniques from the HR & communication world, and is seems that there are many takes on how to ask a good question, and interesting enough several takes on inefficient questioning. Less effective questioning consists of: Closed ended questions – Answered by Yes or NO and Leading questions – Containing the answer imbedded in the question. A test step is answered binary (pass or fail) and contains the answer in the step as expected result, suggesting that the traditional test case is using less efficient methods for gathering information?
 
I tend to think that questioning a person and testing a machine are miles apart. When questioning a person you have the benefit of verbal and nonverbal communication. When testing a machine you get observations that need to be checked versus an expected result. That is why you need to ask a closed ended question in your test case, and have the answer you are looking for in the case – Something that (according to the communication experts) is a NO-NO when talking to people.
 
Consider this example:
 
 
Human interpretation
Machine interpretation
There is no definition of how to identify a bitch.
Outcome is complicated, Mr. Jackson’s and my perception of ‘the bitch variable’ might differ, meaning that answer will never be unambiguous enough to get a result that would work in a game of who-is-who.
Check vs. variables will be BitchVariableExists = Yes or No and BitchVariablePopulated = Yes or No?
Outcome is simple, either variable exists or not, and if it exists it can be either populated or not.
 
This means that the test case prepared by Mr. Jackson would work if run vs. a machine, but not in an analogue game of who-is-who.
 
Conclusion: Questioning techniques for people communication are not necessarily a benefit when writing test cases, as these must be unambiguous, hence have to rely on the closed ended questions. Questioning techniques are however paramount when you gather from your peers and human test oracles information for writing your test case.
 
Happy testing & have a nice weekend!
 
/Nicolai

No comments:

Post a Comment