Micro Focus is now part of OpenText. Learn more >

You are here

You are here

DevOps demands quality engineering. Is your team ready?

public://pictures/Gerie-Owen-Test-Architect-Eversource.jpg
Gerie Owen Sr. Test Manager, Cubic Transportation Systems
 

For DevOps teams, quality assurance isn’t enough: You need to up your game to quality engineering if you expect to increase velocity and improve quality through continuous integration.

Testers have many roles in DevOps, but the most important is that of leader and champion of the quality engineering process. Your team needs to evolve from quality assurance testers to become quality engineers.

Once you understand the difference between quality engineering and quality assurance and the role of testers in quality engineering, you can begin the transition. Here's what your team needs to know to get started.

What is quality engineering?

Quality engineering is the process of building quality into the product, but it is not synonymous with quality assurance. The goal of the latter is to find defects as early in the software development process as possible. It is up to the quality assurance team, usually testers, to use techniques such as requirements reviews, inspection, code reviews, and manual and automated testing to evaluate the quality of the product. Non-functional testing, including performance and security, is conducted as part of quality assurance.

Quality engineering takes a more comprehensive approach and has a much broader scope: It transcends and transforms the entire product development lifecycle. Quality engineering begins before software development by bringing quality conversations into idea creation and user-experience research. An example is the practice of specification by example, where architects, developers, and testers bring their perspectives to the table at the requirements stage.

Quality engineering leads the way into the software development process by proposing strategies for the architecture and design processes. For example, as the architecture is developed, quality assurance team members make suggestions as they plan for security and performance testing. Building in quality is critical at this stage, since the root cause of security, performance, and defect issues can usually be traced to the design phase. Quality engineering aims to prevent those design issues from arising rather than trying to find and correct them later in the process.

Quality engineering is a critical factor in DevOps, since it enables increasing both velocity and quality. It supports continuous integration and forms the basis for continuous testing.

How to implement quality engineering

Moving from quality assurance to quality engineering requires a culture shift, because your entire DevOps team must take responsibility for building quality in at every step in the process. Begin by evaluating your team’s skill sets to ensure that you have the right expertise throughout the continuous delivery process. Getting your team up to speed may mean providing training in areas such as release management, spinning up new environments, or testing the continuous integration process. You might also find that you need to add a new team member with a specific skill set, such as a security expert or a software development engineer in test (SDET).

This culture shift is the main prerequisite for “shift left,” where testing begins as early as possible in the development cycle, and “shift right,” which introduces testing in production with the aim of finding and fixing issues before customers find them. It is also the precursor to continuous testing, which requires not only testing the code, but testing the continuous integration process itself.

Next you need to ensure that your tool stack and automation framework are up to date and ready to support both a shift left and shift right. Automation forms the basis of continuous integration and continuous testing and requires a complete DevOps tool stack that includes not just SDKs and test automation tools but tools for continuous integration, continuous deployment, and continuous monitoring.

Finally, you need to develop a quality engineering strategy and road map that defines in detail how your team will build quality into each stage, from ideation through continuous delivery. Include the people, processes, tools, and outcome-based metrics you will use. Your quality engineering road map should document the path from quality assurance and quality engineering, including the tasks your team needs to perform for each step and an implementation timeline.

Where testers fit

Testers can play many roles in DevOps teams that embrace quality engineering. The most important is that of the manager of the quality engineering process, who leads those quality conversations from beginning to end. This person must have extensive experience and knowledge, because he or she must ask the right questions.

Testers may use their domain expertise and business knowledge to become champions of the customer, focusing on the user experience. Or they may take a more technical track, becoming specialists in performance, security or mobile testing or upskilling to become an SDET.

The road from quality assurance to quality engineering is full of opportunities for testers. The best way forward is for each person on your team to review their skills and interests and choose the path that will be the most interesting and fulfilling.

Keep learning

Read more articles about: App Dev & TestingTesting