Coming back to Chris’s story, I am not sure if I would want to call children as the “best” testers in the world. As a Context-Driven thinker/tester myself, I am little shy of the word "best"! To me, the definition of best can vary depending on the given context. What looks and works out as best for me under one particular context MIGHT or MIGHT NOT work as the best for someone else in a different context! So calling children as the “best” testers in the world is something that I feel would be little too dangerous to declare. However, children could have some of the great qualities (skills) of a good tester.
Why I think kids could be good testers:
1. Curiosity: One of the things that I find interesting in kids (from a tester's point of view) is their curiosity for everything that they come across with! You might have noticed kids asking “why” to explore about new things. By asking why they show their curiosity to develop further knowledge of the world. I often wonder "why" as adults we tend to forget to ask "why" as often as we did as kids! IMHO, any good tester should learn to ask why because this is one such question, which is capable of unearthing a whole lot of information. I find kids more spontaneous and instinctive in asking “why” and showing their curiosity for stuffs, thus making them good candidates for testers!
2. No fear of the unknown: Pass a kid an unknown toy (any unknown object). Chances are great that she would surprise you with her curiosity to explore it instead of fearing it. As we grow up our fear of the unknown also grows up, which sometimes can affect our testing in an adverse way. A good tester should not fear the unknown (new technology, new domain, new testing tool, new test team and so on); rather leaving aside inhibition should go ahead, explore and learn about it.
3. Lack of guilt after breaking something: You must have observed that kids seldom feel guilty after they break something. It’s their innocence that restricts them from realizing that they should not have broken it. This is very important for a tester. If a tester starts feeling guilty for breaking the software (in fact finding out places where the software is broken) her testing will be in jeopardy. It would be like a doctor who fears hurting a patient by giving injection! The hurt due to the injection might be painful, but the doctor must understand that it is temporary and far less lethal than the disease that might risk the life of the patient without the injection!
4. Lack of common sense: Having common sense might be a good thing. But at times too much of common sense could lead to expectations and expectations in turn might lead to inattentional blindness. Imagine asking a kid to fill up a user registration form that contains those typical fields like First Name, Last Name, Address, Date of Birth, Email Address and so on. A grown up adult has the common sense to use only alphabets in a Name, to use comma and space between Address field parameters, to use valid Email format (e.g. firstname.lastname@example.org), knows a year has 12 months and a month can have 28-31 days. But a kid if asked to fill up such a form might end up entering all kinds of garbage. Thus the kid would be (albeit inadvertently) testing if the application does have proper validation in place to detect and avoid such invalid inputs.
5. Don’t require manuals/documents: You hand over a kid a new toy and she would not ask you for the User manual to learn how to operate it. Instead she would snatch it from you and would start playing with it to figure out how this thing works! How often do you hear a tester saying something like this: “I can’t start testing without SRS/BRS/FRS/XYZRS”! If it were a kid, instead of expecting base documents to start testing (as if those requirement documents were written by god himself and they cover every detailed requirement of the client accurately) she would have started exploring (testing) right away!
6. Don’t require test cases: Kids could be far more instruction independent than an adult. They don’t require to be told how they should do certain task. In fact even if they were told to do something in some “specific” way, more often than not they would deviate from that “specific” way and would try to see other possible ways. This could be a very desirable character of a good tester!
7. Never worry if somebody would think them as idiots: Kids never bother if someone would think them as idiots if they do something silly. A part of a tester’s job is to perform all those things that a normal human being would not want to do (hence can be termed as “silly” by such normal human beings). But mostly these are the “silly” actions that uncover hidden defects in the software.
8. Don’t have to worry about deadlines: Ever asked your kid to finish brushing in 10 minutes? Then you know what I am trying to talk about here. Sometimes deadlines of tasks can affect our productivity in an adverse way. But kids could be invincible to the pressure arising due to such deadlines, thanks to their god-gifted care-freeness!
9. Ignorance could be bliss: Kids can be good examples of this proverb! What you don't know can't hurt you! Sometimes no knowledge about something could prove to be a better thing than having partial (and often misleading) knowledge about it. As adults as our boundary of knowledge grows the chance of their dilution also increases. But in case of kids their lack of knowledge could help them in getting rid of any prejudices/false-assumptions like an adult tester!
10. Vulnerable to emotional distress: Kids are emotionally more fragile and susceptible to emotional disturbances like anger, frustration, agony, sorrow etc. Thus they are better candidates for identifying problems that have potential to cause user dissatisfaction. An adult tester might not be able to identify a problem with the login process of an online game site that takes minutes altogether to allow you in. But kids would be in a better position to spot such anomalies, thanks to their sensitiveness to emotional distress (in this case frustration caused by a slow login process)!
Why I think kids could be terrible testers:
1. Inability to identify problems: Kids often lack the ability to identify problems even after uncovering them. Only triggering problems is not all about testing. One needs to identify them. Kids often lack such skills. As a tester if you are not able to identify the problem, then it does not do any good to the testing effort! Even if a tester identifies the problem she should be able to reproduce the problem reliably to help the programmer figure it out. Kids might not be as good as a skilled tester in this matter.
2. Inability to report errors: Even if a tester identifies the problem if she lacks the ability to report them appropriately, then it’s as good as nothing! Kids might not be the best testers to report errors efficiently.
3. Poor decision-makers: Kids often lack decision-making abilities. They might lack the wisdom to take well-judged decisions like an adult skilled tester.
4. We need testers; not a demolition army: A tester’s job is to find places in the software where it is broken! Think of a toy and compare it with a software (AUT). Given to a kid, chances are more that the kid would break it while trying to explore it rather than finding if the some part of the toy was broken at some invisible portions during manufacturing! If the same happens in a testing project it might turn out to be a testing nightmare for the test manager!
5. Too much of questions could backfire: Questioning skill is no doubt an essential weapon in a tester’s arsenal to dig out problems in the AUT. But questioning is a skill. Over doing it might prove unproductive. Asking the right questions at the right time is something that differentiates a skilled tester from a novice. A kid might lack such skill.
6. Enough Testing, slowdown cowboy: A kid might not realize where to stop testing! Knowing when to stop testing is as much important in testing as knowing when to start testing. But in case of kids, they might lack the maturity to understand it.
7. Might shoot at their own legs: Being adventurous is a good thing for a tester. But stepping into traps and danger zones is something a good tester should always try to avoid. But in case of kids, they might lack the wisdom to differentiate between right and wrong!
8. Could ignorance be bliss? Ignorance might be bliss at certain contexts. But ignorance of what you are doing (testing) could be termed as stupidity! If a tester does not realize “why” she is testing something (“what”), then it makes no point in the testing effort made. The same could happen with kids as testers.
9. Too much of emotion could spoil testing: Emotions have the power to help a seasoned tester to detect problems in the AUT. But too much of emotion might distract a tester from her work. Testers are like detectives who perform technical investigation on the Product that they are testing. Imagine a situation where the detective herself is too emotional and breaks down upon seeing a disturbingly severed subject on a crime scene! It could prove disastrous for the success of the crime investigation. Detectives are meant to be strong. As testers we do face many situations in our professional career, which can be termed as disturbing and hostile! But a good tester knows how to keep her head cool and faces such situations tactically and negotiates a strategic way out of it. Kids might lack such diplomatic skills.
10. Because they are kids: Yes you heard it right! They are kids. They lack the maturity of the adults. And good testing requires a level of maturity that might be hard to find in a kid! May be someone was right when he said - “Testing is no kid’s play”!
Well, wait a minute before you start complaining that this article does not prove any point! At one hand, I am trying to say that kids might have certain traits that are helpful for a software tester. And at the other hand, I am trying to counter my own argument by listing down points on how kids might result in horribly bad testers. Then where is the point of this post? Well, I would request you to look closely. In this post I have tried to identify and explore the possibility of using a small kid to test software. The idea might or might not work [I am yet to experiment it with my kid and see the results after I get married :)]. However, it appears that even though kids do have certain desirable qualities of a good tester, the lack of maturity in their thinking ability kind of offsets all those goodies! But still, it would be interesting to watch a kid testing something while an experienced and skilled tester watches from the back. In fact, there are people who have tried it already and their findings were certainly exciting. You can read more about their stories at the end of this post under further reading section. But before you head for those articles saying goodbye to this post, how about taking a couple of minutes and sharing your thoughts via commenting!
What software testers can learn from children - by Scott Barber
8-year-olds should test my code - by Michael Schidlowsky
Are you smarter than a 3rd grader? - by Ben Simo