1000 个错误,一个 Google Sheet,以及我再也找不回来的五个小时

每个 Bug 都有一个故事。大多数故事都始于这句话:“在我的机器上运行正常。”

我们当时正在为一家潜在客户开发公司测试数据导入功能。这个功能看起来很简单:点击导入按钮,上传电子表格,系统就会加载联系人。所有人都认为它没问题。

这种假设是一个陷阱。

测试人员的存在就是为了打破这种假设。“快乐路径”(happy path)总是会欺骗你。

如果我们使用干净的 Excel 文件,导入就会通过。我们本可以去吃午饭,本可以发布这个功能。但客户会在周一早上的生产环境中发现这个 Bug。

问题出在 Google Sheet 上。

真实用户不会使用干净的 Excel 文件。他们使用的是杂乱无章的 Google Sheets。他们期望系统能够处理他们的混乱。

当我们上传 Google Sheet 数据时,系统崩溃了。我们看到了超过 1,000 个错误。屏幕上全是错误提示。同样的按钮,同样的数据类型,仅仅因为源格式发生了变化,就导致了系统的彻底瘫痪。

我们回到 Excel 进行更多测试。我们尝试了有效行和无效行的混合。系统处理得很好,跳过了错误行并继续运行。

然后我们尝试了现实世界的混乱情况。我们上传了一个包含数百行的批量文件。大部分都是垃圾数据,只有少数是有效的。

系统彻底崩溃了。校验逻辑在处理少量错误行时表现良好,但在面对堆积如山的错误数据时却无能为力。

我们花了五个小时才找到根本原因。我们盯着屏幕,重新运行测试,并把责任推给文件、浏览器和咖啡。

这五个小时的代价很低。如果不这样做,代价就是客户浪费掉整个下午,并对我们的产品失去信任。在测试阶段,你用时间为 Bug 买单;在生产阶段,你用客户为 Bug 买单。

我每次都会选择这五个小时。

一个优秀的测试人员不会问一个功能是否可用,而是会问如何把它搞坏。

停止像开发人员那样思考。开始像下面这些人一样思考:

  • 上传错误文件格式的懒惰用户。
  • 使用合并单元格和空行的混乱用户。
  • 拥有 4,000 条脏数据而非 10 条干净数据的批量用户。
  • 专门做那些不该做的事情的捣蛋鬼。

软件会在你意想不到的输入下崩溃。

最“简单”的功能往往是最危险的。导入按钮、搜索框和联系表单看起来无害,但事实并非如此。

如果一个功能通过了“快乐路径”测试,不要就此止步。要做那个问出“如果我上传一个能想象到的最烂的文件会怎样?”的人。

然后,去尝试一下。

Source: https://dev.to/jaswanth_m_ab71bf22ec8b0/1000-errors-one-google-sheet-and-five-hours-i-will-never-get-back-4okl

Optional learning community: https://t.me/GyaanSetuAi