Why Software Testing is Necessary for Delivering Superior Customer Experiences
Why Software Testing is Necessary for Delivering Superior Customer Experiences
Create an effective software testing strategy to ensure that your customers get the most from your product, and that they stay.
Join the DZone community and get the full member experience.Join For Free
Since attending Forrester's CX SF conference, I’ve been reflecting lately upon the relationship between software quality and the customer experience for brands that are seeking to innovate and stand out in a sea of growing competition.
One recent experience of mine really highlighted this for me; I recently moved to Berkeley, so I’m still buying some furniture and other items for my home. I was about to complete an online order from a very famous store that included more than 20 items in my cart. All went well until I hit the “place order” button. After I had already finished the transaction, I was notified that some things were out of stock, others were discontinued, etc. This seems like an operational problem, but from my perspective, it’s also a software problem; the site didn’t alert me about these different issues, which caused this part of the process to ruin my experience. Then, I had to call customer service, spend an hour on the phone, follow a lengthy process to get my refund, and so on. In the end, I had undergone stress, frustration, and disappointment.
You may also enjoy: Software Testing Tutorial: How to Perform Testing
Not only did I tell all my friends about the horrible customer experience I had on the popular retailer’s site (from which I decided to never buy from again), but the company also paid for this bad experience with the extra costs associated with the transaction: the customer support, the added operational management, etc.
Forrester’s research has shown that in today’s day and age, brands have to deliver the best experience, both on and offline in order to compete, and deliver quickly. In this post, we’ll cover the cost of poor quality online customer experiences, which could affect the whole customer experience (like in my furniture buying story), why software testing is necessary, and tips for how to zero in on quality.
The Cost of Poor Quality Websites and Mobile Apps
Can you think of a time when a brand’s website wasn’t working well or a tool you used at work failed to meet your expectations, so you abandoned it? There are plenty of day-to-day instances like these, and with the ease of shopping and doing business online, the cost of switching between alternatives for customers has never been lower, with the “end subscription” or “cancel account” option never far from reach. Or worse, would-be buyers abandon their shopping carts simply by going to a competitor’s site that’s only a few keystrokes and a couple of clicks away.
This is why it’s so important to uphold quality digital experiences, alongside those that are in-store. Here are just a few interesting stats about the importance of building quality software:
- In the US, the cost of poor-quality software in 2018 was $2.84 trillion. – CISQ
- 47% of customers expect websites to fully load within two seconds. 64% of smartphone users expect websites to load within four seconds. – Akamai
- 53% of mobile users leave a site that takes longer than three seconds to load. – Google 2018 Research Study
- 88% of Americans form a negative opinion of a brand if it has a poorly performing app. – Business Wire
- If an e-commerce site earns $100,000 per day, a 1-second page delay could potentially cost it $2.5 million in lost sales annually. – Akamai
The Purpose of Software Testing
So what is software testing and why is it important? One definition of testing that we like at Abstracta is Cem Kaner’s, “a technical investigation of software in order to provide information about its quality to the different people involved in its construction.”
The World Quality Report 2018-19 by Capgemini and Sogeti has revealed that the most commonly reported objective of software testing is to ensure end-user satisfaction, followed by to detect software defects before go-live and to increase the quality of software or product.
But wait, can we assure quality? Can we ensure end-user satisfaction? At Abstracta, we prefer to think about testing as a process to assess risk, so the team or the decision-maker(s) can make better business decisions. Should we deliver the new version? Should we solve the critical issues before release? What do we know about the quality of the website in order to “ensure” a great end-user experience? (And yes, I put quotes around “ensure” because we can not ensure, we can only assess to help the team improve the quality).
In software development, testing is a unique function that is typically carried out by someone other than the developer who wrote the code, someone who specializes in testing and thinks critically about the use of the software. Software testers help organizations catch the errors in code that developers, as humans, are bound to make!
According to CISQ, on average, software developers make 100 to 150 errors for every 1,000 lines of code.
A good software tester or quality engineer can define a quality plan and strategy, revise code, run manual and automated functional, performance, and security tests, among other things throughout the development cycle.
For more on what a quality engineer does, check out our infographic.
Software Testing’s Impact on the Customer Journey
A customer experience professional’s aim is to differentiate their company’s brand by optimizing the customer journey, which encompasses the experiences that customers go through when interacting with a brand from the initial awareness phase to advocacy phase, as illustrated below:
Source: Astute Solutions
As mentioned before, software testers help to make better decisions for the sake of excellence in the customer experience. They can focus on assessing the company’s marketing or e-commerce website, mobile app, the product itself (if it's a digital one, like a SaaS tool), or even assess the entire customer journey, looking for inefficiencies or improvements.
There are several types of testing to cover the various aspects of quality. By running cross-browser tests, a type of functional tests, for example, a tester can help check how your app or site functions when users access it from different browsers like Chrome, Firefox, Safari, etc. Or, they can help by verifying the portability of a native application by testing it in different devices (such as Android phones, iPhones, tablets, etc.) of various generations. Besides testing functionality, there are several factors of quality that testers help to uncover risks for such as performance (load times and susceptibility to crashing), usability, accessibility, security, etc.
How Brands Can Put Quality First
It’s no secret that companies are facing more competition than ever before, and they’re expected to release new products or features at the speed of the market’s demand. However, that doesn’t mean that it’s acceptable to drop the ball when it comes to quality, or else damaging customer reviews will ensue!
Here are some ways that companies can become quality-centric:
Continuous testing is generally defined as making testing an ongoing, automated and constant part of the software development life cycle so that defects can be found and corrected as soon as they are introduced. It’s imperative to achieve this level of test maturity in order for agile development teams to reach continuous delivery, which is the ability to get changes of all types into the hands of users, safely and quickly in a sustainable way.
At Abstracta, we helped Shutterfly, one of the world’s most customer-centric brands, run continuous performance testing to maintain the speed of its website. Imagine if Shutterfly launched a Black Friday campaign and due to the huge influx of concurrent visitors to its website, it took 30 seconds for each person to upload a photo to its website. From what we know about the importance of page load times, many users would give up in the process and all of those marketing dollars spent would go to waste.
To avoid that scenario, these tests set up in its CI/CD pipeline enabled its team to catch when a new line of code caused a degradation in performance immediately.
Take a Risk-Based Approach
Risk-based testing gives higher priority to testing the elements, components or aspects that are most at risk of failing which also carry the greatest negative consequences if said failure occurs. Here teams should take into consideration:
- The financial impact of potential errors
- The probability of failure (it’s smart to have a conversation with the developers about this)
- Service Level Agreements (SLAs)
- And many more…
With the answers to these questions, it should be more clear what aspects of the user journey to prioritize testing first. For an e-commerce website, for example, it may be most important to thoroughly test the shopping cart and checkout functionalities of its site, as those directly impact the company’s ability to sell products and thus, its bottom line.
Know When to Hire a Software Testing Company
Sometimes, the most practical way to implement the best quality processes is to find an external partner that can guide the strategy and execution for software testing. If your company is heavy on development but light on testing or often stalled due to bug fixes, outsourcing testing can be an efficient and effective strategy to quickly ramp up testing. This is because a good testing company can help you find bugs earlier, when they are easier to detect and fix quickly, reducing the amount that end up discovered by users, directly impacting the customer’s perception of the brand.
Outsourcing bypasses all the effort involved in recruiting, hiring, and training new employees while providing cost savings in regards to employee benefits, real estate, etc. Better yet, through outsourcing, companies can scale up or down their test team as needed and access exponentially more know-how than they could by hiring just one or two individuals.
Read more about considerations for outsourcing testing.
A Great Digital CX Relies on a Solid Test Plan
The key strategy for reducing the cost of poor software quality is to find and fix errors as close to the source as possible, or better yet, prevent them from happening at all.
All in all, poor-quality software costs more to build and to maintain than good quality software and it can degrade operational performance, increase user errors, and reduce revenues by decreasing the ability of employees to handle customer transactions or attract new customers.
In our opinion—which is admittedly biased—quality is never too much!
But, we are not alone. Forrester reports that customers are willing to spend nearly five times more for excellent customer experience (CX) than they would for poor CX.
This quote from an interview with Forrester Principal analyst, Maxie Schmidt-Subramanian, sums it all up:
“There is no endless supply of customers for any company, so if you don’t provide the right experiences, you’re not going to acquire or retain those customers.”
What do you think, should QA and testing be a part of your plan for great CX?
Published at DZone with permission of Federico Toledo , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.