如果 QA 团队没有每天发现错误,他们在软件开发中会做什么?

已发表: 2023-01-27

质量保证 (QA) 工程师经常听到这样的话:

“你的团队昨天检测到 20 个错误,但今天你一个都没有!”

这种立场,无论它看起来多么有效,都与软件开发中质量保证的目的和目标相矛盾。

QA 在软件开发中究竟做了什么?

在本文中,ITREx 的 QA 部门副主管 Andrey Gilyov 解释了为什么您的 QA 团队即使发现更少的错误也没有闲着。 此外,您还将了解到为什么您应该始终聘请 QA 工程师来扩充您的内部或外包 IT 团队,而不是让软件工程师测试代码。

了解 QA 目标以及为什么它们不限于错误跟踪

根据您要构建的软件解决方案的类型和复杂性,您可能需要为您的项目分配兼职 QA 专家或专门的 QA 团队。 他们的职责远远超出查明错误并将其报告给项目经理和开发团队。

特别是,质量保证目标涵盖:

  • 错误预防。 最近的调查表明,软件工程师花费大约 20% 的时间来修复错误。 将该时间乘以软件工程师的平均时薪,您就会意识到有缺陷的代码会给您的公司造成多大损失。 纠正错误的代价也随着软件开发工作流程中的时间呈指数增长——更不用说将错误缠身的软件发布到生产环境中的长期影响,例如安全漏洞、客户体验下降和声誉损失。 因此,软件开发中质量保证的主要目的是在错误造成重大损害之前发现错误。 为完成这一壮举,QA 团队在着手开发软件解决方案之前就已做好测试准备。 这些准备活动包括审查测试文档、编写测试计划和测试用例、选择合适的测试工具以及配置测试环境。
  • 软件状态跟踪和评估。 为了在软件项目中做出明智的决策,项目经理和客户需要有关他们正在处理的软件产品的最新信息。 质量保证目标,除其他事项外,包括在软件项目时间表的任何给定时期提供此信息。 然而,值得一提的是,质量保证工程师不会选择软件解决方案上线的最佳时间。 相反,做出最终决定的是客户。 在咨询了 QA 团队之后,客户甚至可能决定推出包含记录在案的错误和错误的软件解决方案! 例如,当发布产品的时间框架相对紧迫并且回报之间的权衡(即超越竞争对手或启用关键功能)大于发布带有小错误的风险时,您可以做出这样的决定。 无论哪种方式,您都需要检测、记录这些错误并确定其优先级,这也是您的 QA 团队的目标之一。
  • 需求验证。 QA 在软件开发中的主要作用是确认您的软件解决方案按预期运行并满足软件需求规范 (SRS) 文档定义的所有标准。 当质量保证专家执行手动或自动测试并识别错误时,他们会在错误跟踪软件系统(如 Jira 或 ClickUp)中为开发团队创建一张票。 一旦开发团队修复了错误,测试周期就会重复。 因此,发现错误不是质量保证的目的; 相反,它是 QA 活动的副产品。

QA 团队有时找不到任何错误。 没关系

现在您已经明确了 QA 的目的和目标,让我们回到本文开头提出的问题。

如果 QA 团队在软件开发中连续几天的错误报告都是零缺陷,他们会怎么做?

QA 专家可能无法在您的软件中发现任何错误的原因有多种:

  1. 该软件已经过全面测试。 如果软件解决方案经过了彻底的测试,那么当 QA 循环重复或产品投入生产时,就不太可能出现错误。
  2. 该软件设计简单。 与具有更复杂架构和性能要求的软件相比,具有有限功能集、集成和简单用户界面的应用程序不太可能包含错误。
  3. 该软件是使用最佳实践构建的。 编写干净且文档齐全的代码、遵循编码标准并使用版本控制的软件工程团队通常会交付几乎没有错误的软件产品。 这些错误会在测试过程的早期被检测到并得到纠正,并且在后期阶段不会出现更多的缺陷。
  4. 测试过程本来可以更全面。 缺乏时间、资源或技能可能会阻止 QA 专家彻底测试您的软件解决方案。 因此,一些错误可能会被忽略。
  5. 这些错误是不可重现的。 有时,QA 专家可能找不到任何错误,因为错误不会持续出现。 各种因素,包括软件的复杂性、第三方库的使用或外部依赖的存在,都可能导致这种情况。

不管是什么原因,您都不应该低估 QA 在软件开发中的重要性,更不用说允许开发人员为您测试代码的想法了。

不要误会我的意思:开发人员可以在跨职能敏捷团队中编写和执行自动化测试。 甚至手动测试软件。

然而,在这样的团队中,项目角色通常是共享的,主要目标是更快地发布工作软件或功能,缩短实现价值的时间并尽早收集反馈。 在这里,我们可能正在处理上一节中描述的风险与回报问题。 因此,您的项目可能会积累技术债务,从而导致性能问题和未来的重大调试成本。

雇用专门的 QA 专家的其他原因如下:

  • 知道如何编码并不等于知道如何检查代码是否存在潜在错误
  • 开发人员很少喜欢测试,而 QA 专家喜欢
  • 软件工程师的时薪通常高于质量保证专家
  • 开发人员和 QA 工程师通常具有不同的软技能。 对于 QA,对细节的关注、分析复杂系统的能力和多任务处理占据了中心位置。 另一方面,软件工程师经常在协作环境中工作,一次只专注于一项任务。

因此,即使您的 QA 团队今天发现了零错误,也不要试图解雇质量保证专家或将测试任务委托给主要开发团队。 尽管这种方法可能会在短期内减少您的薪水,但由于软件性能不佳或与错误相关的网络攻击而失去客户的成本可能会高出数倍。

如果您需要帮助验证您的软件是否运行良好,满足 SRS 或技术愿景中指定的所有要求,并帮助您实现业务目标,请联系 ITRex QA 专家!


最初于 2023 年 1 月 20 日发布在 https://itrexgroup.com。