Blog

What is a QE?

SDETs, QAs, and DevOps all play important roles in software development but where do quality engineers fit in? Dive into the evolving world of QE to understand its unique contributions to enhance software quality.

Team work

These days, you may have heard a lot of buzz around the term, QE (Quality Engineering). Let’s take a look at the different roles in development and testing related to quality, and then dive into what is a QE.

Keep reading and learn how quality engineers can improve quality in software testing and add value in quality assurance both in functional testing (also known as manual testing) and non-functional testing (performance, test automation, accessibility, security, and so on), as a key part of each software development process.

Differences between QA & QE

The role of a QA (quality assurance) professional in a team, as the name implies, is to ensure quality, making it crucial in software testing, within the software development process. I also found that QA can refer to the quality analyst, which seems more appropriate to me than quality assurance (as it is impossible to fully ensure the quality). Anyway, that role is associated with the functional tester, who generally has no programming skills.

A few years ago the role of SDET (Software Development Engineer in Test) became popular and also, and the agile-oriented role of DevOps also emerged, with a combined focus on the development process, operations, and business.

Today, the new term “QE” (quality engineer) is what I feel represents GOOD software testers the best. This is because I see the QE role as the evolution of that of a tester into a more technical role, being involved in many areas of development. In the same way as the team’s DevOps, the quality engineer aids in the shift-left testing process.

QE Team: The Unique Role of the QE

A QE is not a developer who focuses on software testing (such as an SDET), nor is it someone who focuses on software development and operations (such as a DevOps), nor is it someone who ensures software quality (like a QA).

A quality engineer is someone who applies engineering to different parts of the software development process for the benefit of quality.

Click to tweet

Among other things, a QE has knowledge of operations (infrastructure, servers, platforms) which helps in carrying out security testing, performance testing, integrating checks in a CI/CD scheme, etc.

On the other hand, it is important that a QE be able to manage test automation at different levels; from the API level, the UI level, or at the protocol level. And it is also essential that a QE have a certain sensitivity for quality, in the way that a good tester does.

In my point of view, it’s also essential that a tester who is dedicated to performance tests also knows Selenium, as well as how to define a functional testing strategy or define an acceptance criterion of a user story. A good quality engineer could also be aptly named a full-stack tester.

What Does a QE Do That Makes Them So Relevant Today?

A QE is so important today because the role itself is driven by agile methodologies and associated with the idea of shift left testing, since the tester has to be involved in early development tasks, even when there is not yet a complete product.

However, despite the rumors, advances in technology won’t render the role of tester and quality engineer obsolete. It’s clear that testers will be better prepared to work with today’s teams if they are able to review code, analyze components, automate tests, handle Jenkins and similar tools, as well as containerized environments like Docker. 

Thus, while the tester role is not disappearing, it’s clear that testers need to have more technical skill than ever before.

Agile development also influences this shift in the role of a tester because teams are usually composed of no more than nine members (aka two-pizza-teams), and to be self-sufficient, fewer people need to concentrate more knowledge and responsibility.

Therefore, perhaps some companies will have specialized teams or even outsource some tasks, but the success of that outsourcing will be greater if there is someone on the team who can knowingly manage the delegated tasks.

Read our whitepaper, “10 Mistakes Companies Make When Outsourcing Software Testing” for more insights on how to make this partnership work.

Activities of a Quality Engineer

Here’s my list of the main activities that may fall under the responsibility of a QE. This list could be longer, depending on the product, company size, context, etc.:

Define a Quality Plan and Strategy: Determine what to do and what not to do, according to the associated objectives and risks, given the context. How to test, with what tools, according to budget constraints, etc.

Code Revisions: Understand the code and suggest improvements, use SonarQube, and be able to make a plan of action based on a code analysis and technical debt report.

Functional Testing (also known as manual testing): A QE should be able to test a system and search for bugs with a highly critical eye. A QE must know the many techniques for designing software test cases and should handle exploratory testing with confidence.

Report Incidents: The objectives of testing are not only to find bugs but to get them resolved. For this, having the skills to properly report them for the sake of collaborating with developers is critical.

Automate Functional Tests at Different Levels: Perhaps we would not include unit tests here since these (at least for me) are for the developer, but a QE could perform periodic reviews of unit tests and suggest new test cases, analyze the coverage, and decide if the tests are at the right level.

A QE automates at the API level (REST, SOAP) and at the UI level with tools like Selenium. The QE should prepare the tests with a BDD (Behavior Driven Development) approach using Cucumber or a similar tool. Lastly, a QE should be able to define an automated test strategy, that is ideally based on the Cohn pyramid.

Test Performance: This implies being able to automate at the protocol level as well as analyzing monitoring data of different components, looking for bottlenecks and opportunities for improvement.

Test Security: Use different tools and techniques for access control, ethical hacking, etc. Like performance testing, this requires very specific knowledge of the technologies and platforms used.

Understand and Handle the Git Flow: It is fundamental that tests be aligned with the software development, and a very relevant point of contact between the two is the way in which code versions, different branches, and different environments are handled. The test code should be treated as part of the system code, using the same tools as a developer and the same version management methodology.

Utilize Continuous Integration Environments: All checks that are automated should be kept in a CI/CD testing environment such as Jenkins or something similar, in order to run them frequently. The QE should handle all the test artifacts, and dare I say it, the QE just might be a more heavy Jenkins user than the developers themselves!

Speak and Think in Terms of the Business: I mentioned many technical aspects above, but what makes an exceptional QE is often their understanding of the global, business-oriented vision. It should not be forgotten that all the quality work is for the business to thrive, so this vision is as important as the technical know-how.

Surely, there are several more activities we could add to this list. If any others occur to you, let me know in the comments!

Wrapping it All Up

I hope this post has made it more clear for you about what is a QE. I’ve taken a liking to the term because I feel it encapsulates all of what I have been tapped to do while working at Abstracta and what all of our engineers do on a daily basis.

While I started in computer science as a performance tester in 2005, I’ve participated in different roles in projects of functional testing, automated testing, security, usability, code review, and more and more lately in projects in which we support the building of a Continuous Integration/Continuous Delivery scheme.

All of our testers, over time, project after project, become more and more well-rounded, branching out into different areas of quality and acquiring diverse skills.

I believe, in my humble opinion, that this is what every tester should strive for since QEs are highly sought after in the most demanding markets, and will always be valued more (over a traditional QA). 

Whoever has the most complete vision of quality, even though their tasks may have been initially restricted to a certain area, will be more valuable to any organization.

At Abstracta, we have over a decade of serving some of the world’s biggest brands like Shutterfly, CA Technologies, and BBVA bringing dedicated QEs to the table. Are you in need of an outstanding, flexible QE? Contact us today!

Thanks for reading! What are your thoughts on what is a QE, exactly? Let me know your thoughts!

Looking for a Quality Partner?

Abstracta’s Testers Can Elevate Your Software Quality! Find out why in this article.

We are quality partners! Learn more about our solutions here and understand why we have received such praise. Contact us to discuss how we can help you grow your business.

Contact Us

Follow us on Linkedin & X to be part of our community!

79 / 437