10

We have a curious 6-year old daughter and she asks a lot of questions. Me and my wife both do Quality Assurance, she does it full-time, I do it part-time.

Currently, I think we have not managed to explain her what we do in a clear and fun way. So far she thinks that I create computer programs, my wife checks them and creates tickets for me (she only knows parking, movie and theater tickets - I don't think she understood what we meant by "ticket" in this case). She uses a computer and other electronic devices from time to time and knows that I write "code" so that computer can follow my instructions.

How would you explain what software testers do to a 6-year old in a, preferably, clear, fun and engaging way?

5
  • 1
    Write a simple program with errors. F.e. - choosing a blue color for brush results in the red or green color. Play with this program with the kid. "Oh, it is a problem! Now we have to create a ticket so that the programmer knows about it and can fix it".
    – Embedded
    Commented Jun 13, 2017 at 14:18
  • 1
    @Alex.S interesting idea - I was thinking about introducing some bugs in a Scratch program (we tried it couple times) and let her find them to make a program work. Thanks.
    – alecxe
    Commented Jun 13, 2017 at 14:22
  • 1
    Let her do it. There are cute robots that can be programmed with ease. And yes, for a girl, those robots do come in pink. :-)
    – Yu Zhang
    Commented Jun 13, 2017 at 20:56
  • workingmother.com/stem-toys-teach-kids-to-code
    – Yu Zhang
    Commented Jun 13, 2017 at 21:11
  • uncubed.com/daily/…
    – Yu Zhang
    Commented Jun 13, 2017 at 21:12

5 Answers 5

7
+100

Pretend you are going to lend a toy (a teddy bear) to a friend 'cos they really want it.

Before you lend the toy you want to make really sure it will make your friend happy.

You have to have dinner first though so you need to make a note of it to remind you to come back to it after dinner.

Dinner is eaten.

You know your friend really likes golden yellow teddy bears, especially those with soft fur.

You check the teddy and it definitely is golden yellow and has soft fur.

You lend it to your friend.

That should cover: requirements, ticket, testing and verification :)

So the trick is to view the universe from her point of view - and that is a great lesson for the adult world and seeing a business from a customers point of view rather than the businesses.

You may also find the following book helpful:
I am a Bug – July 31, 1999 by Robert Sabourin (Author)
https://www.amazon.com/dp/0968577407

3
  • Covers testing... and half a dozen other key concepts! Commented Jun 13, 2017 at 14:28
  • Oh, you've gone much further :) But, I like the idea of applying day-to-day things as reflections to software concepts. Thanks, I'll give this topic some time to mature.
    – alecxe
    Commented Jun 13, 2017 at 15:06
  • 1
    When I was that age I started to realize that the difference between me and adults was that my whole universe was toys and food today but adults seemed to always be busy w/ 'other stuff' and I could never get this across to them. I told myself to remember this interesting fact. When I got older I found that ah, other stuff was working, shopping, planning, driving, banking, programming, etc, etc. I also noticed that time was changing really_quickly_. My 7 year summer lasted "forever". My 8 year old summer seemed strangely faster. 40 years later seems like 'just a few weeks'. Fascinates me Commented Jun 13, 2017 at 15:39
4

Some of our current thoughts:

  • build a fun Scratch program, then introduce "bugs" in it and ask her to find and fix them making the program work again. Then, explain that this is exactly what we are doing
  • "I am a Bug" book by a software tester Robert Sabourin which, it looks like, solved the very same problem 18 years ago (have not yet seen the contents of the book though):

    Have you ever tried to explain your software career to a six-year-old? While exploding satellite launch software might hold their attention for a few minutes, defending Function Points versus Lines of Code will probably be a surefire way to lose your audience.

    Software tester Robert Sabourin has tried to bridge that information gap with his children’s book I am a Bug, and he makes his mission clear in the book’s title page. “This,” he writes, “is a picture book for Mommies and Daddies who help make Computer Software. We hope you have fun explaining your job as you read with your children!”

2

Pick a video game of her favorite. And explain how the game works. Tell her what happens when she uses the game controls. Later, explain to her how the game works and explain how the tester ensures the game works properly.

2

Tell your child that it's like the coders give you a vending machine.

