Introduction

Writing about the role of QA in software development teams is crucial to understanding the evolution of the area and the importance of moving away from the old perception that QA is limited to only “testing software”. This article aims to clarify the differences between the roles of Tester, QA (Quality Assurance) and QE (Quality Engineer) and challenges faced by a QA professional within a development team.

Differences between Tester, QA and QE

Tester is the more traditional and general used term and is more directly associated with performing manual tests. This function focuses on identifying bugs or defects in software, often operating at the end of the development cycle. The tester checks the product’s compliance with the established requirements, but his performance is generally reactive — he acts after the product or functionality has already been developed.

Quality Assurance (QA) is the process through which the product is subjected during the software development phase, when this process is clear and predictable, it allows the specified minimum quality expectations to be met. The term QA is also generally used in the job market to refer to professionals who work with software quality in teams. Calling a quality professional a quality assurance gives the impression that he is solely responsible for the quality of the product in general, and he is not!

“QA” (profession) expands the scope of action compared to a tester, focusing on the dissemination of good practices and ensuring that the development process is attended to by everyone from the beginning of the development cycle. More than finding defects, QA is involved in the planning, design, implementation and maintenance of processes that ensure product quality. This includes defining acceptance criteria, developing test cases and scenarios, risk mapping, development, automated testing, etc. The goal is to prevent defects to produce high-quality software.

Cool Tiago and Thamyres, if “QA” is not a profession, what should a professional who works with quality be called? Firstly, the professional needs to understand how software is designed, so that it is possible to define quality standards, understanding software engineering is a fundamental requirement for this, I am not saying that he needs to have completed a bachelor degree in the area, but yes, understand various aspects that will serve as a basis for your actions. Therefore, if a quality professional needs to know about software engineering, why not call him Software Quality Engineer, or Software Quality Engineer? As well, other areas have evolved over the years, Backend Engineer and Frontend Engineer, for example. When referring to a quality professional as “Quality Engineer”, it reinforces the idea to the market that this professional is also a software engineer, therefore, able to contribute to “more technical” activities such as defining testable architecture, code review, test automation at different layers, quick wins bug resolution, CI/CD, in addition to in-depth analysis of complex quality issues.

Conclusion

With that, I hope it has become a little clearer about the differences between Tester, QA (quality assurance process), QA (market profession) and QE (software engineer who works with a focus on quality). It is worth mentioning that this is a reading that we do based on our perception and experience in the area over the years in several different companies and teams, mentoring software quality professionals in different seniority and contexts. Other professionals who are references in software quality in the market also share this vision, such as Elias Nogueira on the podcast Quality Assurance (QA) vs Quality Engineer (QE) and Og Maciel in Quality Engineering (QE)

By: Tiago Góes and Thamyres Moraes