The Quality Leaders Guide to Quality Engineering Adoption

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.

Frequently Asked Questions

+

What is quality engineering?

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.

+

How does quality engineering differ from quality assurance?

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.

+

Who practices quality engineering?

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!).

+

Does this change roles and responsibilities on my QA team?

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.

+

What is a Quality Engineer?

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:

  • Empathy to ensure the testing strategy evaluates every aspect of the end-user journey.
  • Communication skills to collaborate effectively with developers, product owners, and other quality stakeholders.
  • Adaptability to meet changing user expectations, a growing product, and evolving DevOps processes.
  • Critical thinking to ensure they’re leveraging the right data to create effective software testing strategies.
  • Technical skills to implement a high-impact manual and automated testing strategy that improves software quality.

+

How do I get started with quality engineering?

When getting started, it’s important to think about your quality practice from the following angles:

  • What does my current test coverage look like?
  • What are my team’s biggest frustrations with testing?
  • Is testing frequently integrated into development?
  • Am I testing the non-functional attributes of my application?
  • Do I have access to quality insights and use that data to optimize quality?
  • Where are my users’ experiencing frustration with our product?

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.

+

What does great test coverage look like?

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:

  • Regularly discuss testing and quality in meetings with the broader software development organization.
  • Engage your devs to start doing unit testing and/or TDD
  • Define and add coverage for scenarios that pose risks to your business and customer experience
  • Retire tests that cease to be useful to prioritize those with more impact to your users

+

How can I incorporate more testing activities in development?

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:

  • Integrating testing within your CI/CD pipelines.
  • Organize test plans in a way that focuses our testing efforts efficiently.
  • Leveraging testing within the development workflow.
  • Ensure test environments are valid and monitored.

+

When should I integrate non-functional testing into my QE strategy?

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:

  • Leverage historical test performance to identify deviations or potential issues.
  • Identify tests that may be leading to inefficiencies.
  • Incorporate accessibility and performance testing by building them into your functional test suites.

+

What data should I use to inform my quality strategy?

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:

  • Track, grow, and maintain meaningful test coverage.
  • Gather and monitor real user data. 
  • Track specific device and browser coverage.
  • Include workflows in tests that can monitor application performance.
  • Monitor release coverage for performance and quality.

+

What resources are available to learn more about QE?

Since quality engineering is gaining traction, check out these additional resources to help set your team on the right path.