Then you put candy and chips into the vending machine, you decide how much of each item you want to start with. You also get to decide the prices on the items in the vending machine. - Sometimes you don't, but best case scenario you get to create your test data.

Then you start by doing the easy tests:

YOU: "If I put in a dollar, and I select A1 do I get the bag of chips? Do I get any change?"

If you should get the bag of chips, or you don't get the correct change, then you call the coder over and show them:

YOU: "Hey I did this, and I didn't get what I wanted"

The coder sometimes looks at the problem and knows immediately that you did something wrong.

CODER: "You hit 1A, not A1. Try again using A1"

But sometimes you put money in, hit A1 and the bag of chips starts to come, but gets stuck. Then you have to show it to the coder, and the coder will say:

CODER: "Well that's not my problem, you have to talk to the architecture guy. He probably made the gap between the glass and the products too narrow. I told him I wanted more space because we wanted to put candy and chips in the vending machine, but he said it costs too much money."

Then you have to deal with the coder and the architecture guys going back and forth. You just wanted a bag of chips - but THEY turned it into a "Who's engineering degree is better?" contest. Which is why you got out of dealing with code or architecture by doing software testing. So you just write the issue down and hand it to them to figure it out while you try to move on and do more testing.

That issue is a bug. Coder's HATE the word bug ... it means they are not infallible ... but they are, and so are you, and so is the architect... everyone makes mistakes.

Maybe once these two stop working against one another and actually try to get something done, you get a fix to the "glass too close to product" issue. Then you can test it again on the vending machine. Until then you can't do any more testing, so you just drink coffee, and browse Facebook.

You to try to get all of the products out of the machine, and you keep checking that each time the machine took your money, gave you the right candy or chips, and gave you the right change.

Once you've done all that work, you have to try to break the vending machine. You start doing "silly" things like putting no money in and pushing buttons. If you got candy, but didn't pay for it that would be great - but in the real world that means that the vending machines would always be empty.

If the vending machine wasn't built correctly because the coder assumed no one would ever try to get candy without paying money they'd lose all their candy. Then the coders wouldn't get money or have candy. That would be sad...

If all the products got stuck in the vending machine because the architect didn't know that a bag of chips can turn sideways as gravity takes over, then people that did pay for chips wouldn't get them. That would also be sad...

So your job is to help make sure the vending machine works the right way. But you also have make sure that the vending machine doesn't work if someone tried to use it the wrong way.

Once you say the vending machine is ready, then your company starts putting them everywhere for everyone to use. Because you did your job your company starts making a lot of money from people buying candy and chips from the vending machines.

That's just functional testing though. There are other tests:

Usability tests - Are the buttons on the vending machine too high up for a child to reach?

Performance tests - How long does it take to get my candy? How long will it take a bunch of people in a line to get candy out of the machine?

Security tests - Does the vending machine take credit cards? Does it have WIFI? Can I get all of the credit card numbers from the vending machine... to buy candy for myself at a different vending machine...

1
  • Great answer to "how to test a vending machine". However I think you've gone a little beyond what a 6 year old will be able to digest. Money, gravity, functional testing are a little more advanced. Commented Jun 24, 2017 at 9:59
1

At a high level, we can give this example to the kid:

You go to a toy shop to buy a musical toy. You pay $10 for it and come back home. But when you reach home, you find that the toy is not working. It's not playing music. It's so disappointing. Then you can ask the kid; wouldn't it be better if we check whether the toy is working as expected; in the shop itself? So, checking whether a toy is working as expected (better if done at the time of buying the toy), is testing. And the person (may be mom or dad of the kid) who does it for the kid, is a tester.

You can explain her in step by step procedure what all you would do in order to to ensure that the toy adheres to the specifications.

2
  • Making a toy not working and then revealing a broken toy to my kid sounds like a suicide :) Okay, to be serious, nice idea, thanks!
    – alecxe
    Commented Jun 23, 2017 at 13:06
  • 1
    Oh..didn't know that. Just tried :-). Do let me know how did you finally answered her questions around it. To be honest, this is a great question; made me think on different lines. :)
    – Aalok
    Commented Jun 23, 2017 at 13:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.