DevOps

Quality Engineering: The Future of QA

4 Feb 2019 1:17pm, by

Charlie Lee
Charlie Lee is solutions engineering manager at BrowserStack, the most reliable web and mobile app testing platform on the market today. Prior to BrowserStack Charlie was a business development specialist for Bridgetree and spent more than five years of SaaS consulting and project management for Fortune 500 companies such as Lowes Home Improvement, Allstate Insurance and Alaska Airlines.

Staying relevant in today’s ever-changing digital landscape is critical to business survival. When it comes to web and mobile application development, ability to adapt to meet consumer demands is even more imperative.

Businesses have a unique opportunity to reach consumers and tailor their experiences. However, these consumer experiences are increasingly disjointed, using a multitude of touchpoints and interfaces. At the same time, the bar continues to rise for the quality consumers expect and the speed with which fixes are released. This presents a unique QA challenge: the need to shorten testing timelines while increasing test coverage, all while ensuring rollout of high-quality apps.

What is a developer team to do? Part of the solution is to test extensively across thousands of browsers, devices and operating systems to ensure that apps work seamlessly. But this approach alone is shortsighted. To fully address the problem, dev teams must adopt “Quality Engineering” (QE), a continuous and agile function that considers quality as integral throughout the dev lifecycle.

In traditional software engineering, quality is typically an afterthought, considered once other discrete stages of designing, prototyping and building software are complete. By the time quality control takes place — in some cases in the form of statistical sampling to ensure a release is good enough, we’re well past the stage for any real impact.

In order to succeed, dev and QA teams must adopt quality as a key component that’s fully integrated throughout the software development lifecycle. This means making quality part of an application’s DNA, starting from its conception all the way to the release. Incorporating quality into each stage and every part of software produces an app that works seamlessly, is enjoyable to use, and has few issues or complaints by users. This is the holy grail of app development.

Achieving QE

Working towards QE is a process in itself, and is certainly no easy feat. But the results are worth it. As we can all attest, no matter how innovative an app may be, there is no forgiveness if it’s poor quality. Just as in DevOps, it all comes down to having the right mix of people, tools, culture and practices. Here’s a deeper look:

People. At the most fundamental level, there is no software development without people. The same goes for quality processes as well. Having the right set of people who are committed to quality in everything they do — rather than addressing it as an afterthought, is key. Of course, much of this has to do with culture. However, focus on quality doesn’t necessarily need to be a top-down effort. Over time, the quality of your output will speak for itself, helping to build momentum and inspire key stakeholders. Quality can be a bottom-up effort.

More than anything, it’s important to ensure teams consider quality just as important as the basic act of writing code.

Tools. It’s always important to have the right tool for the right job. In terms of QE, this means forgoing a “one-size-fits-all” approach to invest in the right testing tools and frameworks. Seek out solutions that offer a good balance between coverage and comprehensiveness vs. flexibility and adaptability. This enables a team to make the most of them in various use cases — whether it’s in the test harness or quality system.

Automated testing tools help to ensure that software is working correctly on as many browsers and device options as possible. These tools enable teams to execute pre-scripted tests on a web or mobile app, rather than handle such testing as a manual process. The result saves considerable time, plus makes test data accessible in detailed reports to help quickly identify issues. These features are key to supporting quality overall.

Processes. It’s always tempting to think bold and want a world-class process. However, in software engineering, big visions all too often translate into an insurmountable set of requirements — each of which can fail, creating a boulder that is too difficult to move uphill. To avoid this, keep things agile and simple before going complex.

We can easily apply engineering principles to quality by breaking the process down into bits and pieces. Just as you would with software development, quality can be broken down into a blueprint. By considering quality from a modular perspective — many parts that create the whole — allows for testing all potential break points to ensure the entire process works. Testing a quality process enables teams to see what’s working — or not, to ensure quality remains high throughout the dev cycle.

As software development continues to evolve, QE will become a key differentiator to success for teams and businesses alike. The most important thing to remember is to integrate quality every step of the dev cycle so that it’s fully part of the software DNA. By keeping this, and other principles in mind, quality is within reach.

Feature image via Pixabay.


A digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.