The Software-as-a-Service model is still on fire, and it will only adapt and evolve from here. Cloud computing allows providers to deliver software in an unfussy, unmessy way. As the saying goes, “nothing to download, nothing to install.” Granted, not every SaaS app is a web app, but most of them are, so that will be the focus here.
Users simply enter their credit card deets, et voila: Access!
That level of ease is somewhat of a double-edged sword, however, because development and QA teams are continually accountable. There’s a big difference between deploying once a week and once a year (as was common with on-premise).
SaaS application testing creates some unique challenges and opportunities for testers. Many of these require more technical expertise, while others push the development of softer skills. Here’s what QA engineers for SaaS platforms need to focus on to enhance quality.
The SaaS Model Naturally Creates Competition
Remember around 2009 when everyone was saying, “There’s an app for that?" Now it feels like we can walk around saying “There’s a SaaS for that” and be absolutely correct.
The SaaS model has so many benefits for providers. They can more affordably deploy software because everything is in the cloud. They can create, deploy, and sell everything online as a one-man show, in fact. The barrier to entry is very low.
At the same time, this model is easier for users. They can jump on board in a matter of minutes. Guess what? That means they can churn in a matter of minutes, too. Users can easily be swayed by another tool that they heard about from a colleague or that they found in a Facebook ad. It’s much harder for an entire organization to switch products than it is a single user, but it’s still far easier than if that product were sold in one large sum (rather than a subscription), because that model requires more of a substantial investment and creates “lock-in.”
So, SaaS has led to increased competition in every software category, meaning companies need to be ever more vigilant about providing a quality experience every second of the day.
Less Testing of Software Elements but More Demand on Software Testing
There are certain things that don’t have to be tested with SaaS applications because they don’t exist:
- Installation on a client or server.
- Support for multiple versions.
- Support for different platforms and backends.
Even though there are fewer facets and components with software testing for SaaS, there’s actually greater demand on testing. This is due to frequent releases and the customer expectation of quick fixes. If something isn’t working, a user is likely to check back a couple hours later, expecting it to work.
Test Cycles Have to be Short, Fast, and Partially Automated
Speed is critical in SaaS application development and testing. By breaking releases down into much smaller components and testing as early in the iteration as possible, the agile methodology is the answer to the issue of speed.
Short cycles allow enhancements to reach customers much sooner, so QA engineers are constantly pushed to innovate their processes in order to stay on-cycle with development. Unit testing, the simulation of incomplete components with service visualization, and the automation of regression testing and critical service calls are all ways that QA can run simultaneous tests, rather than wait until the end of a cycle—a real killer when it comes to SaaS.
Performance Testing Ensures Reliability in a Shared Database
With on-premise software, a user’s experience is tied most closely to his own environment and the behavior of his own organization. With the SaaS model, his experience could be affected by people on the other side of the world.
That’s why performance testing is critical for SaaS. The requirements should be spelled out crystal clear, and never left vague:
- What is the workflow of each task and how complex is it?
- What is the expected delivery speed of each web service?
- How many customers use the platform how often?
- What is expected of all integrated applications?
Either via automated simulations or manually orchestrated events, QA teams must recreate maximum-use scenarios to conduct stress testing and endurance testing.
QA Can Help Validate the Ability to Scale
Not only can performance testing validate the reliability of the application for the existing user base, but it can also help determine the platform’s ability to scale. Communication within an organization is key. Is there a new promotion expected to bring in a massive influx of users? The QA team needs to be aware. The throughput of various workflows must be tested, as well as the capacity of the entire system.
Testers Must Become Experts in Customer Experience
Because of the increased competition, the success of a SaaS platform comes down not just to user experience, but the overall customer experience. In terms of UX, the app must flow, it must be intuitive and easy to navigate and enjoyable to use.
But testers must think in terms of CX as well. Is the overall experience consistent? Is the app delivering on the promise made by the brand? This can come into play with the in-app support experience, the UX copy and the brand voice on any explainers, walk-throughs, or in-app messages, and any external emails or notifications triggered by the app. Testers must not only examine the pass/failure of these elements but also simultaneously evaluate how they serve the customer.
Actual (Not Theoretical) Usage Should Drive Test Prioritization
By capturing and using customer analytics, QA teams can know exactly which browsers and versions they need to support. Different browsers are used in different parts of the world, and by different audiences. Discovering those popular amongst your own user base is invaluable to focusing testing efforts. Making use of real user data is critical for enhancing the real user experience. Testers should implement available metrics like performance and error rate to prioritize the testing of problem areas.
It’s also possible to uncover users’ favorite features, meaning that testers can identify those areas that deserve the most amount of attention for writing automated scripts and/or manually exploring.
Overall Platform Goals: Keeping It Lean or Time to Grow?
No matter what sort of application QA engineers are testing, it’s important to understand the business goals for the platform, to know what it is, what it isn’t, and who it serves. But particularly in an arena with so much competition, and one in which providers can easily pivot, it’s important that any suggestions or enhancements be made in complete alignment with the goals of the entire organization.
Understanding whether now is the time to stay minimal or add capabilities can make it more likely that QA efforts are contributing the maximum amount of value.
Quality assurance is, like any field, ever-changing, and the explosion of SaaS applications in all industries has caused some rapid changes recently. With SaaS, there’s an extra layer in the focus of QA: the need to consider the user base and platform experience as a whole, rather than just the functionality in small environments. The heightened competition is a direct reflection of the model itself, and excellent QA is a secret weapon used by smart companies to help combat it.