Lately, we have been talking a lot about QA in one of the Underc0de groups, and since I am currently working as a QA in a software company, I will comment my personal experience in this area.
What is a QA?
To summarize in a few lines, QA (Quality Assurance) refers to the way of measuring the quality, not only of the product, but also of the development process.
In order to reduce costs, many companies skip the QA area because they consider it unnecessary or a waste of time, but in the long run it makes a difference. It is impossible for an application or project to be perfect, it will always have some defects; the mission of a QA is not only to find them, but also to help prevent them.
Tester vs. QA
Many people confuse the terms tester and QA, or lump them together, but they are two completely different profiles.
The tester is responsible for finding and reporting bugs in a system during the development phase, while the QA is responsible for ensuring the quality of not only the product itself, but also the entire development process.
In summary, a QA does the work of a tester, but a tester does not do the work of a QA. In other words, a QA is an advanced tester.
QA vs. QC
Quality Assurance (QA) and Quality Control (QC) are two terms that, because of the multiple meanings of “assurance” and “control,” can be open to different interpretations and cause confusion to the layperson in quality management systems.
“Quality assurance” can be defined as the set of planned activities implemented within the quality system that provide confidence that a product or service meets quality requirements.
When we talk about “quality control”, we are referring to the set of operational techniques and activities used to verify the quality requirements of a product or service.
According to ISO 900:2005 “Quality Management Systems. Fundamentals and Vocabulary”:
Quality Control (QC): the part of quality management concerned with meeting quality requirements.
Quality Assurance (QA): the part of quality management that provides confidence that quality requirements will be met.
Tasks of a QA
Analysis
Assists the Product Owner in defining tasks and acceptance criteria. The QA usually has a more horizontal view of the product and development, so he/she can help define user stories and make them clear to the developers.
Development of a Test Plan
Based on the acceptance criteria, it creates a test plan that includes different test cases, taking into account the different application flows.
Test Strategies
The test strategy to be used is defined according to the project status, timing, application size and other relevant factors.
Reporting
I don’t know if all QA’s do it, but I send weekly reports so that the PO is aware of the status of the platform (existing and fixed bugs).
Automated Scripts
We will discuss this topic in more detail in another blog post, but it is important to say that QA can be manual or automated. In the latter case, they create scripts that perform a certain task automatically. Of course, to be able to automate, it is necessary to know how to program beforehand.
Conclusions
So, we can say that a QA gives quality to the product, to the development and to the process. It is not a waste of money because the end customer gets a ready to use product.
Many companies that do not have a QA department deliver untested products and end up failing in production, spending money to fix the failures, and losing time to get up and running.