Sheet Happens identified a potential bug observed in passing on a supermarket price label. A perennial issue for testers coming across something (arguably inappropriate text) while actually looking for something else (toilet roll) is how to decide (a) whether it’s an issue at all and (b) if it is, whether this observation is the complete problem, an instance of a more general problem or the tip of a problem iceberg poking out above the surface of the stormy software seas. Or something else altogether, ideally without an annoying alliterative analogy.

Oh yes, (c) what risk to associate with it while (d) expending an appropriate level of effort in any investigation. And (e) without yet knowing how serious the problem is.

In some cases it’ll be obvious. Your word processing application crashed and all your data was lost when you tried to change the text colour? No further thought required. In other cases it’s less obvious. You noticed that instances of some object in the database have one of two formats for a particular field. Both seem reasonable and that field is used only rarely for non-critical tasks. Now you need to think.

So now you’re testing Tesco’s systems for generating price labels and you’ve see the issue but aren’t sure what to do next. Should you report an issue or not? If so, on what basis? One quick approach  is have some heuristics or standard questions for yourself. There are numerous techniques for this kind of thing (such as 7 or 5 Whys, HICCUPPSKipling’s W’s) and in this case the questions we’d ask and answers we’d give might include:

Could this violate any stakeholder expectations?

  • yes, customers wouldn’t expect to see (near) swear words on price labels
  • yes, it could affect the image of the company if it became common knowledge

How could sheet have been turned into sht on this label?

  • a typo
  • a pre-production joke that escaped into the wild
  • a malicious (ex-)employee
  • an automated process that shortens words to fit on price labels, perhaps by removing vowels

What risk factors might there be for each of these causes?

  • typo and joke: low risk of a significant issue
  • malicious employee: higher risk of significant and broader issues
  • automated process: medium, until we understand how and where abbreviations are generated

What remedial actions might we be forced take?

  • typo: check for edits that the same employee made
  • joke: remind staff about test data integrity
  • malicious employee: in-depth review of their actions, particularly in areas they had responsibility for
  • automated process: review the algorithm and its application

What evidence could help to confirm or deny the possibilities?

  • are all occurrences of sheet on toilet roll labels turned into sht?
  • can we find another product (e.g. kitchen towel) with sht on its price label?
  • does it only occur on price labels which are cramped for space?
  • are there other units that are abbreviated by removing vowels?
  • are there other plausible but inappropriate abbreviations? 

How could we collect this evidence?

  • with access to back-end data we might be able to search for it
  • with access to a store, we could physically look
  • by taking rude word, product, unit lists and removing vowels to look for problematic abbreviations
  • ask a friendly developer

Should we collect this evidence now?

  • yes, if it’s cheap and has power to discriminate between the scenarios
  • yes, if the risk of a likely (given what we know so far) scenario is high
    Working through this kind of thought experiment is usually low cost and quick, and it can help to improve your efficiency, work out your next steps, avoid compromising the mission you were on when you tripped over it, enhance your bug reports, aid the triage team’s assessment of the severity and priority of the issue and, ultimately, cause the right bugs to be reported and fixed at the right time given our best knowledge of the context.

    Image: Stuart Miles /