It’s never been easier for customers to learn about the products and services they use, which poses a major challenge to developers. We are in an age where ratings displaying on distribution platforms offer instant visibility into the experience of an application’s users. So in an era of rapid digital transformation, how can organisations make sure their software is working at peak performance while rolling out a stream of updates, bug fixes, and new features?
The answer is, of course, testing. Or, more accurately, a continuous testing process designed to enable faster software delivery and increased productivity. Testing allows defects to be identified before the software reaches end users, performing the dual function of maintaining customer satisfaction while simultaneously liberating staff from the job of fighting fires if a product glitch is spotted out in the wild.
Pressure on companies to carry out better, more effective testing has only grown during the pandemic, as the world suddenly and dramatically shifted to remote working. In the past, manual testing could pick up issues easily because software updates were released at a slower pace, with new versions coming as little as once a year. This feels like an aeon when compared to the super-accelerated development and digital transformation timelines of today.
Users now expect to see products updated much more regularly, putting huge pressure on developers who are working with the threat of reputational failure looming over their heads. After all, as so many companies have learned at their great expense, it only takes one bug to spark a stampede in which users start by sharing poor opinions of a product. The result of which sparks a negative feedback loop which can cause them to churn to a rival solution in huge numbers.
Shifting out of manual
Testing might sound like a procedure that is only of benefit internally, but in fact it’s crucial when it comes to retaining customers. Through continuous testing, an application can be refined before it makes its way into customers’ hands, reducing the possibility of bugs and errors making their way into production. No user likes the thought that they are beta testing a product, unless they are explicitly told so. Enacting a rigorous testing regime before every release allows it to be road-tested before the keys are even put in the ignition, rather than getting out on the highway only to realise the brakes aren’t working. Happy users mean more revenue, so a good testing system is a virtuous circle which offers huge advantages to an organisation that does it well.
So what’s the best way to test applications? Isaac Sacolick, a digital transformation expert, suggested automation was the best way to implement a testing process. He wrote: “Automation lets teams develop tests against individual or groups of application components and services, making it easier to isolate issues before they become production defects.”
The endgame of testing
It’s easy to see automated testing simply as a way of replacing manual tests, which quality assurance specialists often find slow, tedious and so painfully repetitive that errors or mistakes are simply inevitable. Yet continuous testing represents more than just liberation from dull and inefficient tasks. It offers a utopian vision of a development sector in which automation allows testing to become an integral part of the pipeline, rather than an afterthought or a stage of the process which must be deliberately enacted or encouraged.
The Holy Grail of development surely lies in setting up a system whereby developers can enact almost instant updates. For example, performing small changes before submitting a pull request and sending the software update through a set of automated tests before it’s passed and released to users, can be done in a form that’s hopefully improved and error-free. Following this method means that changes will be deployed into production in a process which can take a few hours, rather than days, weeks or months. Customers feel the benefit of this approach, as it allows them to see changes being made reassuringly quickly.
On the other hand, a production process which does not incorporate continuous testing can quickly cause problems. If code sits in a repository for several weeks before being checked, it is out of date because many other developers may have changed it. This means a developer whose code is causing trouble is forced back into regression, working for days to understand the problem before fixing it. And then once that issue is repaired, another arises. This process is highly inefficient but shows how automated continuous testing is the way forward for development teams, who can gain feedback and troubleshoot problems in minutes, rather than days.
Test results
Automated testing allows for faster assessment at more frequent intervals, highlighting problems before they generate unplanned work for the support team. With automation, organisations can free up talent and other resources to increase focus on innovation, problem-solving and R&D, as well as benefiting from decreased time to market and overall, higher ROI.
But before launching a new regime of testing, organisations need to know what they are looking for and how to look for it. Testing in a pristine technical environment with top-notch Wi-Fi and gleaming new devices offers only limited results, for instance, so it is wise to test applications in less-than-ideal situations which are closer to the real world. Accessibility should also be considered as a priority to ensure every customer is able to use the application to its full capability. When setting up testing processes, it is easy to miss the obvious mistakes a human would pick up. One example is a visual problem with an application which cannot be spotted by AI unless it’s using image recognition or a similar technology. In this case, a brief manual test can be beneficial.
When considering automated testing, it is worth considering that the actual processes of assessing applications hasn’t changed much in the past 20 years. What is different is velocity. The digital world is now speeding along faster than ever before. And if your organisation fails its customers, you will be left behind. These are quite literally testing times and the results of your work will mean the difference between success or failure.
Guy Arieli
Quality Assurance CTO at Digital.ai