Quality Engineering: The Future of QA
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.
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.