QA Roles and Responsibilities: Who Do You Need on Your Software Testing Team?
QA的角色和职责:你的软件测试团队需要什么样的人?
If you ask a ransom product owner about QA roles and responsibilities in software testing, they will most likely say that a QA team is a bunch of testers. They sit quietly all day and look for software bugs. Some product owners might mention a Team Lead – a person who manages the QA engineers, and maybe even an Analyst without being certain about what this person does.
It’s time for a huge revelation: a QA team is usually even more diverse. It consists of profs who perform different tasks and have various responsibilities. There may be several QA engineers, Test Analysts, Test Architects, Test Managers, QA Team Leads, and other roles, depending on the complexity of the project.
Now, let’s try to figure out what contribution each of these roles makes.
如果您向一个ransom产品所有者询问软件测试中qa的角色和责任,他们很可能会说qa团队就是一群测试人员。他们整天静静地坐着,寻找软件错误。一些产品所有者可能会提到一个团队领导——一个管理QA工程师的人,甚至可能是一个分析师,但并不确定这个人是做什么的。
是时候发现一个巨大的启示了:QA团队通常更加多样化。它由教授组成,他们执行不同的任务,承担不同的责任。根据项目的复杂程度,可能会有几个QA工程师、测试分析师、测试架构师、测试经理、QA团队领导和其他角色。
现在,让我们试着找出这些角色中的每一个都做出了什么贡献。
Key QA Roles and Responsibilities 关键QA角色和职责
QA Engineer Roles and Responsibilities QA工程师的角色和职责
A QA engineer carries out different tests. This member of a QA team checks a product for bugs and makes the lists of defects for developers to fix. Some suppose that QA engineers fix bugs, but they never do. They only report what to improve. The improvement itself is a task for developers.
There are several ways to run tests. These ways define roles and responsibilities of software test engineer. Perhaps you’ve heard about manual and automation testing. QA engineers with different qualifications are responsible for each type of testing.
The number of QA engineers working on a particular project depends on the particularities of this project. Automation is not always necessary, though it is more efficient in the long-term perspective. On the other hand, it is impossible to automate 100% of tasks. At least one manual QA engineer is always involved.
QA工程师执行不同的测试。QA团队的这名成员检查产品的bug,并列出缺陷清单供开发人员修复。有些人认为QA工程师会修复bug,但他们从来没有这样做过。他们只报告需要改进的地方。改进本身就是开发者的任务。
有几种运行测试的方法。这些方法定义了软件测试工程师的角色和职责。也许你已经听说过手工测试和自动化测试。不同资质的QA工程师负责每种类型的测试。
从事特定项目的qa工程师的数量取决于该项目的特殊性。自动化并不总是必要的,尽管从长远来看它更有效率。另一方面,不可能实现100%的任务自动化。始终至少有一名手动QA工程师参与。
手册质量保证工程师的职责
正如您可以从标题中猜到的,这个人手动进行软件检查。人工质量保证工程师的一些主要职责包括:
需求分析,根据需求准备查询表;
编写和执行测试用例,以检测可用性和性能问题;
进行探索性测试——同时进行测试设计和执行;
验证多设备和跨平台的一致性(软件可以在不同的设备和浏览器上工作);
创建详细的报告并列出改进之处;
参与测试计划会议,并向测试团队提供反馈。
Role and Responsibilities of QA Automation Engineer
QA自动化工程师的角色和职责
This team member uses special software to test a client’s system. A test automation engineer has more advanced skills than a manual tester. They need to run repeated tests using specific scripts and they often write those scripts. Test automation engineers are needed to perform testing that would require a lot of time if done manually. They usually do the following:
write test scripts;
carry out automated regression tests after every update and release of the new software version;
run performance tests (load, stress, spike tests, etc.) to check how the software works in extreme conditions;
set the priority for automation scenarios and work to maximize test coverage;
write documentation on automated testing and select new automated tools.
这个团队成员使用特殊的软件来测试客户的系统。测试自动化工程师比手工测试人员拥有更高级的技能。他们需要使用特定的脚本运行重复的测试,并且他们经常编写这些脚本。需要测试自动化工程师来执行测试,如果手工完成,将需要大量的时间。他们通常会做以下几件事:
编写测试脚本;
每次更新和发布新的软件版本后,进行自动回归测试;
运行性能测试(负载、压力、峰值测试等),检查软件在极端条件下的工作情况;
设定自动化场景的优先级,最大限度地提高测试覆盖率;
编写自动化测试的文档,选择新的自动化工具。
Test Analyst Role and Responsibilities 测试分析师的角色和职责
An analyst focuses more on business tasks and less on technical aspects. This person studies the formal requirements and curates QA engineers’ work. What kind of power does the QA analyst role provide? Test analysts can do the following:
study and clarify testing requirements to QA engineers;
determine what to test, prioritize the tasks, and monitor the test coverage;
define specific tests, design test cases, schedule test execution;
develop test documentation and deliver it to a product owner;
compare actual and expected results, checking whether a product meets the requirements.
分析师更关注业务任务,而不是技术方面。这个人研究正式的需求并策划QA工程师的工作。QA分析师角色提供了什么样的权力?测试分析师可以做以下工作:
研究并向QA工程师明确测试要求;
确定要测试的内容,确定任务的优先级,并监控测试覆盖率;
定义具体的测试,设计测试用例,安排测试执行;
开发测试文档并交付给产品负责人;
比较实际结果和预期结果,检查产品是否符合要求。
Software Test Architect Responsibilities 软件测试架构师职责
A test architect helps to maintain a well-designed and sustainable test architecture in complex cases. If a QA engineer is responsible for the practical part, a test analyst focuses on implementing business requirements. Meanwhile, a test architect needs to make sure they work efficiently. Here’s what test architects usually do:
work out the ways to optimize the testing process at a high level;
identify tools and technologies that align with business goals, company infrastructure, and testers’ skillsets;
monitor the effectiveness of testing, provide mentoring and suggestions to improve testing practices.
测试架构师有助于在复杂的情况下维护一个设计良好且可持续的测试架构。如果QA工程师负责实践部分,那么测试分析师则专注于实现业务需求。同时,测试架构师需要确保它们有效地工作。测试架构师通常是这样做的:
在高水平上制定优化测试流程的方法;
识别与业务目标、公司基础设施和测试人员技能相一致的工具和技术;
监控测试的有效性,提供指导和建议以改进测试实践。
Software QA Manager Role and Responsibilities 软件质量保证经理的角色和职责
This one has a key role in the team. A test manager is the first to find out how teamwork affects the outcome of a project. In the eyes of a product owner, this person is responsible for the outcome. A test manager controls analysts, architects, and QA engineers to make sure they deliver the result a client expects. For this, a test manager:
这一个在团队中有着关键的作用。测试经理是第一个发现团队合作如何影响项目结果的人。在一个产品负责人眼里,这个人要对结果负责。测试经理控制分析师、架构师和QA工程师,以确保他们交付客户期望的结果。为此,一个测试管理器:
QA Lead Responsibilities QA领导责任
Welcome everyone’s boss! QA team lead handles the administrative part and communication with all the parties. QA lead role involves a wide range of responsibilities, mostly non-technical:
hiring the staff – engineers, analysts, architects, and other members;
supervision of team members and processes, ensuring team consistency;
accepting the requirements from product owners and clarifying them to the team;
setting quality metrics for the entire team;
representing the team on cross-functional meetings;
constantly improving the quality of testing and working environment in general.
欢迎大家的老板!QA团队领导处理行政部分和与各方的沟通。QA负责人的职责范围很广,主要是非技术性的:
招聘员工——工程师、分析师、建筑师和其他成员;
监督团队成员和流程,确保团队的一致性;
接受产品负责人的要求,并向团队说明;
为整个团队设定质量指标;
代表团队参加跨职能会议;
不断改善测试质量和总体工作环境。
Skills
Knowledge of web application protocols, scripting & markup languages, databases.
Experience in creating test documentation, prioritization of test cases, and test planning.
Solid team management skills, knowledge of effective team management practices.
Excellent knowledge of theoretical and practical principles of different testing types.
Strong communication skills for cross-functional communication with the development team and product owners.
Ability to make decisions quickly in critical situations; responsibility, integrity, sociability.
Tools
Project management tools: Jira, Confluence, Jenkins, Git, TestRail, Trello, etc.
Reporting & documentation tools: MS Office, iWork Suite, Google Docs, etc.
Communication tools: Slack, Skype, Zoom, etc.
技能
了解网络应用协议,脚本语言,数据库。
有创建测试文档,测试用例优先级排序和测试计划的经验。
扎实的团队管理技能,了解有效的团队管理实践。
精通不同测试类型的理论和实践原理。
较强的沟通能力,能与开发团队和产品负责人进行跨部门沟通。
在危急情况下能迅速做出决定;有责任心,正直,善于交际。
工具
项目管理工具:Jira,Confluence,Jenkins,Git,TestRail,Trello等
报告和文档工具:MS Office,iWork Suite,谷歌文档等
通讯工具:Slack,Skype,Zoom等
Other Roles 其他角色
Some roles are not essential for every team. Usually, you can find those roles in big corporations with a strict hierarchy. Their responsibilities can be divided between other members or compensated with ready-to-use software solutions. For example:
A system analyst consults how to implement the approved requirements in a software product.
A software development engineer in test works with software solutions for automation. They write and maintain test code but rarely perform testing.
A test library and configuration specialist manages the test-script library with all its changes and creates new test builds.
A network test engineer performs network and database testing, implements monitoring tools, conducts load and stress tests. This role is more relevant for telecom and web services providers.
A defect coordinator identifies testing risks, gaps, and trends. This team member assists in improving existing testing processes to ensure customer satisfaction in the future.
有些角色不是每个团队都必不可少的。通常,你可以在有着严格等级制度的大公司中找到这样的职位。他们的责任可以由其他成员分担,或者用现成的软件解决方案来补偿。举个例子:
系统分析员咨询如何在软件产品中实现已批准的需求。
测试中的软件开发工程师使用软件解决方案进行自动化工作。他们编写和维护测试代码,但很少执行测试。
测试库和配置专家管理测试脚本库及其所有更改,并创建新的测试构建。
网络测试工程师执行网络和数据库测试,实施监控工具,进行负载和压力测试。这个角色更适合电信和网络服务提供商。
缺陷协调员识别测试风险、差距和趋势。该团队成员协助改进现有的测试流程,以确保未来的客户满意度。
Who is a Full-stack QA Engineer? Do You Need Them, Too? 谁是全栈QA工程师?你也需要它们吗?
Usually, a QA engineer is responsible for a certain part of an application. They run either manual or automated tests. Different people can test documentation, usability, performance, and run regression tests.
A full-stack QA engineer can handle all of those tasks single-handedly. Sometimes this person covers testing from the moment of defining project requirements and up to a release day.
On the one hand, full-stack QA engineers cannot test big products, because it is very time-consuming. Also, full-stack testers are inferior to niche QA engineers when it comes to highly specialized knowledge.
On the other hand, a full-stack QA engineer helps to build a more agile testing process. They are familiar with all parts of software functionality. They know the product from both the development and user point of view. They think up-front about what to test and how to test at the beginning of the sprint.
A QA engineer finds bugs and provides developers with clear reports. Having a person who knows a product perfectly can help at any stage of testing and cover any tasks. It helps to optimize resources, increase team efficiency, and improve product quality.
A full-stack QA engineer in the team is not a must. Still, the team will benefit if they have one.
通常,QA工程师负责应用程序的某个部分。它们运行手动或自动测试。不同的人可以测试文档、可用性、性能和运行回归测试。
全栈QA工程师可以独自处理所有这些任务。有时候,这个人负责从定义项目需求的那一刻开始直到发布的那一天的测试。
一方面,全栈QA工程师无法测试大型产品,因为这非常耗时。此外,当涉及到高度专业化的知识时,全栈测试人员不如利基QA工程师。
另一方面,全栈QA工程师有助于构建更敏捷的测试过程。他们熟悉软件功能的所有部分。他们从开发和用户的角度了解产品。在sprint开始时,他们预先考虑要测试什么以及如何测试。
QA工程师发现bug并向开发人员提供清晰的报告。有一个完全了解产品的人可以在测试的任何阶段提供帮助,并涵盖任何任务。它有助于优化资源,提高团队效率,提高产品质量。
团队中的全栈QA工程师并不是必须的。尽管如此,团队将受益,如果他们有一个。
What Is QA Role In Agile Software Development Life Cycle? 敏捷软件开发生命周期中QA的角色是什么?
In traditional SDLC models, testing comes after the development phase is over. However, QA engineers have limited time for checking product features if they join a project this late. Agile QA roles and responsibilities work differently. Testing starts at the early stages and becomes continuous.
Development phases don’t have a strict order. They can overlap and repeat. An Agile team prefers short iterations with frequent releases instead of handing a final product over to a QA team. In this case, development and testing processes are simultaneous, flexible, and more efficient.
在传统的SDLC模型中,测试是在开发阶段结束后进行的。然而,如果QA工程师这么晚才加入一个项目,他们检查产品特性的时间就很有限了。敏捷QA的角色和职责是不同的。测试从早期阶段开始,并持续进行。
开发阶段没有严格的顺序。它们可以重叠和重复。敏捷团队更喜欢短迭代和频繁的发布,而不是把最终产品交给QA团队。这种情况下,开发和测试过程是同步的、灵活的,并且效率更高。
Requirements elicitation
The cases of requirement testing are rare. Still, they are important for project quality. During documentation development, QA engineers check the requirements for inconsistencies or logical gaps.
Planning & analysis
At this stage, a tester doesn’t have many tasks. Planning and analysis are more about keeping up to date. QA involvement helps to optimize the risks and create alignment. QA engineers get a better understanding of product functionality that allows finding bugs easier in the future.
Implementation
Developers and testers start to work closely together to create high-quality software. QA team actively participates in product development. They influence project quality directly by finding and reporting bugs.
Stabilization
QAs check all of the product features and estimate overall product quality. Testers have the power to approve software for release or send code to rework. The decision depends on the number of critical bugs.
Support
After the release, the QA team repeats the stages mentioned above over and over again during the product life cycle. They check new features, find new bugs during regular software inspection, and analyze bugs reported by users.
需求捕获
需求测试的情况很少。管如此,它们对项目质量还是很重要的。在文档开发期间,QA工程师检查需求是否存在不一致或逻辑差距。
规划与分析
在这个阶段,测试人员的任务并不多。规划和分析更多的是保持与时俱进。QA的参与有助于优化风险并创建一致性。QA工程师可以更好地理解产品功能,从而在将来更容易地发现bug。
履行
开发人员和测试人员开始紧密合作,以创建高质量的软件。QA团队积极参与产品开发。他们通过发现和报告bug直接影响项目质量。
稳定
QA检查所有的产品特性并评估整体产品质量。测试人员有权批准软件发布或发送代码进行返工。这个决定取决于严重错误的数量。
支持
发布之后,QA团队在产品生存周期中一遍又一遍地重复上面提到的阶段。他们检查新的功能,在常规的软件检查中发现新的错误,并分析用户报告的错误。
How Do You Organize an Effective Work of a QA Team? 如何组织QA团队的有效工作?
The roles and responsibilities described above are not present in every team by default. Some roles merge, and specialists’ responsibilities change.
In-house teams don’t always have test automation engineers. A manual QA engineer can partially or completely perform the role of a QA analyst. The demand for a QA architect is more noticeable in big companies with complex infrastructures.
The best way to manage a team depends on the type of cooperation. You can hire n in-house QA team or work with a remote QA company.
上面描述的角色和责任并不是每个团队默认都存在的。一些角色合并了,专家的职责也改变了。
内部团队并不总是有测试自动化工程师。手工QA工程师可以部分或完全执行QA分析师的角色。在具有复杂基础架构的大公司中,对QA架构师的需求更加明显。
管理团队的最佳方式取决于合作的类型。你可以雇佣一个内部的QA团队或者和一个远程的QA公司合作。
Explain your requirements and expectations clearly.
Share your business goals so the team can understand what you plan to achieve.
Keep in touch with the QA team to ensure continuous dialogue.
Ask for feedback if you don’t get enough information.
Ask questions if you don’t understand something.
清楚地解释你的要求和期望。
分享你的商业目标,这样团队就能了解你计划实现的目标。
与QA团队保持联系,确保持续的对话。
如果你没有得到足够的信息,要寻求反馈。
有不懂的地方要问问题。
Follow all the points mentioned above.
Discuss working schedules so different time zones won’t be an obstacle.
Choose effective tools for communication and team management.
Discuss the plan in case of an emergency or tight deadlines.
遵循上面提到的所有要点。
讨论工作时间表,这样不同的时区就不会成为障碍。
选择有效的工具进行沟通和团队管理。
在紧急情况或时间紧迫的情况下讨论计划。
Bottom Line 底线
There is no universal formula for an effective QA team. The size of the team depends on a specific project. The roles and responsibilities of team members do, too. When assembling a QA team, pay attention to the product complexity and business goals your company aims to achieve. Remember about the importance of quality assurance for agile software development.
对于一个高效的QA团队来说,没有通用的公式。团队的规模取决于具体的项目。团队成员的角色和责任也是如此。在组建QA团队时,要注意产品的复杂性和公司想要达到的业务目标。记住质量保证对于敏捷软件开发的重要性。