The need to test — shipping better softwares

A lot of the things we do everyday requires some form of testing and we don’t even realize it.

From plugging your phone to a charger and checking if it’s actually charging to withdrawing money from an ATM and making sure it dispense the requested amount. The list goes on.

In schools, students are taught and also tested in order to measure their understanding of a particular subject/topic.

Looking at all these different scenarios, we can quickly see that they all have something in common which is: Input/Output.

Software testing is no different. We give an input and expect to get a desired output back in the course of making sure everything is working perfectly.

What is testing

Testing is the process of evaluating the correctness of a system.

Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test — wikipedia

If you’re building a system where there can be no room for errors, testing is absolutely necessary.

To test doesn’t mean we release bug-free softwares. Just like water resistant phones aren’t really bulletproof to water (there’s a limit).

No software is perfect. But with proper evaluation and testing, we can make it look like it is.

What it means is, we release high quality softwares that produces fewer surprises in the real world.

Ok! But if testing is so great, then why aren’t there a lot of developers doing it?

Why developers don’t like testing software

Many developers give different excuses for not writing tests.

The most common of these excuses is that it takes a lot of effort to write and increases development time.

Not until of recent did I cultivate the habit of writing tests for everything I build. Testing used to be boring to me and I never saw the benefit.

After all, if all code runs perfectly why should I take the time to write any stupid test that my manager/users doesn’t even care about?

Well…not true. You are going to need to write tests if you want to ship better software and get that long vacation.

Furthermore, there’ll always be bugs; No matter how smart of a developer you are. When you don’t have test in place, fixing one bug will most likely lead to another and you’ll end up spending most of your time hunting bugs instead of getting creative.

Like everything else, getting used to writing tests will take some time. But it’ll be worth it in the long run.

These are just a few of the excuses developers make for not writing tests. If you’d like to read more, check out this article written for Hackernoon.

Why testing is so important

There a lot of good reasons to write test for the software or products our users consume. As humans, we all constantly make mistakes. Some unimportant, while others are expensive or catastrophic.

We need testing to verify and validate our work to ensure our product/software functions as expected before shipping to production.

Here are some important reasons for testing software

  1. To catch bugs early on in the development phase
  2. To meet specifications of stakeholders.
  3. To ensure quality of product
  4. For effective performance of software application or product
  5. Automated testing helps discover errors if added features breaks anything.
  6. Sleep better at night.

Software is serious business that’s very costly. And you either choose to pay that cost upfront by writing tests for your software/product or pay a far greater cost by fixing bugs after releasing your software to the world.

As you can see, the time invested in writing tests is never wasted, saves us a lot of headache along the way and is undoubtedly super rewarding.

Thank you for reading and happy testing.