Quality assurance engineers are very important for every technology product release. Depending on the size and structure of the team, QA is considered and performs different tasks, but it is appropriate to the specific needs of the organization. Typically, the titles for software testing work are designated as QA (Quality Assurance) or Tester. May also include the following specifications:
- Technology: Selenium Tester
- Domain: Healthcare QA
- Expertise (Expert): Senior QA Testing Specialist
Other variants of work related to QA are: QA analyst, QA engineer, Automation engineer, Test automation developer … However, these software testing variants summarize the same responsibility and role. self. Different names can be applied practically to a large group to indicate an individual's experience or expertise and give a rough idea of their competence. The most popular QA job titles according to STATE OF TESTING REPORT 2018 by PractiTest
The ambiguity and abundance of QA job titles can confuse how exactly the tester's proper role is with the bigger picture of software development. In this article, we highlight three key roles in software testing and build the skills and responsibilities specific to each role:
- Manual QA Engineer
- Automation QA Engineer
- QA Lead
For the record, we previously published an article describing software developer roles in terms of their seniority. For each role, we previously had an article describing the software developers' role in their seniority.
|Roles||Manual QA Engineer||Automation QA Engineer||QA Lead|
|Core function||Evaluate a handmade product by careful observation||Design of automatic repetitive tests to streamline the testing process||Managing workflow in QA team|
|Skills|| – Basic knowledge of software testing|
– Always have a view towards the user
– Data analysis skills
– SQL skill
| – Working in Agile environment|
– Coding skills
– Analytical skills
– Problem-solving skills
| – Broad knowledge of testing methods|
– There is both manual and automated testing skills
– Understanding of business areas and customer requirements
– Project planning, good task coordination and people
|Responsibilities|| – Request analysis|
– Test effort estimation
– Daily status reports
– Test cases documentation
– Defect reports
| – Document design for automated processes|
– Write, implement and monitor automated test suites
– Selecting new tools
| – Recruitment and supervision|
– Setting quality data
– Planning and controlling the testing process
– Participate in meetings between departments
|Tools|| – Test management tools|
– Defect Tracking Tools
– MS Excel
– Management and tracking bugs / task tools (Jira / Redmine / Asana / Backlog / …)
– SQL clients
| – Automation tools|
– Automation frameworks
– CI / CD tools
Main QA Engineering roles: Core function, Skills, Responsibilities and Tools they use
Manual Testing vs Automation Testing
While there is a growing trend toward automation testing, some test scenarios are more time-efficient and more costly to run manually or they cannot be automated, such as interactions. real user. In addition, manual testing is used as a first step in developing automated tests.
When there is only a short time, manual testing is a good choice because it is less about planning and more about testing. Relying on human skills is better to check usability. The user-friendliness of the application can only be judged by human observation – a manual test that helps find UI and usability issues that automation tests cannot. identified.
QA Engineers applies automated testing to run repeated tests and regression after making frequent code changes. Automation testing is also preferred for load testing, helping to verify the performance of the system under load conditions. Despite initial costs, tautomation testing is faster and less error prone than manual testing. Moreover, automated tests can be reused and easily run on different machines.
In case you are interested in more detailed analysis of manual testing compared to automated testing , we will have an article summarizing these methods.
Manual QA Engineer
As mentioned earlier, manual QA experts find faults in a system by relying on human observation. They need to ensure that the test requirements match the testing objectives. After QA Lead develops the test plan with a detailed understanding of the testing process (including testing workflow) (including testing strategies, environmental requirements, test schedules, functions to be tested, resources and roles as well as responsibilities, deliverables, exit criteria, tools, …), tester test cases – scenarios that describe input action and expected response.
While running the test, QA engineers compare the actual results with the results stated in the test case, recording errors if they do not match. The bugs found are reported to other departments during the test execution status report or through any bug tracking and management tools, e.g. Jira, Redmine, Backlog, Asana, etc.
The life cycle of manual testing. Image credit: Abhishek Desai
After the development team reports that the bug has been resolved, a QA engineer must verify that the problem has been fixed. The workflow of QA engineer is managed in daily status reports to track the progress of the project and each relevant tester. The status reports come in different forms: email, document or a live meeting. You can read more about artifacts that optimize the software testing process in another article .
QA Testing Status Report. Image source: Software Testing Help
Other popular titles for Manual QA: manual tester, software test engineer, QA analyst.
In manual software testing, there are three levels of seniority: unior, middle, and senior QA engineers. We will analyze the role of QA manuals about their responsibility skills and the various tools they handle, considering seniority levels.
Manual QA engineer skills
Basic knowledge of software testing. To enter the field of software testing, junior needs to have a proper understanding of key concepts and processes: the whole life cycle of defects; differences of testing levels, methods and classifications ; Check technical estimates.
Bug life cycle. Source: ToolsQA
However, to become a mid-level QA engineer, the tester must have a solid knowledge of the software testing process, a deep understanding of the development life cycle and practical experience with different types of tests.
Fast learning: Because projects often allocate the least amount of time for testing, QA engineers need to learn quickly to be able to simplify the work and execute the assigned work on time. Need to quickly understand the requirements and purpose of the software, review the content just changed.
Ability to meet deadlines: QA engineers will be able to effectively plan their work in a way that allows them to be on time for their tasks.
User-oriented perspective: To design more realistic time scenarios, a QA engineer needs to understand who the end user is, what the product serves and how it will be useful. to customers.
Communication and collaboration skills: Having good communication and teamwork skills is essential for testers, because they continually interact with project team members, customers, and other Stakeholders. Mastering point-to-point communication will help QA engineer decide exactly what information to include in daily status reports.
Curiosity (Curious learning, research / Curiosity): Becoming a QA engineer means constantly asking questions about the quality of products. Often working with incomplete requirements, they need to ask meaningful questions that will bring more information and help carry out checks effectively.
Self-organized with no monitoring required / Autonomy: In contrast to a junior who works under constant supervision, a senior knows how to prioritize and estimate task performance without any help. Senior tries to modify their working style to fit the processes.
Communication tactics to work closely with a development team: Senior QA engineers often have to collaborate with developers: from reproducing the reported problem and pressing strong ways to fix critical errors and understand how to fix them.
SQL skills can be of much use for certain projects. SQL experience is required to verify the test data, insert, update, and delete the test data values in the database. Therefore, as an advanced specialist, senior QA engineer should have the listed database and SQL knowledge:
Distinguish the database types Connect to the database using SQL clients Understand the relationship between database tables, keys, and indices Write a simple SQL statement along with more complex join queries Interpret more complex queries
SQL skills can be heavily used for certain projects. SQL experience is required to verify test data, cinsert, update, and delete test data values in the database. Therefore, as an advanced expert, senior QA engineer should have knowledge of database and SQL listed basically as below:
- Differentiate between database types
- Connect to the database using SQL clients
- Understand the relationship between database tables, keys, and indices
- Write a simple SQL statement with more complex join queries
- Explain more complex queries
Manual QA engineer responsibilities (Tasks and responsibilities)
Daily status reports: QA engineer must inform the QA lead of the inspection activities performed through daily status reports.
Detailed defect reports: Detailed error reporting, requiring skills on how a particular AUT (application under test) works.
Listing improvement areas: List areas for improvement. Despite a new look at the product, junior QA is expected to have ideas on ways to improve the usability of the product.
Test cases documentation: middle QA has a professional threshold that allows them to write their own test cases. In addition, they must record test cases in a specific format that varies by organization.
Requirement analysis: Understanding the requirements provided by the customer and the relevant field of work is necessary to prepare the query list for QA lead.
Test effort estimation: A QA engineer always evaluates the effort required to complete a task effectively.
Contributing to test planning, designing, and estimation: Senior QA engineer is more experienced, responsible for providing input for high-level test scenarios, challenges, risks, resources, …, in test planning meetings. They should also help in designing the test and structure of high-level test scenarios into medium-level test cases. Based on their diverse experience, senior QA engineer is able to provide the most accurate testing estimates.
Manual QA engineer tools
In addition to using different desktop and mobile operating systems, browsers and web proxies for cross-browser testing, manual testers use the following tools.
Test management tools (TMTs) help organize the testing process. Using TMT, the manual tester can generate and store test reports, associating them with release requests. Some TMT are Test Manager , TestLink , SpiraTest , TestRail , HP-ALM (QC) .
Defect tracking tools (DTTs) With the help of DTTs, QA engineers track down bugs found in the application and create bug reports to communicate them to the dev team. Examples of DTTs are BugZilla , Mantis , IBM Rational ClearQuest .
MS Excel helps to write large sets of test cases and then imports them into TMTs. Test Studio is an alternative to Excel that provides a better UI experience and the ability to reuse test cases.
Project management software with features such as time tracking, wikis, task lists, Gantt charts, and more are a must for Agile projects. Jira is a popular product management option, as well as Redmine , YouTrack and Backlog .
SQL clients may be useful for specific situations in which manual QA engineer must connect to the database.
Automation QA Engineer
The roles and responsibilities of automation testers, or automation QA engineers, are more replaceable and they have more advanced skills than manual QA experts. Specifically, when they write scripts to run repetitive tests. Programming skills allow them to write automated test scripts. For this reason, they are often called developers in testing. Using various automation tools, these QA engineers design, build, test, and deploy effective test automation solutions. Their goal is to automate as much testing effort as possible with a minimum of code. In this way, they optimize the test, if done manually, which will consume a large percentage of testing resources.
Life cycle of the automated testing process. Source: Kellton Tech
Other common titles of Automation QA: SDET (Software Development Engineer in Test), technical tester.
Automation QA engineer skills
Coding skills: Knowing the common computer languages will allow automation QA engineers to write code to automate testing processes. The most popular programming languages for test automation are Python and Java, followed by Ruby, С ++, Perl and PHP. With specific and comprehensive testing support packages, Python allows you to grasp the nature of test cases. Although Java is a fairly complex language, it is widely used and many examples can be found on search engines. Java has a diverse platform of tools and packages, and seamless integration with Java is easy by integrating with automation tools like Jenkins. While juniors hardly know a programming language, seniors are good at some code languages. That allows them to work seamlessly in any team, regardless of the language they use. Besides, they need to master the languages needed for various automation testing technologies.
Working in an Agile environment: Although primarily working in Agile, automation QAs should understand how automated QA processes work there.
Analytical skills: After examining bug reports, automation QA should prioritize necessary tests and streamline application functions by automated testing.
Problem-solving skills: Problem-solving skills help automation QA engineers find errors effectively and create fixes for them.
Automation QA engineer responsibilities
Writing, executing, and monitoring automated test suites: Writing, executing and monitoring automated test suites. QA automation engineers design automated tests by creating scripts that run automated testing functions. This includes defining priorities for test scenarios and creating execution plans to perform these scenarios.
Designing documentation for automated processes: Design documentation for automated processes . These documents include test plans, test procedures and test cases.
Using automation testing frameworks: In summary, testing frameworks are a collection of practices and tools to create and design test cases more effectively. Although an optional part of the automated testing process, an organized framework helps reduce maintenance costs and test efforts while making the test automation code reusable, maintenance, and stable. specified. Building automation frameworks is an advanced task for senior automation QA engineers.
New tools selection: Automation QA engineers may be responsible for researching, proposing and deploying tools to increase the automation of the project. They proactively incorporate innovative automated testing strategies and toolkits into overall development processes. These new solutions often appear as continuous integration tools (CI) and continuous delivery (CD) , especially when it comes to regression testing.
Automation QA Engineer tools
In addition to the tools mentioned for a manual QA engineer, an automation tester uses the following.
Automation tools. Most popular of them are Selenium, TestComplete, Katalon Studio, and Ranorex. If you are considering having automated testing in your project, our article on the comparison of automated testing tools should be of use to you.
Automation frameworks. Instead of building elaborate automation frameworks from scratch, automation testers can also make use of ready-made products, like Serenity, a Java-based framework, or developer-centric Cypress, etc.
In addition to the tools mentioned for the manual QA engineer, the automation tester uses the following.
Automation tools: The most common of which are Selenium , TestComplete, Katalon Studio and Ranorex . If you are considering automated testing in your project, you can refer to our article on comparing automated testing tools .
Automation frameworks: Instead of building complex automation frameworks from scratch, automation testers can also use ready-made products, such as Serenity , Java-based framework or centralized developer Cypress,. ..
In addition to handling daily tasks such as setting up metrics, monitoring internal members, managing external resources and designing testing programs, QA lead has a lot of work responsibilities, because they have to perform Take whatever action is needed to meet the quality objectives.
QA Lead time is divided between responsibilities in a project. Source: Software Testing Help
Other common titles of QA Lead: test lead, lead QA analyst, test manager.
QA lead skills
Profound understanding of the business area and the client's requirements. This is necessary to determine a test strategy, test goals, and objectives.
Being good at project planning, task, and people coordination. All management activities, including defining the task lists for subordinates, managing the necessary resources, and making sure necessary testing activities are being executed on time, fall on a QA lead's shoulders.
Including manual and automated testing skills It is necessary for the QA lead to experience both manual and automation testing so they can determine which cases will benefit the best from manual testing and need automation.
Extensive knowledge of testing approaches: The QA lead needs to be well aware of the methods, levels and types of testing and testing tools to choose the most appropriate method for the project. Moreover, they need to update the latest trends and technology.
Insights into business areas and customer requirements: This is necessary to define a testing strategy, testing objectives and objectives.
Good project planning, task coordination and people All management activities, including identifying task lists for subordinates, managing necessary resources and ensuring necessary activities are being carried out Show on time, lying on the shoulder of QA lead.
QA lead responsibilities
Prepare testing strategy: QA leads determine how to set up the test environment and how to manage information flow, which testing tools are implemented, and adopt industry-accepted methods. In addition, QA leads set up templates for testing documents, reports and other processes. Therefore, their work has a lot of responsibilities.
Accept and clarify the request . A QA lead should ensure that the project requirements are correctly defined. If not, they need to clarify them through communication with the customer.
Setting quality metrics: QA lead will help developers build metrics to measure supply quality. There are separate metrics for error classification, metrics to determine efficiency or regression rates and metrics to determine whether the original quality has been delivered.
Test planning and control: The QA lead should develop test plans and procedures, pre-test activities, plan budgets for tests, and prepare test effort estimations. Through ongoing analysis, a QA lead checks to see if the team is conducting the processes correctly. A QA lead also tracks the perfomance of each tester: check what type of defect the tester can detect and where there is a tendency to miss out on errors.
With the help of the equirements traceability matrix capture two-baseline documents – requirements and test cases – QA lead checks to see if current project requirements are met and all test cases are corvered.
Requirements traceability matrix. Source: Opencodez
Recruitment and supervision. A QA lead is responsible for picking candidates for QA positions and afterwards identifying whether there's a lack of knowledge or a skill gap that requires more training.
Represent QA team at meetings across departments. A test lead takes part in different cross-department meetings and updates the customer on the progress of testing activities.
Continuous test process improvement. A QA lead always aims at optimizing the test process, including the use of appropriate testing tools, test techniques, and test automation. If for some reason the team underperforms, it's a QA lead's responsibility to identify and fix the issue.
Recruitment and monitoring A lead QA is responsible for selecting candidates for QA positions and then determining whether a lack of knowledge or skills gap requires more training.
QA team representative at meetings between departments A test test lead participates in meetings between different departments and updates to customers about the progress of the testing activities.
Improve continuous testing process: A lead QA always aims to optimize the testing process, including the use of appropriate testing tools, testing techniques and test automation. If for some reason the team is underperforming, it is the QA lead responsibility to identify and fix the problem.
QA lead tools
The QA lead needs to demonstrate proficiency with the manual and automation tools used for the project. In addition to that, they use various management tools.
Project management tools: mentioned earlier (Jira, Redmine, YouTrack, Backlog, …) are important for QA leads because they help determine how to introduce methods to teams, how to train. juniors and how to track progress and quality throughout the development process.
The role of QA Engineers in Software Development Life Cycle (SDLC)
By viewing the SDLC (Software Development Life Cycle) from the tester's context, we can track the relationship between the tester and other parts that have developed from Waterfall to Agile, then to DevOps.
In Waterfall environment, QA engineers are restricted to their domain and separate from other SDLC areas. About getting something to test from the developers, the QA team plans to test it out on its own. Although they interact with other roles, they still act as an independent branch of SDLC.
Testing domain in Waterfall model Image Source: “ A Practical Guide to Testing in DevOps ” by Katrina Clokie
According to Agile's approach, product quality is considered as a collective responsibility. As a result, other roles began to get involved in testing, collaborating as a large group: testing ideas were being shared, developers doing more unit testing, and current business areas. Also linked with QA processes.
In Scrum , during the sprint stage, QA developers and experts collaborate on the same task to avoid surprises and errors.
Testing domain in Agile Image Source: “A Practical Guide to Testing in DevOps” by Katrina Clokie
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.
However, Agile still has its limits when development ends when the product is transferred to production. Although Agile shapes a cross-platform group, it lacks active team members, support, etc.
Finally, DevOps goes further by integrating development with activities into an infinitely tested cycle at each stage. Tiến hành liên tục và tự nhiên, thử nghiệm là một phần của mọi nhiệm vụ khác trong dự án.
Khái niệm kiểm thử liên tục (continuous testing) trong DevOps có nghĩa là việc thực hiện automated tests không thể tách rời khỏi đường ống software delivery, nhằm phản hồi tức thì về các rủi ro kinh doanh liên quan đến việc phát hành phần mềm. Do thử nghiệm liên tục (continuous testing), vai trò của thử nghiệm ngày hôm nay được mở rộng rất nhiều để đối phó với việc phát triển và phân phối sản phẩm phức tạp và tăng tốc.
Testing trong DevOps. Image credit: Dan Ashby
Các vai trò bên ngoài liên quan đến thử nghiệm DevOps có thể là analytics team, infrastructure, giám sát và hỗ trợ – tất cả các loại vai trò khác nhau trong domain hoạt động. Ở đây có lợi ích chung vì không chỉ những người này đóng góp giá trị cho thử nghiệm, mà nhóm thử nghiệm còn cung cấp cho họ thông tin cho công việc của họ.
Testing domain trong DevOps Image Source: “A Practical Guide to Testing in DevOps” by Katrina Clokie
Full-stack QA Engineer: a Tester of the Future
Với các mô hình phát triển mới – Agile và DevOps – kỷ luật thử nghiệm mở rộng để ảnh hưởng đến các team khác làm việc trong cùng một dự án. Vai trò của một tester tiếp tục phát triển, giúp các QA engineer có thêm sức mạnh trong một công ty.
Core skills of the modern QA Engineer Source: Redgate
Bằng cách kiểm tra tất cả các khía cạnh của chất lượng sản phẩm, chẳng hạn như functionality, usability, performance, security, globalization (toàn cầu hóa) … và kết hợp các chiến lược và công nghệ khác nhau để kiểm tra một ứng dụng, tester chắc chắn có thể được gọi là full-stack QA engineer. Họ có sự kết hợp phong phú giữa kiến thức domain, technical skills và chuyên môn testing, cho phép họ phù hợp với nhu cầu hiện đại về giao hàng nhanh. Do đó, mọi tester nên theo đuổi con đường của một full-stack QA engineer, người tham gia vào vòng đời phát triển dự án ngay từ đầu và do đó, có tác động lớn hơn đến sản phẩm, dẫn đến chất lượng cao hơn bao giờ hết trước.