There’s a seismic shift happening in our profession. The pandemic forced many companies to accelerate digital transformation efforts (and simply provide better digital experiences). At the same time, DevOps adoption is taking off, with 63% of companies in the process of adopting the practice.
These two forces have left many QA teams in search of solutions. Traditional approaches to quality assurance are focused on “change > test > ship” - assuming all tests pass. This has left QA at risk of becoming a bottleneck to accelerated product velocity. Ideally, QA is engaged throughout development to ensure code meets quality standards.
But, in the scramble to shift-left many organizations have forgotten about shift-right. What about our users? The people most directly impacted by product quality?If we aren’t considering our users’ experience with our application, we’re risking company revenue and reputation.
And now, about a third of the world is entering an economic downturn. This means many QA organizations are having to do more with less as budgets are squeezed and hiring slows down. Our challenge as leaders, technologists, teams, and humans is how we respond and evolve in changing circumstances.
A starting place for many teams is adopting a set of principles called quality engineering. This FAQ will guide you through resources and strategies to help you lead a quality engineering transformation in your organization. Keep reading, or skip to a specific question.
Simply put: quality engineering (QE) is the practice of including quality testing throughout the development lifecycle, with the purpose of delivering a positive user experience that will help your company satisfy, retain, and acquire new customers.
In response to technology shifts, digital transformation, and DevOps, the practice of quality engineering enables teams to optimize their application quality and development pipelines by tracking core quality metrics. This encompasses the people on your team, the processes we set in place for them, and the attitude towards quality across your team.
They might sound similar, but quality engineering and quality assurance are quite different. Quality assurance focuses on the end result of measuring and improving software quality. Oftentimes, quality assurance was something that happened after development, and before deployment to production. It was one step in the development of software.
Quality engineering is a holistic approach to optimizing quality for your team and your users. While QA is an element of QE, quality engineering encompasses a set of beliefs, practices, and attitudes that aim to continuously test and optimize application quality.
High-velocity software organizations are making the shift from quality assurance to quality engineering. However, the transformation isn’t as easy as flipping a switch. Organizations who want to remain competitive - especially those who test revenue-generating or customer-facing applications - should start their adoption journey now.
The QA organization is taking on an expanded role as a quality center of excellence (CoE), especially in larger organizations with multiple products and development teams. Companies such as Fox Corporation and Chewy are doing this well. As more teams such as developers or product owners get involved in testing activities, QA is taking on an advisory role in quality as well. Typically, developers are involved in building and executing tests earlier in the pipeline. Product owners might collaborate with QA on a testing strategy for a new feature or product development (or even build the initial automated tests!).
Yes, and by doing so it helps create additional career paths and growth opportunities for the testers on your team. With scripted approaches to test automation, or solely relying on manual testing, we’ve relegated our testers to technical versus non-technical roles. In reality, both “sides” of the testing team have an opportunity to contribute more to application quality.
Take a Manual Tester for example. When you begin adopting low-code test automation, manual testers have the opportunity to learn automation skills without the need for deep coding experience.
Automation Engineers, who previously spent time building and maintaining test scripts, have the opportunity to move into an advisory role working with developers or product owners on the processes and best practices for testing.
When QA takes on the role of being the quality “center of excellence” in an organization, there is an opportunity for all team members to build their hard skills, but soft skills become critical to develop as well. Communication and collaboration skills are critical to develop when advising the software development organization on testing best practices and processes.
A quality engineer works to improve software quality by implementing manual and automated testing processes throughout the entire software development lifecycle (SDLC). This includes embedding automated tests of all types (functional, integration, end-to-end, performance, load, API, accessibility, and more) into development pipelines and creating efficient processes for resolving any bugs or defects discovered.
In short, a quality engineer takes a holistic approach to software quality that helps to shift quality testing left. This means testing code changes early and often to improve quality more efficiently and reduce the overall burden on development teams. In order to integrate quality engineering processes into the SDLC, quality engineers need strong technical skills and a variety of soft skills.
Here are some of the hard and soft skills a quality engineer should have:
When getting started, it’s important to think about your quality practice from the following angles:
Test coverage, integration into pipelines, non-functional testing, and quality insights are the four pillars that make up your quality engineering practice. It’s possible to be mature in one pillar and identify opportunities for improvement in another pillar. QA leaders can grade their maturity in each area to understand where they should prioritize any strategic changes to their QA strategy.
Starting with the first pillar, assess your QE maturity in test coverage. Test coverage for QE looks slightly different from test coverage for QA, in that it’s tailored to your customer journey. Testing is tuned with data from across the enterprise to provide more impactful insights into product quality. When teams embrace quality at the organizational, team, and individual contributor levels, and their assigned testing activities are manageable, maintainable, and meaningful - teams can start to contribute to a high level of meaningful coverage.
Some specific activities your team could get started with are:
The second pillar of quality engineering entails testing at every major stage of the software development lifecycle. These activities should reduce the cost of bug fixes because issues are identified earlier in development. It also reduces stress for developers, testers, and product owners as fewer issues are discovered immediately before deployments.
Some specific activities your team could get started with are:
Users of your application need it to be functionally correct, but performance and accessibility issues could prevent many from being able to access it at all. For example, performance issues during the checkout process on an e-commerce app could hurt revenue and frustrate users. And accessibility issues can prevent as much as 15% of the global population from being able to use your app.
QE teams must test and track non-functional quality issues. Those that are mature in this QE pillar are regularly testing these areas of their application, tracking issues, and actively working to improve accessibility and/or performance.
Some specific activities your team could get started with are:
A mature quality engineering organization collects and surfaces quality data in a meaningful way. The larger software organization is aligned on the core KPIs tracked by the QE team, which allows everyone ton easily gain an understanding of their application’s quality, see trends, and build a plan to optimize quality based on the data.
The top organizations are using insights to drive conversations with their product team on the focus of new development. When QE is able to track quality trends over time, those insights can be used to inform future product development to make code more testable or deliver something new that could improve the customer experience.
Some specific activities your team could get started with are:
Since quality engineering is gaining traction, check out these additional resources to help set your team on the right path.
mabl is the leading intelligent, low-code test automation solution that enables high-velocity software teams to tightly integrate automated end-to-end tests into the entire development lifecycle. mabl’s unified platform makes creating, executing, and maintaining reliable browser, API, and mobile web tests easier, accelerating the delivery of high-quality, business critical applications.