The Guide to Quality Engineering Adoption

There’s a seismic shift happening in our industry.

  • The pandemic forced many companies to accelerate digital and technology transformation efforts (and simply provide better digital experiences).
  • DevOps adoption has taken off, with 66% of companies in the process of adopting the practice.
  • The introduction of generative AI has further accelerated the pace of development. Developers leveraging code assists are completing tasks 55% faster.

These three forces have left quality behind, creating a quality gap.

Traditional approaches to quality assurance are focused on “change > test > ship” - assuming all tests pass. Ideally, QA is engaged throughout development to ensure code meets quality standards.

In the scramble to support technology transformations and navigate the best use cases of generative AI,  we can't forget about the user experience. If we aren’t considering our users’ experience, we’re risking company revenue and reputation.

On top of it all, cost constraints means teams have to do more with less.  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.

Guide to Quality Engineering Adoption

+

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 genAI, 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 Priceline 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.

The adoption of genAI in testing will help teams reduce repetitive or routine work such as time needed to create or maintain tests, to help make time for these evolving responsibilities.

+

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:

  • Ability to understand and apply new uses cases of generative AI into software testing
  • 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 integrate generative AI into QE?

Generative AI should be used in quality engineering to help teams augment, not replace, the role of testing. Some common applications of genAI in test automation include:

  • Test planning: QE teams can use genAI to summarize test coverage insights to understand where additional coverage is needed.
  • Speeding up test creation: use intelligent find strategies to test the right elements, or create test steps using natural language
  • Creating rock-solid reliability: understand the intent and performance of your application, and adjust test scripts automatically to reduce time spent on maintenance
  • Experience insights: understanding and alerting teams to visual changes, or negative changes in performance or accessibility of your application.

+

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.