When people download an app or visit a website, they expect a certain quality from the program: it’s convenient to use, stable and fast. In order to prevent customers from leaving for competitors because the application «kicks you out to authorization» every 15 minutes, developers try to produce the highest quality products.
Each company defines quality standards for itself and decides how completed a product is to release. Depending on the requirements and budget, QC-, QA-engineers or testers are hired to maintain the standards.
For example, two QA-engineers are working on one of our outstaff projects. They are involved in all stages of development: from writing terms of reference to release. More about this project in another article.
Here we tell you how QC-, QA-engineers and testers differ. There are comparison tables that will help you to understand which specialist is needed on the project at the end of the article.
What a tester does
It’s almost impossible to write a program that works 100% bug-free from the first time, so features are tested before releasing an entire product or an update.
Testing is the final stage of development before release.
Testers are engaged in testing functions only. They don’t get into other development processes and don’t analyze the causes of errors. Usually they check user scenarios using ready-made checklists and look for discrepancies between what the developers have implemented and what was in the customer’s requirements.
For example, you need to test a landing page with a feedback form. The tester completely imitates the user’s actions: he enters the site, writes an email and name into the form, and clicks «send». If the form works as it should, he marks in the checklist that the test is passed. If the form doesn’t work or doesn’t work the way it’s written in the requirements, the tester notes that the test is not passed. The tester doesn’t check what the server responds, he just describes the steps of reproducing the error in a bug report.
In a quality assurance department, a tester is new to the profession. He doesn’t have deep technical knowledge and needs the help of an experienced mentor. The tester’s knowledge level is sufficient for prototype projects, where it’s enough to achieve MVP level. There is no need to spend budget on qualified QC- and QA- engineers to test a hypothesis.
If there’s no tester in a company, then his role can be temporarily fulfilled by any of the employees who know the product requirements well. Prototypes or features for internal use are often tested by the employees who ordered the development.
What a QC-engineer does
QC is short for quality control. A QC engineer, like a tester, joins the project when the development is complete. He checks that the product has turned out the way the customer wanted it to.
QC-engineer has deeper knowledge and more skills than a tester: he makes checklists himself and can analyze the server response. It’s an independent and often experienced employee who doesn’t need a mentor.
Tasks of a QC-engineer:
- creates checklists and test-cases based on requirements that the analyst has written;
- tests the product for compliance with the requirements;
- sometimes performs regression testing — if it’s needed on the project and if QC has enough knowledge;
- sometimes analyzes the causes of errors through server logs — depends on level: junior or middle;
- can perform examinations with the help of autotests — if qualified enough, knows how to run autotests and analyze the result;
- creates bug reports.
The main task of QC is testing, that’s why they are also called QC-testers.
If QC finds bugs during the testing process, he makes a bug report and returns the task to the developer. After fixing it, he tests it again and if everything is correct, passes it to the release.
What a QA-engineer does
QA is quality assurance. A QA-engineer is a specialist who helps to produce a quality product. He is involved in all stages of a project: analytics, development, testing, testing features in the product, helping tech support to find the causes of bugs.
A QA engineer has more technical knowledge and responsibilities on a project than QC and tester do.
Tasks of a QA-engineer:
- analyzes requirements and makes recommendations to the analyst;
- writes project documentation: test plan, checklists, test-cases, reports on test results;
- checks new features for compliance with customer requirements and user expectations;
- performs regression testing of the entire service to make sure that the new features haven’t changed the work of other sections in any way;
- performs examinations with the help of autotests. Some QAs can write simple autotests on their own;
- assign tasks to programmers for improvement if an error is found;
- after release, additionally test updates in production — an environment with real data, not tested;
- look for reasons of errors when users contact tech support with a problem.
Part of a QA’s job is the same as QC. For example, QA also tests a feature for compliance with customer requirements. QA usually performs more tests than QC — not only functional but also non-functional tests. QA is also good in back-end testing.
What other tests QA performs, we described in detail in the article «How QA engineers test systems at OrbitSoft».
When a project needs tester, QA, and when QC
QC knows and can do more than a tester. And QA can do more than QC. But it doesn’t mean that everyone needs only QA. Each project requires a different specialist.
A tester is usually new to the profession and needs a mentor. QA and QC are specialists of the same level, but with different skill sets. A middle QC knows his job well, but cannot perform tasks beyond that. For example, QC is unlikely to be able to notice an error in logic at the design stage. Not all QCs know how to run autotests.
Who is needed on a project depends on a combination of factors: type of project, quality standards, budget.
Responsibilities of different quality specialists
How to understand what kind of quality specialist is needed on a project
Conclusion: tester, QA or QC — it depends on the task
- If a product is complex and analysts, developers, tech support need help, then hire QA.
- If the product isn’t complex and it’s enough to control documentation compliance, hire a tester or QC.
- If the project is MVP level or for internal use, then involve employees in testing.
- If there are more tasks that require more than one employee, then analyze and hire several specialists of different levels. It’s better to invite QA and 2 testers to the project than 8 testers: QA will support developers and analysts, and the testers will become QC in a year with an experienced mentor .
Consider outstaffing to save time and money on self-hiring. OrbitSoft has testers, QC- and QA-engineers for projects of any scale.