New feature: SofySense – Manual test case & test results AI generator to help you speed up your testing process. Try it today.  

Sofy launches product feature suite to deliver effortless test maintenance and ensure continuous precision – learn more.

sofy logo
Issues, issues, everywhere! If only there was some way to keep track of them… Image: Shutterstock

Test Early, Test Often, and Shift Left: Quality DevOps

One way or another, every team learns that testing is a crucial component of the CI/CD pipeline. The key? Test early, test often.

You’ve heard it before: Test early, test often, and shift left. And it certainly bears repeating: Far too many dev teams discover all too late that they should have paid more attention to quality earlier in the software development cycle. All these teams have at least one thing in common: An inevitable realization that they should have performed more tests, earlier, and more carefully.

They didn’t shift left, they didn’t test early and often, and they didn’t heed the ancient warning of the common idiom a stitch in time (saves nine).

In other words, placing too little emphasis on quality testing always tempts disaster. A team that does not test early and often throughout the development pipeline can expect to discover major problems further down the pipeline, including unexpected behavior reported by live build users.

By then, the damage is done, and a team potentially faces an expensive and time-consuming hunt for defects and their origins, including the potential for reworks, and accompanying delays.

Cutting quality ultimately means inflating costs. At the same time, testing software (such as mobile device apps) seems to become increasingly complex by the day. Complications include an ever-growing list of potential mobile devices combined with increasingly high and varied user expectations.

So, what’s to be done? Let’s take a closer look at the matter and some potential solutions.

Considering quality

The word quality gets thrown around a lot these days—and for good reason, given its central importance. But what exactly is meant by the word? In short, quality can be a judgment, an assessment based on need and audience, but ultimately quality is simply the ability to withstand scrutiny. When it comes to the topic of mobile apps (and software more generally), this means avoiding defects and bugs and, when they’re detected, it also means eliminating them as early as possible.

Concerns for quality are by no means restricted to software development. Quality assurance is a vast topic that touches any industry where a company manufactures a product. In turn, many of the fundamentals of quality assurance approaches applied to manufacturing, say, homes, vehicles, or even breakfast cereal, may be applied in a software development setting.

The reason for this is both universal and simple: When producing a product of any kind, it must be thoroughly tested throughout the product development cycle to ensure the absence of defects. And the earlier a defect may be caught in the production process, the less effort a team is likely to need to expend in solving it.

Unique problems

That said, comparisons between mobile app software development processes and those of other industries only go so far: While the need to detect and resolve issues in a production environment is certainly universal, the problems faced in DevOps environments are in many ways unique to the software development world.

In a best-case scenario, mobile app users never notice the hard work spent by a quality engineer team in preventing and/or eliminating software defects. The capability of a mobile app to perform exactly as expected is a baseline expectation among modern mobile app consumers.

Today, consumers expect nothing short of mobile app performance perfection, no matter how complex an app may be. And when an app doesn’t match their expectations, they’ll certainly let you know.

Of course, reaching that level of quality control is no simple task. Every year, more and more devices find their way into consumer hands, operating systems see frequent and sometimes radical updates, and form factor diversity just seems to keep on expanding. 

CI/CD

While the need to shift left has been noted since the phrases’s coinage in 2001 and the phrase test early and often is similarly widely understood and used, one reason that testing has proven difficult to integrate early into the development cycle (even in a post-AGILE world) is that, historically, it has been difficult to produce and maintain mobile app testing automation environments.

In practice, today’s standard modern software development lifecycle does ideally place a fair amount of emphasis on testing pretty early in the modern CI/CD pipeline (in other words, the build and release pipeline), with testing often consisting of a fourth step (e.g., plan > code > build > test).

A chart illustrating the modern development cycle
Image: Sofy x Sawant Ajit, Shutterstock

There are no shortage of ways to handle testing during or after the build phase—see for example this article on emulators versus physical devices and this piece on manual-code, low-code, and no-code testing. Each of these approaches come with unique pros and cons. Additionally, testing itself can take a variety of different forms, such as functional, validation, and UI testing during the build phase.

In short, depending on a team’s chosen approach, building quality mobile app testing automations can potentially prove to be resource- and time-intensive, tempting some teams to cut corners or de-emphasize the crucial testing phase—setting the stage for major problems further down the line.

A No-Code Resolution

Fortunately, due to recent advances in testing automation, everything about mobile app testing has changed. The seemingly inevitable appearance of the ongoing No-Code Revolution has done exactly what its name implied: Revolutionized every industry it has touched. While best known to date for turning website development on its head (for example, see this very recent and widely read piece), no-code is also completely changing the world of mobile app testing.

Today, developers can simply integrate a modern testing tool, like Sofy, with their CI/CD platform through direct integrations. For example, see the below screenshot for Sofy and Circle CI integration:

Image: Sofy

And just like that, testing becomes part of your CI/CD, and you’re ready to shift left with ease. Once integrated, developers can simply push new code or builds into the testing tool automatically whenever anyone on a team makes a change, and that build can automatically and immediately be tested for pre-defined or most common use cases or app user flows.

Introducing quality to DevOps doesn’t need to be difficult. With Sofy’s intuitive automated mobile app testing platform, you or anyone on your team can take charge of quality by running as many tests as you’d like—and as early as you want. So why not test early, test often, and shift left, and give Sofy a try?

TAGS: