Most often, software testing job titles are designated QA (Quality Assurance) or Tester. They may also include the following specifications:
- technology: Selenium Tester;
- business domain: Healthcare QA;
- subject of testing: Database Tester, API Tester;
- testing type: Performance Tester, Security tester; and
- expertise: Senior QA Testing Specialist.
Most popular QA job titles in 2020-2022, Source: STATE OF TESTING REPORT 2021 by PractiTestAs we can see, software testing roles appear in a wide range of job titles. Some of them execute test cases without using any automation tools. Others, having the knowledge of programming languages, write autotests and create automation frameworks or other testing tools for the team.
Google, for example, enables consistent quality by blurring the lines between testers and developers. They expect developers to test their piece of code, while testers provide them with the necessary infrastructure. The QA market is gradually shifting towards a unified role of a testing professional that is able to automate, develop testing tools, and even write production code when necessary.
But let’s return to today’s realities. Looking at the map of testing professionals by PractiTest, we can notice a range of titles that dominate year after year. Among them, we identify six roles that most fully represent quality assurance expertise. They are:
- Software Test Engineer,
- Test Analyst,
- Test Automation Engineer,
- Software Development Engineer in Test,
- Test Architect, and
- Test Manager.
Software testing roles and their core functionsIn this article, we highlight the skills and responsibilities for each role. We also describe the instruments they most often use. But these tools aren’t limited to a single position. Others can also leverage them at some point.
Prior to diving in, note that due to inconsistency that spans the industry, job descriptions may vary depending on the market and the company. So we also included alternative interpretations when relevant.
Software Test Engineer (STE): the key quality assurance professionalSoftware Test Engineer is an umbrella term for many specialists who are versed in different testing approaches including automation, exploratory testing, performance testing, etc. But here as we identify the six roles, by STE we mean a testing specialist who minimally relies on automation. Despite having a strong tendency towards automation testing today, some test scenarios can turn out to be time- and cost-consuming or they are just not possible to automate, like real user interactions.
Test Engineers find defects in a system and make sure that test requirements match test objectives. After a test plan with a detailed understanding of the testing workflow is completed (including test strategy, environment requirements, test schedule, functions to be tested, resources and responsibilities, deliverables, exit criteria, tools, etc.), testers write test cases — scripts describing an input action and an expected response.
While running a test, STEs compare the actual result with the ones outlined in the test case, logging a defect if they don’t match. The found defects are communicated to other departments or other team members in test execution status reports or via any bug tracking and management tool, e.g., Jira.
Life cycle of the testing process, Image credit: Abhishek DesaiOnce the engineering team reports that the defect is resolved, an STE must verify whether the problem is now fixed. Their workflow is managed in daily status reports that monitor the progress of the project and each tester involved. The status reports take different forms: an email, a document, or a live meeting. You can read more about the artifacts that optimize the software testing process in our article.
QA Testing Status Report. Image source: Software Testing HelpSTE responsibilities:
- analyze requirements and prepare a query list. If requirements are incomplete, they need to ask meaningful questions that will yield more information and help perform testing effectively;
- write and execute test cases to find system bugs like UI and usability issues, etc.;
- conduct exploratory testing;
- check consistency across devices, browsers, and operating systems;
- provide inputs on high-level test scenarios, challenges, risks, resources, test estimates, etc., during test planning meetings; and
- in some cases, STEs can also cover test automation tasks.
- deep understanding of software testing, its main concepts, and processes: the whole bug life cycle; different testing levels, methods, and types; test estimation techniques;
Bug life cycle. Source: ToolsQA
- ability to work in an Agile environment;
- critical thinking and analytical skills to examine bug reports and prioritize necessary tests, what information to include in the daily status reports, prioritize and estimate task execution;
- good communication and teamwork skills to interact with project team members, clients, and stakeholders as well as work closely with the dev team - from reproducing the reported issue and emphasizing the fix for critical bugs to understanding how the bug has been fixed; and
- programming skills are always a plus including coding, basic SQL knowledge to extract data for tests, and so on.
- quality management tools (Micro Focus Quality Center, TestDirector, Test Manager, TestLink, SpiraTest, TestRail, HP-ALM (QC)) to organize and manage all phases of the software testing process including planning, running tests, and tracking defects, generating and storing test reports, and interlinking them with the release requirements;
- defect tracking tools (BugZilla, Mantis, IBM Rational ClearQuest) to track the defects found in the application and generate bug reports to communicate them to the dev team;
- MS Excel or Test Studio to write large sets of test cases and later import them into test management tools;
- project management software (Jira, Redmine, YouTrack, and Backlog);
- SQL clients to connect to the database;
- API testing tools (Postman, SoapUI, Katalon) for automated checks. They offer predefined snippets to automate API testing without the need to write code;
- IDEs for writing code (VSCode, Visual Studio, IntelliJ IDEA);
Next, we’ll talk about the Test Analyst. Small teams can assign an experienced STE to perform this role. The US market often equates the Test Analyst role with an STE, since the testing expertise is currently drifting towards merging all QA roles into a single one. However, we are still going to discuss the Test Analyst role separately as there are several differences between these two specialists.
Test Analyst: business-domain-driven testing expertTest Analyst is one of the controversial roles in the IT industry that actively undergoes changes. In many companies, especially in the US, a Test Analyst’s responsibilities are covered by senior software test engineers. But since you can still encounter this title, let’s give it a closer look.
This role is less about technical skills and more about the understanding of business problems. Based on formal requirements, they determine what to test, prioritize test cases, monitor the test coverage, and evaluate the outcome. In addition, they can leverage business data. Learning about their users’ behavior, patterns, and most and least used features, testers are able to highlight the risky areas as well as indicate potential bugs.
When a Test Analyst gets involved in the software development cycle (SDLC), the duration and results of that involvement greatly vary. In Agile projects that are less formalized, a Test Analyst’s role may not be well-defined but is rather performed by the whole team. In hybrid models, a Test Analyst is mostly focused on the planning and design aspects.
Test Analyst responsibilities. According to the International Software Testing Qualifications Board (ISTQB), a Test Analyst’s work grounds on four pillars: test analysis, test design, test implementation, and test execution. They convert into the following responsibilities:
- accept and clarify testing requirements;
- identify and prioritize test conditions addressing product risks and features to be tested;
- define specific tests that must be designed for that area;
- design test cases and sets of test cases to cover test conditions;
- identify necessary test data to support test conditions and test cases;
- schedule test executions;
- develop test procedures and other quality documentation: test plans, test cases, and status reports for management;
- execute or delegate exploratory, automated, and regression tests;
- analyze actual results against the expected ones;
- participate in the technical review process contributing behavioral viewpoint.
Components of Test Analyst role,Source: ISTQBTest Analyst skills. Specific skill requirements may vary depending on the type of testing being conducted. Generally, they include:
- test design techniques;
- understanding the defect management process;
- knowledge of the business domain;
- experience in a variety of testing efforts;
- understanding of common software failures and faults;
- knowledge of the system or application-under-test; and
- understanding of the test automation process.
- test design tools like IBM Rational Quality Manager, QACoverage, Hexawise;
- test data preparation tools; and
- automated test execution tools.
Test Automation Engineer: tester with coding skills focused on automationAutomated testing is used to run repetitive and regression tests that require constant iterations due to implementing frequent code changes. Automation testing is also preferred for load tests, helping to verify a system’s performance under load conditions. Initially, automated tests take considerable investments, but it pays off when their fast execution speeds up the testing process. Besides, they are reusable and easy to run on different machines.
The key function automation QA Engineers perform is writing scripts and creating automation environments for repeated tests. Using different tools, they design, test, and deploy effective test automation solutions. Their goal is to automate as much of the testing effort as possible with a minimum set of code. This way they optimize the testing that otherwise would consume a large percentage of test resources.
Test Automation Engineers use testing frameworks - sets of practices and tools - to create and design test cases more efficiently. An organized framework reduces maintenance costs and testing efforts while making test automation code reusable, maintainable, and stable.
Life cycle of the automated testing processTest Automation Engineer responsibilities:
- write, design, and execute automated tests by creating scripts that run testing functions automatically;
- maximize test coverage for the most critical features of the system;
- determine the priority for test scenarios and create execution plans to implement these scenarios;
- write documentation for automated processes including test plans, test procedures, and test cases;
- build test automation frameworks;
- log and document bugs in the tracking system; and
- set up Continuous Integration.
Test Automation Engineer skills. A Test Automation Engineer has an STE’s skills but they are automation-oriented. In addition, to that:
- common computer languages required for different automation testing technologies: Python, Java, Ruby, С++, Perl, PHP, C#, etc.; and
- platform specifics (a web application or mobile app).
- ready-made automation frameworks instead of building elaborate automation frameworks from scratch: Serenity BDD, a Java-based framework, or developer-centric Cypress, etc.;
- mobile automation testing tools for Android, iOS, and cross-platform ones;
- API testing tools that require strong coding skills to create tests: REST Assured, RestSharp, jMeter, etc.; and
- Continuous Integration Tools (Jenkins, TeamCity, Bamboo, etc.).
Software Development Engineer in Test (SDET): Jack of both tradesInvented by global corporations like Microsoft and Yahoo, a Software Development Engineer in Test was formed at the intersection of testing and development skills. While a developer writes the product code, the SDET ensures its proper functioning with the test code and writes tools code to help write, run, and maintain the product code and test code.
SDET’s responsibilities. They must do everything an automation tester does, plus build testing tools. Below, we’ve listed the key distinct tasks that an SDET is to perform:
- understand, analyze, and develop complex test data sets;
- build different test scenarios and acceptance tests;
- design and implement automated tests and test environment;
- develop test infrastructure tools for the team on multiple application platforms (web, mobile, and desktop);
- perform low-level testing like unit testing and module testing;
- collaborate with developers, program management, and design teams on technical implementation and user scenarios; and
- work with deployment teams to resolve issues in the system.
- strong coding, design, and analytic skills;
- proficiency in developing automated test systems;
- strong SQL/DB skills;
- experience with common data structures, algorithms, and distributed systems;
- knowledge of backend services and integrations;
- microservice architecture that modern back end is often built upon with its moving parts, dependencies, and interactions; and
- understanding of the cloud infrastructure environment.
Technical skills expected from SDET, Source: Guru99SDET tools: Generally, an SDET uses the same tools as Test Automation Engineers that we described above.
Other titles of SDET. The distinction between Test Automation Engineer and SDET may be confusing at first glance. In a classic version, an SDET possesses a more distinct quality mindset and works with the project’s infrastructure designing test automation tools. Meanwhile, a Test Automation Engineer is focused primarily on coding and then quality. He or she automates test cases using off the shelf tools. Still, companies aren't very strict with the role description.
Test Architect: highest testing technical authorityLike the Software Architect, this senior QA specialist focuses on developing the whole testing infrastructure. Some experts consider Test Architect an overly fancy title and instead describe it as a senior test role with wide strategic scope. Others, like Siemens, disagree with such interpretation. They believe that today’s systems that are growing in size, volume, complexity, and unpredictability, require adequate, sustainable, and well-designed test architecture. And that’s what a test architect is responsible for.
Test Architect responsibilities:
- design test architectures (test automation frameworks, code libraries, etc.) for the team to use across the platforms;
- identify tools and technologies for implementation that align with business goals, present infrastructure, and the team skill-set;
- manage test data;
- define strategic direction for testing by providing guidance, feedback, and suggestions to improve quality practices across an entire engineering team;
- provide technical mentoring and training; and
- monitor the effectiveness of the testing function and bring about improvements through insights gained via analysis at all stages of the SDLC.
Still, a Test Architect is quite a rare position, justifiable mostly for large, hierarchical organizations. In small and mid-size companies, these tasks rest on the Test Manager’s shoulders.
Test Architect skills:
- in-depth knowledge of the current industry-wide testing techniques, tools, and methodologies;
- project management skills including effective communication between the team and client - close collaboration with other roles and stakeholders;
- experienced software analysis and design;
- solid background in software quality and testing;
- strong understanding of functional and non-functional testing; and
- profound coding and test automation skills.
Test Architect competencies vs Test Manager ones as defined by Siemens, Source: Peter ZimmererTest Architect tools:
- test automation frameworks like Protractor, Selenium, TestNG, or JUnit;
- continuous integration (CI) tools like Jenkins;
- source code management tools like GIT or Team Foundation Server;
- Application Lifecycle Management tools.
Test Manager: a Project Manager in testingHere, we’ll talk about a Test Manager as a management position within the QA team which is most common for outsourcing and custom software development companies. Considering the tendency for cross-functional teams, the Test Manager as a role can be handed over to the Team Lead, Squad Leader, or even Project Manager for small teams. Anyway, we can still see demand for Test Managers in a number of companies big and small.
Test Manager responsibilities:
- prepare test strategy applying industry-accepted practices and set quality standards;
- set metrics to measure the quality of delivery;
- plan and control the testing process: define the task lists for subordinates, schedule testing activities, calculate the testing budget, estimate test efforts;
- keep track of each tester’s performance: checking what kind of defects he or she is able to uncover and where there’s a tendency to miss out on bugs;
- pick candidates for QA positions and supervise them afterward; and
- represent the QA team at cross-department meetings and update the customer on the progress of testing activities.
Requirements traceability matrix that Test Manager uses to check if the current project requirements are met and all test cases are covered, Source: OpencodezIn addition to handling day-to-day duties, Test Managers have a wide range of job responsibilities, as they have to take any action needed to meet the quality goals.
Test Manager’s time is divided between responsibilities in a project. Source: Software Testing HelpTest manager skills:
- experience in automation testing to define which cases will benefit from this approach and where it’s better to test without spending time on automating;
- wide knowledge of testing approaches;
- profound understanding of the business area and the client’s requirements to determine a test strategy, test goals, and objectives; and
- good project planning, task, and people coordination.
- modern software tools and infrastructure and
- project management tools (Jira, Redmine, YouTrack, Backlog, etc.) to introduce methods to the teams, train juniors, monitor progress and quality throughout the development process.
The Role of Test Engineers in the Software Development Life CycleBy viewing SDLC from a tester’s perspective, we can track how the relationship between testers and other departments have evolved from Waterfall to Agile, and then to DevOps.
Our 11-minute long video will guide you through the stages of software testing establishment to how it's done todayIn the Waterfall environment, QA engineers are limited to their domain and separated from other areas of SDLC. On getting something to test from developers, the QA team plans the testing on their own. Although they interact with other roles, they still function as an independent branch of SDLC.
Testing domain in Waterfall model, Image Source: “A Practical Guide to Testing in DevOps” by Katrina ClokieIn the Agile approach, the quality of the product is considered a collective responsibility. Consequently, other roles start getting involved in testing, collaborating as one big team: the testing ideas are being shared, developers do more unit testing, the business domain is now also linked to the QA processes.
In Scrum, during the sprint, developers and QA specialists collaborate on the same tasks to avoid surprises and errors.
Testing domain in Agile, Image Source: “A Practical Guide to Testing in DevOps” by Katrina ClokieHowever, Agile still has its limits as the development ends when the product is passed over to operations to be released into production. Although Agile shapes a cross-platform team, it lacks operations team members, support, etc.
Finally, DevOps goes further by merging development with operations into an infinite cycle that has testing at each stage. Conducted continuously and naturally, testing is part of every other task in the project.
The concept of continuous testing in DevOps means that the execution of automated tests is inseparable from the software delivery pipeline, which aims at instant feedback on the business risks associated with a software release. Because of continuous testing, the role of today’s tester is very much extended to deal with complex and accelerated product development and delivery.
Testing in DevOps. Image credit: Dan AshbyThe outside roles involved in DevOps testing may be the analytics team, infrastructure people, monitoring and support – all different types of roles within the operations domain. Here lies mutual benefit since not only do these people contribute value to testing, but the testing team provides them with the information for their jobs.
Testing domain in DevOps, Image Source: “A Practical Guide to Testing in DevOps” by Katrina ClokieWhatever the position title on the job site is, be it a Test Ninja or QA Guru, well, it’s just a name, so you better read the list of responsibilities carefully when making a decision. And even knowing what to expect, your actual tasks might differ depending on the project. So it’s always important to develop your skills.
Full-stack Test Engineer: a Tester of the FutureWith current development models – Agile and DevOps – the discipline of testing expands to influence other teams working on the same project. The role of a tester continues evolving, giving test engineers more power within a company.
Modern testers not only must work with the code before it goes to production, but also consider prevention and mitigation of product defects across the entire software development cycle. This means higher responsibility in terms of introducing acceptance criteria and testing approaches in engineering teams.
Core skills of the modern Test Engineer, Source: RedgateBy taking charge of all aspects of product quality, such as functionality, usability, performance, security, globalization, etc., and combining different strategies and technologies to test an app, testers can surely be called full-stack test engineers.
They have a rich combination of domain knowledge, technical skills, and testing expertise, that allows them to match modern demands of fast delivery. Therefore, every tester should pursue the path of a full-stack test engineer, who is involved in the project development lifecycle right from the start and, consequently, has a greater impact on the product, which results in a higher level of quality than ever before.