This text primarily targets the ones thinking about starting a career in software testing, those not sure of the difference, and those convinced that they know what a software tester is and what a QA engineer is. Maybe the correct term is “QA tester”? Or it may be a “QA software tester”?

What does a QA Engineer do, and is it, in fact, the proper term?

If you ask a more experienced QA engineer what the difference between these terms is, they will offer their opinion and will most likely be correct. However, I will also provide my opinion (which is right and should not be questioned). Some colleagues may even be offended if you refer to them as “testers” (yes, it is true). They do not exclusively engage in “testing”; they actively participate with the developer team in the software development process and in preventing defects (bugs – errors).

QA is an abbreviation of the English word “quality assurance,” which, when roughly translated into Serbian, would mean “providing quality”. The term, however, is meaningless because a QA engineer cannot ensure software quality with their activities. Not even developers can guarantee that. This is where the confusion arises about what each organization considers to be “quality assurance” of the software because each of them has some specific procedures that (of course) are not explained in detail.

It is common in software companies to have a team of QAs hired by the organization to do manual and automated testing of different software, concentrating only on fixing as many defects as possible. Great, we got a product with a minimum of bugs (there is no such thing as bug-free software, no matter what the developers claim), and clients do not complain so often about software defects anymore. However, what do we do with the client who claims to be “satisfied” that the application no longer has so many errors and does not “freeze” non-stop but is dissatisfied with the software’s quality, which is why end-users abandon it? Many do not understand the difference between “quality assurance” and testing.

So what does “QA” or “Quality Assurance” mean?

Quality assurance is part of quality management, and it can be most easily understood as a situation in which we observe the entire project from a “bird’s eye view”. When we view something “from a distance,” we can see the strengths and weaknesses of our system and the potential problems that may arise on the way to achieving the desired goal. In this way, defects in the system are prevented at the very beginning (often even before they occur).

A QA engineer provides development methods and techniques, project analysis and long-term planning of the evaluation strategy of the testing process itself, which results in the fact that with these “prerequisites,” the software development process itself is raised to an adequate level. Essentially, QA engineers ensure that the entire software development process goes according to plan, from design, through software development and testing to product release.

What is meant by Software Testing?

Software testing involves performing operations to identify system defects or errors (“bugs”). The goal of testing is to create a final product with minimal errors before it reaches an end-user. Various methods are used in product testing and defining whether the functional requirements expected of the product are achieved and whether the product meets the wishes of the end-users in terms of design and compatibility with specific platforms. The topic will be covered another time.

What is important to emphasize is that testing can find defects in an already existing system or its smaller parts. The most significant advantage of software testing is the written reports that are clear to the participants in the development process (since there are various professional profiles involved in the creation and development) of the software, so they can determine where the “bug” originated.

Finally, what is the difference between a QA Engineer and a Software Tester?

The difference can be seen in their tasks – the task of QA engineers is to ensure that the existing software design meets the client’s expectations. At the same time, testing primarily refers to finding “bugs” and defects in the software itself.

QA is a broader term. It defines testing processes and evaluates whether the software is “fit” to work under certain conditions or loads. Testing focuses on creating test cases and implementing and evaluating them during software development.

If during software testing (as a software tester) you consider end-users and their experience while using the application or draw your team’s attention to how particular processes can be improved, and therefore end-users’ experience. In that case, you already think like a QA engineer.

Dejan Stanišin

Dejan is a QA engineer who writes and maintains manual and automated tests, constantly finding new suggestions to improve existing products and features. He enjoys spending his free time fishing with his family or taking long walks through the city or countryside.