Testers: what do they do?
How is the testing process organized? What, specifically, do QA specialists check? What tools do testers use? Find the answers to these and other questions in the new article on the Anywhere Club blog.
The author of this article is EPAM Software Testing Team Leader Aliaksandr Belazor.
Quality Assurance engineers, or testers and QA engineers as they are commonly called, test software and look for bugs — defects that need to be fixed to ensure that the final product meets the specified requirements.
Levels of QA specialists
Specialists of different levels are involved in the testing process. While specific job titles and responsibilities may vary across different companies and projects, the overall hierarchy tends to be similar throughout the industry. Several categories of specialists can be identified, including those who:
The following job titles are typically used to identify a specialist's level of expertise and competencies: Junior QA, Middle QA, and Senior QA. Senior-level employees with additional managerial tasks may be further divided into Lead QA, Testing Team Lead, and Test Manager.
- Junior QA is a beginning tester with enthusiasm but limited experience. Sometimes, they hesitate to ask clarifying questions, which can cause tasks to take more time than desired.
- Middle QA has some experience in application testing and usually manages to complete tasks on time. Specialists at this level might, however, overestimate their abilities and they still require supervision from a lead or manager.
- Senior QA is a perfectly balanced employee, in my opinion. They possess deep theoretical knowledge and extensive practical experience. Specialists at this level can handle testing and also manage a small stream within a project, leading a team of several Junior or Middle QAs.
- Lead QA is responsible for product quality. In addition to testing, they: actively interact with the team; allocate resources; plan, describe, and implement quality assurance processes; and communicate with clients or stakeholders on the project. Lead QA serves as a mentor, sharing knowledge with junior employees, providing training, and conducting assessments.
- Testing Team Lead is a testing specialist with excellent communication skills and the ability to multitask. They manage the team and plan the future workload on the project.
- Test Manager participates in presales and upsell, and controls the overall scope of work for employees, while also engaging in project-related activities.
How is the testing process organized?
Testing specialists check software for bugs and also ensure product quality. It all starts with the presale phase: at that point, each specialist reviews the idea or future product, asks clarifying questions, participates in brainstorming sessions, and then provides their expert assessment. The next stage is requirement or documentation testing, during which a QA thoroughly studies the specifications and scope of work. Typically, there are already some inconsistencies and errors in the specifications at this point, but correcting them is relatively simple and cost-effective, so this stage should not be skipped. Next comes the detailed breakdown of stories and tasks, based on the test scenarios and checklists that are developed, and test suites are created.
During the testing process, QA specialists identify defects that are later analyzed. It helps to understand what frequently breaks down and where. As a result, the team is able to identify bottlenecks in development — component or code block — where errors often occur, and then correct them. Reports on what is being tested, and how, are compiled based on sprint results. A detailed report includes data on components, the number of tests, defects, and tasks, ensuring that the team can always see the current status. Reports are generally sent to various departments. Since they are intended for different parties — stakeholders, management, development teams — their content can vary, including different types of data and visualization methods.
Software testing is a relatively lengthy process, but a Lead QA can always define the terms of final testing to avoid excessive testing and ensure that the software product meets the stated quality. Even after the original project is finished, it may be expanded: QA specialists, along with the development team, may propose additional project or product development paths, since the team is already well-coordinated and all of the necessary tools are set up.
In development as a whole, and testing in particular, security is crucial. As a rule, access in programs is limited by a set of permissions for specific functionalities. For example, an employee with certain permissions can see a set of functionalities — fields, buttons, graphs, reports, etc. — while an employee without them won't. Different architectural solutions can represent the implementation of this functionality. Access matrices are created for user access testing. They describe different product parts, roles/user levels, and other parameters with indications of functionality corresponding to a specific access level.
Detailed security testing and vulnerability identification are carried out by QA specialists with expertise in penetration testing, who work with security testing tools.
Automated testing is one testing methodology that utilizes specialized tools. Its main advantage is the ability to cover a relatively large scope of test scenarios, from Unit and API tests to End-to-End (E2E) tests, in a short time. A drawback of this testing is the so-called "pesticide paradox": running the same scenarios in regular checks may not uncover new bugs. As a result, it requires consistent upkeep of all application versions, integrations, and tests after changes.
Within a team, the work of automation testers usually complements that of manual testers and vice versa.
Various tools are available to effectively organize the testing process. It's worth noting that even manual testers no longer perform entirely manual testing, instead using tools like Postman, Swagger, and SoapUI for integration testing. Additional auxiliary tools include HTML Viewer, JSON Formatter, Notepad++, and others. I recommend taking extra courses, since this can help you quickly understand tools like Swagger, learn to make correct requests in Postman, and consolidate everything into collections. This enables testers to assess the back-end before developing the front-end.
Different tools can also be used for preparing test cases, ranging from simple Excel files to advanced applications. It's very convenient when the entire testing team and, if necessary, the QA team on the client side, uses the same tools.
Quality Assurance engineers are a vital part of the development team. They discover software defects at various stages and participate in brainstorming sessions, thus enhancing the software product. Specialists of different levels contribute to the development of individual projects and of the company. Some projects opt out of testing to save part of the budget, but this has reputation risks if the final product has many flaws. In today's highly competitive software development market, companies that establish QA departments and invest in testing and in employee development hold a significant advantage.