靠猜测的 UI 测试比失败的测试更糟糕

靠猜测的 UI 测试比失败的测试更糟糕

理解自动化 UI 测试的风险

自动化 UI 测试旨在让我们的生活更轻松,但有时却会将我们引入歧途。

猜测的问题

想象一下,运行一个点击标有 "Continue." 按钮的登录测试。听起来很简单,对吧?但是当应用程序在同意声明表单中添加了另一个具有相同标签的按钮时,会发生什么呢?这正是最近发生的一个案例。该测试仅仅是选取了它找到的第一个匹配项,结果开始点击错误的按钮。

这导致了一个通过的测试,错误地表明一切运行良好。在两周的时间里,测试保持绿色,这意味着它在没有任何错误的情况下通过了。然而,潜在的问题是该测试不再准确反映应用程序的行为。这种情况凸显了一个关键点:通过的测试可能比失败的测试更危险,因为它创造了一种虚假的安全感。

解决方案:让选择变得明确

为了解决这个问题,本文作者在其测试框架(即 tapflow 的 flow runner)中实施了一条新规则。该规则要求每当测试工具必须做出选择时,它必须明确说明该选择是什么。通过这样做,开发人员可以快速识别并纠正模糊的决策,避免它们导致更大的问题。

这种方法不仅提高了测试的准确性,还增强了透明度。开发人员可以看到工具在哪里代表他们做出决定,从而允许他们根据需要做出明智的调整。

准确选择元素的重要性

准确的元素选择在 UI 测试中至关重要。如果测试基于它找到的第一个匹配项来解析选择器,它可能会导致意想不到的后果,尤其是在 UI 发生变化时。这就是为什么必须确保测试被设计为能够处理此类场景的原因。

作者强调,测试框架不仅应检查元素是否存在,还应确保正在与正确的元素进行交互。这需要仔细的规划和对应用程序结构的清晰理解。

结论

总之,自动化 UI 测试是一个强大的工具,但它们也伴随着风险。由于猜测而通过的测试可能会掩盖重大问题,从而导致潜在的后续失败。通过在测试框架中使选择变得明确,开发人员可以创建更可靠、能够准确反映应用程序行为的测试。

优点

  • 提高 UI 测试的准确性。
  • 增强测试过程中的透明度。
  • 降低测试结果中出现误报的风险。

缺点

  • 实施明确的选择规则需要额外的精力。
  • 最初可能会使测试框架变得复杂。
  • 可能导致更长的测试设置时间。

注意事项

本文具有教育意义,旨在告知准确的 UI 测试的重要性。在实践中,任何占位符值都必须替换为实际数据。读者在依赖这些声明之前应核实原始来源。

常见问题解答

  • 什么是 UI 测试? — UI 测试检查应用程序的用户界面,以确保其按预期运行。
  • 为什么通过的测试有时是有害的? — 通过的测试可能会产生一种虚假的安全感,隐藏了以后可能导致失败的潜在问题。
  • 我该如何改进我的 UI 测试? — 确保您的测试旨在处理模糊的元素选择,并使选择变得明确。
  • 什么是 tapflow? — Tapflow 是一个旨在改进自动化 UI 测试过程的测试框架。
  • 如果我的测试失败了,我该怎么办? — 调查失败以了解潜在问题,并根据需要调整您的测试或应用程序。
  • 我应该多久运行一次 UI 测试? — 最好定期运行 UI 测试,尤其是在对应用程序进行更改之后。

标签

#testing #webdev #devops #automation #softwaredevelopment #qualityassurance #tapflow #uichecks

Free field guide

API Security Testing Checklist

A practical workflow for testing authentication, authorization, input handling, business logic, and evidence without losing track of scope.