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.
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).
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.
Follow us on Linkedin & X to be part of our community!
Tags In
Federico Toledo
Related Posts
21 Groups and Companies Testers Should Follow on Linkedin
Getting in the know on Linkedin (2020 update) Are you a tester on Linkedin? We all know the benefits of having a well-maintained Linkedin profile: recruiters reach out to you, you can show off skills and achievements, display personal recommendations, network, etc. But, did you…
Health IT and Testing: will software development equalize access to quality healthcare?
Health IT, eHealth, Healthcare software development. The phenomenon has more and more names of its own and is crossing new horizons all the time. The IT universe is revolutionizing the healthcare system, and its possibilities are expected to have global repercussions. The quality of technology…
7 Comments
Comments are closed.
Search
Contents
[…] 11. [Infographic] What is a QE (Quality Engineer)? | Abstracta […]
I have to admit that I am a slight bit bothered by the fact that the Software Testing world took over the title of QE from the more traditional aerospace and automotive world and ASQ. I am a certified QE. I have minimal knowledge on Software testing so I am not an SQE. Yet when I see all the job postings for QE they are for Software QEs. Just as the Healthcare industry has taken over the title Quality Assurance Manager. I think the Quality world would be better served if they redefined the acronyms to take any confusion out. A Quality Engineer, Manager, Specialist, Analyst, Technician, should be generic in respect to industry and a suffix should be added to describe the particular area of responsibility and industry as necessary.
Hi, Thank you for sharing this infographic withus. And I loved the way you have mentioned each and everything about Quality Engineer and their role. and yes you are right Quality Engineer think on the basis of business productivity. I will surely share your infographic with my QA circle. i am also sharing the blog regarding the securtiy threats facing E-commerce industry. https://www.testingxperts.com/blog/Security-Threats-Are-Haunting-the-E-commerce-Industry-How-Can-Security-Testing-Help
Hi Federico – Great Infographic. This is a good flow of information on the role of a quality engineer for different segments of software development process and testing. The list of activities you mentioned about responsibility of a QE is absolutely a resourceful breakdown.
Do check out this post on “How Software Quality Engineering Can Help Airlines Stay Successful”. Here is the link – http://www.cigniti.com/blog/how-software-quality-engineering-can-help-airlines-stay-successful/
Thank you!
Hey Federico – great article, I think you’ve done a good job at capturing what QE is today. I would be VERY interested if you took this to the next step and defined what a SDET’s role is and how that compares to your QE role. Given the roles of QA, QE, and SDET have become blurry over the last many years, I think it would be helpful to clarify what the most technical role in Quality, SDET, is now.
Thanks!
Hello Steven!! how are you? Thanks for the feedback! I appreciate it. I’ll take the idea for a future blog post 😉 Best regards!