“However beautiful an app is, it’ll always have bugs”

Have you ever imagined why you love your favourite app? Is it its appealing interface? The responsiveness or adaptiveness? The features it offers? Perhaps, it’s ease of use?

I’m sure you have applications that do not appeal to you in any way. What made these other apps so different?

Often, you’d wonder if these apps were actually tested before it was pushed into production. Yeah, I know, I get that thought too.

Simulating use with testing

You see, every app you love have undergone rigorous testing procedures to give you the utility or experience you are currently deriving from it. It’s why you’d pay for your favorite apps. The companies developing these apps want their customers - you and me - to come for more. They are keen on fixing loopholes in designs, security, usability before the customers encounter them. Customer needs are sometimes undefined; people use apps in unpredictable ways that can often render the potential of an app useless.

In order to ensure that these apps respond predictably well, these apps are tested by simulating possible human behaviours when in use. By testing, you encounter the issues first and possibly fix them before the customers use the app and find out these issues themselves.

The lesser the bugs found by the users, the happier they are; and the image of the company will only get better.

Developers sleep better when they have the assurance that the codes they write work optimally.

What happens when testing is not done

Here is a scenario: Bayo is a freelancer. He gets gigs every week from a freelancing website, let’s call that Freekabo. One day, he was contacted by a company - Datahub that urgently needed a simple app for data collection. They had clients waiting to use this app. “This is super easy”, Bayo thought. He agreed on the fee he was offered and he got to coding right away. Bayo was done within two days.

Bayo is a pretty good software developer. He wrote unit tests for this project and all of them passed. He reached out to Datahub that he was done. Based on Bayo’s solid reputation on Freekabo, they trusted everything would be well and was asked to deploy. Then came the app’s launch day. Clients of Datahub have downloaded the app and were set to collect data. At this time, Bayo gave himself a treat by ordering his favourite barbeque chicken. He slept after eating. He didn’t want his sleep disrupted so he silenced his phone before sleeping. After about five hours of sleep, he woke to check what the time was and saw 80 missed calls and some text messages from Datahub.

You have an idea where this is going, don’t you?

“What can possibly make Datahub call Bayo this much within this short time?”. I mean, no one calls you that much unless something terrible has happened, right? Apparently, the app crashed when they all submitted a form. Datahub was under duress and needed Bayo to fix the issue. Bayo had to apologize and got to fixing the issue immediately. By the time he was done, the day was already over. Datahub had lost its clients. A stained reputation for Bayo.

What do you think could have been done to prevent this? Think about it.

Break your software first that users may not

Testing cannot be overemphasized; no wonder it’s a part of the Software Development Life Cycle.

There is a huge difference between successful software companies and some unverified apps in the market. That huge difference is Software Quality Assurance. Many Companies like Google, Facebook, Twitter lay emphasis on the quality of their software.

For example, Facebook launched “Facebook Bug Bounty” that offer special rewards for high-quality bug reports from the public. Google also launched a bug bounty program to root out vulnerabilities in third-party apps on Google Play. It is said that Google will dole out $1000 for issues that meet its criteria. Many companies have taken this approach of seeking external testers to break their software to help them find issues before the customers find them.

Why people would pay for their favorite apps

Here are a few reasons you love your app so much you could pay for it:

  • You are confident that it is secure
  • It provides you with the exact feature you want (maybe more)
  • You find it very easy to use
  • It does not give you any impression of a Security loophole
  • It looks good, maybe awesome

These points above can be regarded as a standard for Software Quality and are carried out for surety when the App is tested against the requirements to ensure deviation is avoided and bugs or issues are fixed as soon as possible before it is shipped.

Software is getting smarter. Many are used to the seemingly smart nature of the applications they use and as a result, people get impatient when they encounter issues with an application. And when the issues are not resolved as quickly as possible, some voice out frustrations by any means necessary which almost usually leaves a bad impression about the application in the mind of someone that has never used it. Systems are getting complex, and complexities open doors for loopholes. Not everyone is patient to report issues calmly when they encounter issues while using a software. As a Company, you do not want your Customers encountering bugs before you do, hence the need to test. Testing absorbs confidence into the applications you build, which in turn makes your customers happy.