eCommerce QA: Going Beyond Load and Performance Testing
Consumers are very quick to abandon a site that doesn’t load quickly enough - research shows nearly half of all users will give up and go somewhere else in under 3 seconds. Those seconds spent loading mean crucial revenue to retailers, so your performance and load testing need to be on point.
The Importance of QA Testing for eCommerce Projects
A fast and thorough QA process is very important for eCommerce software because of how vital a smooth retail experience is for consumers. Competition in eCommerce is fierce, with many companies under pressure to constantly push out new features to try to carve out a niche in the market. At the same time, software defects can directly lead to increased bounce rates and lost revenue.
Developers need to be confident that the code they write works, is bug-free, and is performant. Inefficient code can just as easily lead to losses of revenue as bugs and errors. However, development moves quickly. QA needs to get feedback to developers quickly to enable a faster turnaround on fixes for failed tests. This means that testing must be both thorough and fast.
Types of Testing for eCommerce Systems
eCommerce systems are typically complex and feature many different sub-systems and third-party integrations that mean QA must cover a wide variety of testing types. These include the standard types of testing you’d find in almost any test suite, such as functional tests and integration tests, but there is additional emphasis on certain types of testing for eCommerce systems.
Very often, eCommerce software relies on third-party tools and services in some way. These may be integrated into a number of ways, such as with webhooks or API calls, but as with any data taken from external sources, care must be taken to ensure that all responses are handled gracefully - both expected and unexpected. Integration tests must consider not just each individual component in isolation, but end-to-end testing is also essential to understand how those components all work when combined. Conflicts between various third-party integrations are not unheard of, so it can’t be assumed that a third-party software library or API calls that work well alone will automatically work well when integrated into the wider eCommerce system.
Functional testing is crucial to ensure that common features work as expected at all times. ECommerce QA teams will often use test automation tools to enable the continuous testing of core features, such as the purchasing and checkout process. End-to-end testing is also a good candidate for automation, as ensuring the user journey works smoothly and correctly throughout their entire experience is just as important.
Why Load & Performance Testing is a Top Priority in eCommerce
Amazon calculated that every 100ms of latency cost them 1% in lost sales. Other studies show that 40% of shoppers have recently struggled to complete a purchase online, which led to more than half going to visit a competitor instead. Friction during the shopping process can be a complete sales killer, which means that the code getting pushed to production has to work well and has to be performant.
Users are impatient, and therefore performance is important on the front-end, but what doesn’t often get as much recognition is that performance also matters in the back-end for testing. Test suites need to be as comprehensive as possible without compromising developer velocity and becoming a bottleneck in the continuous development process. There are a number of tools QA teams can use to help speed up the testing process, such as integrating test automation into the QA process.
Can Performance & Load Testing Be Automated?
Test automation can be applied to a range of different testing types, but common use cases for it involve functional testing and end-to-end testing. For example, common user journeys, such as adding a product to the cart and going through the checkout process, are high-priority tasks for testing, as friction will drive users away. They’re also easily automated in a number of ways.
One such method is record-and-playback testing. Rather than having testers manually conduct these tests on a regular basis, software automation tools allow teams to record actions, like adding a product to the cart. Those actions can then be played back and repeated as part of a test suite.
Other tools like visual imaging can identify test passes or failures by matching screen captures to known pass cases. This further automates the process, enabling much quicker testing and feedback than with manual processes. Fast feedback is critical to helping developers fix any identified issues as quickly as possible.
These test automation tools can also be applied to simulate hundreds of thousands of actual user journeys simultaneously. This allows for more realistic loads and traffic patterns to be simulated rather than simply hitting your system with a designated maximum traffic load. This load can also be initiated on multiple levels, such as through your user interface and directly through API calls, helping localize issues faster.
Sub-maximum performance testing can help identify issues that lead to degraded performance without crashing. Understanding the impact of varying levels of traffic can help pinpoint performance issues, which can often be harder to identify than straight-up crashes. These performance anomalies can individually be tested at varying load levels to help identify code defects. This helps QA identify and locate performance issues fed back to developers with as short a turnaround as possible.
Beyond Performance & Load Testing
Test automation is useful for many different types of testing in addition to performance and load testing. These automation tools all help QA teams to conduct tests quicker and allow them to run them continuously. This allows for defects in critical eCommerce functionality to be identified as soon as possible. This should involve testing this functionality at varying load levels using realistic traffic patterns to ensure that systems can handle various traffic loads.
The earlier that software defects and sub-optimal code can be detected, the faster these issues can be resolved. Part of this involves testing earlier and testing on a regular basis. These are known as a shift-left approach to testing and continuous testing, respectively. By creating and running tests earlier in the development process, bugs, defects, and other inefficiencies can be detected at a much earlier stage. By continuously running tests, there are more opportunities to catch defects, which is especially important for core functions like the checkout process, where it’s vital to catch problems before customers do.
eCommerce software is all about speed. Software development life cycles are short in eCommerce, as there is a lot of pressure to constantly adapt and evolve to meet market demands. This means developers need to work quickly, and part of enabling developers to work quickly is getting them test feedback as soon as possible. Writing code that is functional and performant is difficult, but consumers have a very low tolerance for slow or buggy code. Proper QA processes can help identify and catch problems in code before it gets pushed to production. Having these processes in place can give you the confidence to know that your system can handle traffic under any load, something valuable for any software, but especially so for eCommerce software.
About the author: Erik Fogg is a Co-Founder and Chief Operating Officer at ProdPerfect, an autonomous E2E regression testing solution that leverages data from live user behavior.