编译整理|TesterHome社区
作者|Julia Kocbek
以下为作者观点:
近十年来,自动化已经进入了 QA 领域。现在,随着许多工具的出现,自动化已经成为一项需要优雅处理的挑战。
在一次旅行时,我参观了列奥纳多·达芬奇博物馆。在那里,我对达芬奇创作的作品数量印象深刻。其中最吸引我眼球的一件令人惊叹的作品是一架自动打金机,专为满足佛罗伦萨纺织品制造商的需求而设计的。
通过自动化来提高生产力的意图早已为人类所知。或者达芬奇在他的时代是超级先进的?
现在,自动化已成为一种趋势,不仅在制造业中发展,而且已成为数字环境中必不可少的资产。敏捷团队采用的自动 CI/CD 管道使开发(和测试)变得更加优化。在 QA 领域,测试自动化工程师的新角色不断涌现。自动化对 QA 行业产生了巨大影响。随着人工智能驱动工具的快速发展,未来可能还会有更多……
自动化热潮仍在继续
不到10年前,QA 自动化曾被大肆炒作:似乎通过采用 CI/CD 方法,团队可以实现任何自动化。这也包括测试。我记得 QA 社区对这项技术的未来进行了热烈的讨论。坦率地说,当时弥漫着许多悲观情绪。不知何故,由于自动化带来的角色重组,测试人员感到特别脆弱。
更短的发布周期确实需要更多的自动化工作。在所谓的“快节奏”环境中,测试应该更快地完成;否则,它就会被视为开发过程中的瓶颈。敏捷团队转向重复测试的自动化,例如端到端,以腾出时间进行更苛刻(但仍然是手动的)的测试方法,例如探索性测试。最流行的自动化框架是 Selenium 和 Cypress — 它们需要一定程度的编码技能……这就是它直到 2020 年代的运作方式。
几年后,人工智能驱动的自动化工具也加入其中。有些甚至不需要任何编码技能(再见了老朋友 Selenium 和 Cypress!)如果之前测试自动化耗费大量时间和精力,那么现在可以借助基于人工智能的工具记录测试,从而轻松地实现测试自动化。
我们能够严重依赖自动化吗?
虽然自动化工具(包括人工智能驱动的工具)非常适合根据定义的需求进行功能测试,但机器(工具)如何评估可用性等质量属性仍是一个问题。目前还不清楚现有的自动化工具是否足够敏感,能够测试产品对有特殊需求的各种群体的可访问性。行业专家仍然将手动测试技术应用于这些领域。
此外,自动化测试还存在其他限制。一旦团队用于测试的时间越来越少,并依赖于一系列自动化检查来批准产品发布,这可能会给整体质量带来虚假的安全感。如果测试检查了功能 A 和 B,但忽略了功能 C 和 D,该怎么办?
无论如何,人工测试对于需要人类直觉、创造力和批判性思维的测试案例至关重要。人工测试人员可以检测自动化测试可能遗漏的真实问题和边缘情况。此外,他们可以利用判断力来确保产品符合用户期望和当地法规。在需要快速探索产品领域的情况下,人工测试也更加灵活。
正如Kate Dames所说,人体测试既有好的一面,也有局限性:
“人类善于发现差异。他们也善于找出某些东西无法正常工作的原因或错误所在。然而,技术更擅长一遍又一遍地重复同样的工作。人类会感到无聊和分心,并且习惯于眼前的事物,而技术则能够一遍又一遍地重复同样的事情。”
人工测试员具有明显的优势,但机器可能会使测试流程更容易。这样,自动化就不应该被视为质量的补救措施。在我看来,成功的企业将在手动和自动化测试之间保持平衡。
不要为了自动化而自动化
团队在规划自动化工作时需要小心谨慎。理想情况下,你应该召集你的团队并讨论哪些测试应该自动化。如果没有明确的自动化策略,你可能会陷入自动化测试以获得更好的统计数据的陷阱。这可能会给你的利益相关者留下深刻印象,但也会给团队增加不必要的负担。
我喜欢Iryna Suprun分享的想法。她说:
“不要为了自动化而自动化,也不要为了达到别人说的必须达到的自动化百分比而自动化。你一定不能这样做,尤其是在资源稀缺的情况下。你唯一必须做的就是提供客户喜欢使用的软件,并让公司盈利。当你决定真正需要自动化某些东西时,请尽可能在最低水平上实现自动化。不要在单元测试就足够的情况下添加端到端测试。”
这个想法与流行的测试自动化金字塔概念产生了很大的共鸣。根据这个概念,测试的层次越低,自动化程度就越高。
至于可视化,我更喜欢反向测试金字塔的概念——Noah Sussman提出的所谓错误过滤器。单元测试可以在早期阶段捕获错误,而集成和 UI(端到端)测试将在稍后捕获它们。
这听起来有点理想化,但为什么不努力实现更好的(智能的)自动化呢?越早发现错误(例如,在单元测试阶段),以后需要的返工就越少。
如果你的测试覆盖率仅包括 20% 的自动化端到端测试,请不要感到惊讶。在特定情况下,这可能是正常的。有一次,我参与了一个项目,由于多个产品组件之间的依赖关系,自动化受到限制。因此,只有可以自动化的测试用例才会被自动化。否则,就会浪费时间和精力。
对于团队来说,确定产品的哪些领域风险较大并将测试自动化工作重点放在这些领域也很重要。例如,对于电子商务产品,最重要的领域之一就是订单流程。涵盖此类流程的测试非常适合自动化。
因此,在估算自动化资源时,我们应该明智一些。最好安排一次与整个团队的头脑风暴会议,并决定哪些努力能给你带来最大的价值。开发人员和 QA 工程师的宝贵时间需要分配给符合整个团队需求的正确工具和流程。
自动化的背后仍有人类
除了自动化内容的难题之外,我们还应该考虑到自动化测试运行的结果仍应由人工监控。即使来自管道的某些通知,也会发送给人工(QA 工程师或开发人员),由人工进行干预并确认是否发生了任何错误或回归。
此外,如果产品发生任何变化,谁来维护自动化测试也是一个问题。例如,某些测试可能会变得多余,或者某些功能可能已更新——这应该反映在自动化测试套件中。即使人工智能驱动的工具声称它是“自我修复”和“自我管理”的,我也不会依赖人工智能。人类仍然是应该协调它的人。
因此,重要的是要记住,总有人留在自动化后面并关注自动化测试。管理人员在分配测试自动化工作量时应考虑到这一点。
自动化的未来
很难预测10年或20年后 QA 工艺将发生什么变化。然而,据一些业内人士称,自动化(作为 QA 的当前趋势)可能会在未来几年达到另一个水平。
下一个里程碑是自主测试(这让我想起了自动驾驶)。人工智能驱动的机器人将代替人类进行所有测试……但是,等等,我们准备好了吗?
在我看来,无需人工参与的自主测试是可能的。然而,要正确实施它需要几十年的时间。尽管为此目的开发了一些工具,但它们仍然缺乏人类的同理心、直觉、批判性思维和创造力。
未来人工智能技术是否能够融入这些价值观?让我们拭目以待……无论如何,我相信明天 QA 人员仍将为数字产品的质量做出贡献。
总而言之,我支持平衡测试的想法:自动化不能取代人类的创造力,但如果可能的话,敏捷团队应该自动化重复测试。自动化应该为团队(如果有的话,还有 QA 工程师)提供机会,将他们的知识和技能应用到要求更高的产品领域,并向左移动——转向用户体验。是的,我们可以通过自动化测试覆盖的某一部分来优化测试流程并缩短反馈循环。然而,一旦你的产品上线,对人工测试的需求就会增加。(原文链接:https://uxdesign.cc/test-smart-how-to-apply-automation-and-stay-sane-071ea899006e)
2.招聘|美团--高级测试开发工程师(客户端&服务端方向),base北京
3.原生鸿蒙,真正独立!部分应用只有基础功能,原因是必须进行大量稳定性测试?
4.实践分享|QA工程师如何利用生成式AI提高QA任务的生产力