Attack of the Bugs: How to Defeat Bugs in Software

After the hard work of development, the long-awaited release date arrives. Like the characters in a disaster movie–who don’t know they are in a disaster movie–all seems peaceful and tranquil. Then it happens. A message from a user arrives. A bug has been found. A siren sounds, phones buzz, a flurry of chat messages ping, […]

Category

QA/Testing

Posted

Oleksandr

Oct 26, 2023

After the hard work of development, the long-awaited release date arrives. Like the characters in a disaster movie–who don’t know they are in a disaster movie–all seems peaceful and tranquil.

Then it happens.

A message from a user arrives. A bug has been found.

A siren sounds, phones buzz, a flurry of chat messages ping, and a ton of panicked emails from the client arrive. If this were the aforementioned disaster movie, it’s likely that a random teenager with an aged laptop has a plan to save the world from the aliens or unprecedented disaster — if they can convince people to listen to them. For software bugs, people rely on a team of developers to urgently fix the problem.

The hotfix is ​​tested. The client is reassured. But this story isn’t going to end with the annihilation of the alien or stopping of the disaster. This story will continue to the managers’ meeting where the bug disaster will be discussed and blame be assigned.

One of the first questions often asked in this summit is, “Why didn’t QA find this bug during testing?”

QA engineers’ direct work is to find bugs. If one slips through, many times, people want to blame QA and the whole team of testers is scratched.

That’s basically the same as the people in an alien movie asking why the military didn’t just shoot the aliens. However, aliens usually have out-of-this-world (ha!) technology. Blaming the military and firing them all isn’t going to solve the problem.

How justified is such a response?

Unfortunately, some believe QA is a net that will catch all the bugs, but this is an incorrect metaphor. It mistakenly devalues –​​ or rather simplifies — the difficult system of software development, and turns it into a two-stage process: development and testing.

However, quality is not something describable by a single step, a person, or a “grid,” regardless of experience and time. The modern process of software development should be considered as a sequence of many steps, each of which contains a number of actions related to quality and each in its own way increases the overall quality of the product. It’s incorrect to assume quality can be ensured by a single testing step performed by a person or a role.

On the contrary, in order to avoid such situations, people need to perceive the team as a whole. It doesn’t matter who messed up so much as it matters how to make sure that it doesn’t happen again. Clarification of the reasons does not take place in order to find the “scapegoat,” it takes place to prevent a similar situation in the future. If the bug got into production, it means that everyone messed up.

QA is, of course, an expert at finding defects, but testing is only one part of a complex mechanism that must be healthy to create quality software.

And that, typically, is the usual message of all alien-attack-and-other-disaster movies. Everyone unites as a nation or planet and works together to survive.

In software development, everyone must play a role in ensuring quality, and creating an environment where critical, open and honest discussions about everything that affects quality is not just necessary, it is valued and highly encouraged.

At Swan Software Solutions, we create high-quality software through an integrated QA process. We also provide QA services. If you’d like to discover more about how we can help your company, schedule a free assessment.