Testes Manuais
Qualidade de Software
Processo de QA
Automação de Testes
Gestão de Times

手动软件测试:在不成为瓶颈的情况下进行扩展的路线图

当团队成长时,手动测试不会消亡。需要重新思考它,以不再成为瓶颈,而成为人类目光增加最多的地方。

在每个成长中的团队中,都会有这样一个时刻:手动测试会停止保护并开始延迟。

起初效果很好。一两个人手工检查每次交付的产品,他们发现问题,产品就会改进。但随着系统的增长,需要检查的内容数量呈爆炸式增长。每个版本都需要更多时间的手动测试,很快交付就会停止等待 QA 处理。原本的质量变成了排队。

错误的反应是加倍努力:雇用更多的人来进行更多的手工测试。这只会推迟问题的发生,并让问题变得更加昂贵。正确的反应是重新考虑手动测试在扩展团队中的作用。它不会消失,但它的功能需要改变。这是实现这一转变的路线图。

为什么手动测试永远不会结束

在制定路线图之前,有必要澄清一个误区:自动化完全取代了手动测试。不更换。他们测试不同的东西。

在重复性、客观性和可验证性方面,自动化是无与伦比的:按钮有效,计算正确,流程没有中断。在主观、探索性和人性化方面,手动测试是不可替代的:这种体验有意义吗?有什么事情看起来很奇怪吗?这个流程虽然在技术上是正确的,但会让真人感到困惑吗?

扩展测试并没有消除手册。关键在于将每种类型的测试放在最能产生最大效果的地方。机器承担重复;人们接受需要判断的东西。懂得这个攀登的人;任何将两者视为竞争对手的人都无法扩大规模。

步骤 1:将可重复性与探索性分开

剧本的第一步是筛选。今天亲手测试的东西全部看一下,分成两堆。

首先,什么是可重复和客观的:每次发布时发生的相同注册流程、相同的表单验证、相同的计算。这是自动化的候选者。工作让人类疲惫不堪,而机器则做得更好。

第二,需要人类判断:评估新屏幕是否有意义,探索流程以寻找意外情况,测试新创建的尚未稳定的功能。这必须保持手动。

这种分离是一切的基础。如果没有它,团队就会将不应该自动化的事情自动化,而应该自动化的事情则保持手动,这在两端都浪费了精力。

步骤 2:首先自动化回归

一旦分类完成,自动化的第一要务就很明确:回归。这些是每次更改时都会重新执行的测试,以确保已经工作的内容不会出现问题。

这是最痛苦、回报最少的体力劳动。每次发布时手动重新检查相同的旧流程是乏味、耗时的,并且容易因疲劳而出错。这正是在成长的团队中消耗最多 QA 时间的地方,也是从自动化中获益最多的地方。

自动化回归将人们从机械工作中解放出来,让他们有时间做只有人类擅长的事情。这是最能缓解瓶颈的步骤。从这里开始。

步骤 3:为探索性测试提供结构

人们有一种误解,认为手动测试是“没有方法就直接进行”。做得好的探索性测试则相反:它是结构化的,尽管它是免费的。

我推荐的技巧是通过重点和时间来定义会议。该脚本不再是“测试系统”,而是“探索 45 分钟的支付流程,寻找边缘情况”。这提供了方向而不是僵化的,并生成了所涵盖内容和发现内容的记录。

这种结构使得手动测试成为一种可扩展的实践。它不再是一项模糊的活动,无法计划和衡量,而是成为过程中可管理的一部分,有重点、记录和积累学习。

步骤 4:将 QA 集成到流程中,而不是结束中

最阻碍交付的模型是将 QA 作为最后阶段:开发人员完成后,将其“扔到墙上”给测试人员,测试人员发现问题很晚,而修复成本很高。

攀登需要打破这堵墙。质量必须在早期和过程中体现出来,而不仅仅是在最后。这意味着测试人员参与定义将构建的内容,帮助在代码存在之前考虑边缘情况,并增量测试而不是在结束时立即进行全部测试。

变化既是流程的变化,也是文化的变化。质量不再是生产线末端某个岗位的责任,而是整个团队的责任。测试人员成为提高每个人质量的专家,而不是一切都需要经过的漏斗。

通过发现的 bug 来衡量 QA 的误差

扩展时的一个常见错误是创建奖励错误行为的指标。例如,通过发现的错误数量来衡量质量保证会鼓励较晚发现错误,而理想的情况是尽早阻止它们。

成熟在于衡量预防,而不仅仅是检测。在生产中发现的错误较少的团队表现良好,即使它总共“发现的错误较少”。手动或自动测试的目的从来不是为了发现缺陷;而是为了发现缺陷。是为了提供可靠的产品。检测只是手段,而不是目的。

缩放是重新定位人类,而不是移除它

整个路线图集中在一个想法上:扩展手动测试并不是做更多的手动测试,也不是用机器取代它们。这是关于将人类的努力重新定位到能够增加独特价值的地方。

机器假设重复和目标。人对经验和意义具有探索性、主观性和判断力。整个团队将质量视为一项持续的责任,而不是外包给生产线末端的一个步骤。

实现这一转变的团队在保持质量和速度的同时扩大规模。坚持手动测试所有内容的团队会在没有意识到的情况下在快速交付和良好交付之间做出选择。选择并不需要存在,只需将每种类型的测试放在其适当的位置即可。

如果手动测试已成为交付的瓶颈,并且摆在桌面上的答案是“雇用更多人来测试”,那么也许值得在人员编制之前重新考虑该流程。我在博客上还有其他关于技术团队的质量、自动化和管理的文章,对此进行了更详细的介绍。

另请阅读

  • 【软件测试周期:早测试者(和晚测试者)的趋势和真实案例0
  • [软件测试周期:趋势和领导者快速指南1
  • [软件性能:关于质量的真实案例教学2
  • [自动化测试:为什么未经测试的代码是债务3
  • [自动化测试架构:需要速度的团队的快速指南4
  • [自动化测试架构:从头开始搭建的基本步骤5