One bug story

Once upon a time

…there was a bug, hidden in the software. But he was different, because he, unlike all other bugs, wanted to be found. He knew that his existence might cause a lot of evil and panic in the human world. That’s why he was upset, when his line of code wasn’t found during code review. All static analysis has been done slovenly and inaccurately. That was probably the reason, why he and his buggy friend haven’t been found yet. All hope lies QA team. He believed that their tests will do the trick and he will be located. He will finally be able to disappear, not harming anyone. Because he was not a hero – he was a bug.

Our little monster was so happy when he saw a group of testers starting their job. His buggy heart had beaten faster, when he saw how new Test Cases started to appear on the screen. But wait… – he looked at the screen incredulously- those tests were incorrectly implemented! They only checked random cases, and the description was so brief. They will never find him if they continue in this manner! Our bug knew what would happen if he was sent into production. He crossed his fingers, hoping that they will come up with other ideas. He noticed how other lines of code lighting up from time to time, indicating that they were being tested. However, to his despair, his line remained dark. All of a sudden, a bug saw a new person walking into QA team’s direction.The Tester took a peek at the Test Cases and started to write something on board. Yes! He proposed Pairwise technique as an extension to standard Test Cases. Bug jumped, full of joy, knowing for sure, that he shall finally be found. However, when he glanced at the blackboard, his enthusiasm burst as a bubble. Cases mentioned in the table were insufficient… The Tester did not even point all the required pairs. Although he chose the good technique, he didn’t know how to use it properly. Bug realized that he will not be found. So, when QAs finally implemented the table, he was sitting there on his line, lonely and full of sadness, knowing that there’s no chance they will spot him. Not this time.

Next morning, some noise woke him up. This was the sound of lines of code being run! Was it possible? There was no QA team in the room. Nevertheless, tests were running with high speed and accuracy, checking more and more lines of code. That might be it! That were automation tests, going through another iteration. They were supposed to run all night, so they had to find him finally. But his enthusiasm did not last long. Why are they testing the same condition over and over again? And yes, his colleagues were being found one by one, but he was still there in the code!  Meanwhile, the testers who came to work were happy as their tests glowed green. That meant that they worked well. Or so they thought… So little they knew! Automated tests might have been fast. They might have even checked plenty of scenarios. But it didn’t matter since they were testing the same things repeatedly! Our bug started to be frustrated. How hard was it to find him?! He was in the same place all this time, didn’t even move a bit. And yet, they still didn’t notice him.

Day in, day out, testing technique has been changing. But out hero, full of sorrow, was still sitting on his line of code. Suddenly something sparked his interest- buzz-words that the people in the room were talking about. Did he hear well? “Exploration” and “testing in pairs”. That might be it! He had heard many good things about both of these techniques. Exploratory testing- for some it was the only useful technique, for the others it was too chaotic and unacceptable. And testing in pairs – “two heads are better than one”, as they say in the human world. Hope returned! When QA guys were sitting together in front of a computer, he was sure, that soon he will go to the better world, where he’ll join other solved bugs. Oh what a joy it would be! He was excited, when he saw lines of code around him, once immersed in the darkness, now starting to shine for a first time. It was the day! It was now or never. With raising excitement, he was waiting, until his line will be finally tested. But suddenly, number of lines under testing was getting smaller and smaller. Meanwhile, at the screen instead of software, some funny cat picture, football shortcuts and other interludes showed up. QA has a lot of fun in the intervals between films, checking the selective part of the software. That is how exploratory session looks like, when you are not prepared accurately. Without any elements of idea or thoughts. Hope disappeared like a flame on a match.

Current sprint passed and our bug was finally released into production. As he suspected, nobody noticed him during UAT. Because it doesn’t matter how many techniques you are using. If you are using them wrong, you will never find what you’re looking for.