Software testing or software quality assurance (QA) as some may call it has become an integral part of the software development life-cycle (SDLC). I will write a piece about SDLC in my subsequent article, so stay tuned. you can however do a quick google search on what SDLC is all about if you don’t already know. The software testing arm of information technology is fast growing. However, it is my opinion that as at the time of writing this article, the demand for this skill largely outweighs the supply even with the growing community of testers. Before I go further I will like to answer the following questions
What is Software Testing (QA): There are several definitions of software quality assurance, but simply put, it is the series of processes and activities put together to ensure the delivery of an error free (or minimal errors) software application i.e. either a web application, mobile application or a desktop application.
Sometimes most business owners, product owners and company executives ask the question why do I need to hire the services of a QA engineer. Let me tell you a quick story to answer that question. Sometime in 2014, while working on an e-commerce giant’s application, we built an e-wallet feature which enabled users to deposit and withdraw funds to and from their bank accounts and debit cards into this wallet. It was a fantastic idea at the time as customers could easily get refunds deposited into their wallets and then decided what to do with those funds.
The e-wallet feature was developed, but prior to deployment a system glitch as we liked to call it in the tech world (a bug) was raised by a tester who noticed that after purchasing an item using his e-wallet, the item was delivered to him and the e-wallet balance rather than reduce got credited with the same amount of the item he just purchased which increased the balance in his wallet. Unfortunately at the time, software testing was seen as either unnecessary or a waste of resources, so testers weren’t taken too seriously especially as it worked fine on the developers end.
So the feature was deployed as scheduled and life went on. Fast forward to 3 months later, during a random check on customer orders, we noticed a customer had been making huge purchases everyday for the past month and we delivered all his items successfully. He also had withdrawn some cash from his wallet into his bank account and had a balance of about N5,000,000.00. It looked too good to be true so a deeper forensic check was done and yes it is what you’re thinking, our glitch (which was unique to a certain kind of user profile) had reared its ugly head and our customer took it as payday or rather I should say pay month.
My little experience above which is one of numerous experiences is an example of the very reason why you need to employ the services of software testers and why software systems and platforms should be tested during development, post development and continuously especially during feature releases. In my next article I will explain the different types of testing and how they enhance the quality of your product.
How does testing affect software delivery?
Project management revolves around three main points – Scope, Time and Budget. A change to one of these points will result in an increase in one or all of the other points. For example, a change in a project’s scope will result in either an increase in time or budget or both. Software testing processes merged with an agile approach helps to prevent or manage changes that delay project delivery, cause negative user experiences which always lead to financial loss. A software tester checkmates devs and ensures their work meets user requirements. They also ensure that all users are put into consideration by taking on the identity of the product’s target personas vis-a-vis all the delivery channels ensuring these channels are tested and certified user friendly.
Now this is a great segway into the question of how important is QA to a products’ success. There is a saying that a bad software will kill you faster than a competitor. With our changing society and a heavy reliance on technology, almost every industry is going digital. Imagine a faulty code in a control dashboard of an airplane, or a system glitch in a digital surgical device, or a faulty software that monitors the cooling tower or heat exchanger of a gas plant. All of these could result in massive loss of lives as well as a gigantic financial dip if not a fold up of the company or product. With software testers around, the possibilities of these occurrences are reduced to the barest minimum and most times enable proactive remediation compared to a reactive one.