Testing Dojo - Barcode challenge

30 May 2012
Lukasz Morawski

The challenge was based on one of the Weekend Testing challenges and the aim was to practice usage of test techniques, pair collaboration, problem solving and, last but not least, have some fun.

The mission is a "test this" type of mission.

barcode challenge




Find out how the barcode is generated and report any bugs within 20 minutes.


  • 4 laptops
  • pencils and paper for notes

The Dojo

We started with pairing and subject presentation. This time I was able to take a part in this dojo and wasn't limited to being the organiser.

The flash application presents a question and expects an answer. User can move forward to the next question with “Next” link and move backward with clicking on “Back” link.

Until no answer is granted, “Next” link is not visible. After answering all questions, the barcode is generated based on all the questions. Application asks for:

  • sex,
  • age,
  • nationality,
  • height (in feet and inches or in centimetres),
  • weight (pounds or kilograms),

The Dojo started and for next 20 minutes every teams were trying to solve the problem. Here are the conclusions that teams made:

  • Sex is coded in first digit, 1 for male, 0 for female. This was pretty obvious and every team quickly reported this one,
  • Age is coded in next 2 digits, directly as it was enter by user. We observe that maximum value we could enter was "99",
  • Location (or nationality) is coded on next 3 digits, the country codes were a mystery at first but as the teams noticed the codes starts from “001” value

    for the upper left flag and then continues in order. The UK flag is nineteen in a row and the code for UK is ”019”. For Poland the code is “062”,
  • Height. I think this was most time consuming because most of us started with centimetres. Turns out that thinking in the “metric” system didn’t really help in solving this challenge.

    Finally, we resolved this that the height is coded in 2 digits in inches. So we enter 1 foot and 0 inches and this gave us the multiplier - “12”.

    So 5 feet and 5 inches gives up “65” inches and so is the value in barcode. Sadly, this was not so obvious for us!
  • Weight. Coded in pounds on 3 digits with no mathematics. Entering "999" gives "999" in barcode and it was the maximum value,
  • CRC – control checksum calculated based on the rest of the code. We didn’t take the challenge with this as the time ran out.

During the Dojo, we found some bugs:

  • Moving back and then, hitting next unlocks next link: “Start application-sex:male-next-back-next”,
  • Moving back to the start makes “location” dropdown empty: “Start app-sex:male-next-age:31-next-location:Luxemburg-back-back-next-next”,
  • In height, when providing feet with no (empty) inches gives “00” in barcode. For example: 1 foot, empty inches result in “00”. 1 foot and 0 inches gives “12” barcode,
  • Undefined variables – Bug has preserved its existence on screen attached at the end of this post. Going forward, backward and forward again gives “undefined” strings,

Most of the bugs are the result of one issue – the “next” link appearing.


Table with results
Results table
Undefined error
Undefined error