发布于 2026-01-06 0 阅读
0

我遇到过的最棘手的漏洞 DEV 的全球展示挑战赛,由 Mux 呈现:展示你的项目!

我遇到过的最讨厌的虫子

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

我们都知道这一点:

虫子真讨厌。

我使用Endtest快速创建自动化测试,并在跨浏览器云端执行它们。

你应该看看文档

以下是我曾经错过的最棘手的几个漏洞以及它们教会我的教训:

1. 所有发票上的价格均为 0.00 美元

几年前,我曾在这家网上零售公司工作。

那里的大部分流程都是自动化的。

当用户在网站上下订单时,产品将从仓库中取出,发票将自动生成并打印。

这个漏洞是从同事在平台完全不同的部分所做的更改中冒出来的。

我们只对改动进行了测试,然后就发布了。

他们从仓库打电话告诉我们,所有打印出来的发票金额都是 0.00 美元。

出乎意料的是,竟然没有人被解雇。

当时我们没有自动化功能测试,只有单元测试。

我真希望当时就有像Endtest这样的工具。

我学到了什么教训?

针对变更进行测试的唯一作用是确定变更是否按预期工作。

谁也无法预测一项变更会对软件的其他部分产生怎样的影响。

绝对不要在未执行回归测试套件的情况下发布任何内容。

2. 幽灵服务器

另一家公司:我们当时正在开发一种可以为用户执行计划任务的功能,就像 cron 即服务一样。

用户可以选择计划任务的执行时间,我们这边有一个定时任务,每分钟运行一次,获取并执行该特定时间安排的任务。



因此,我们决定搭建一个生产环境克隆版本,在那里测试该版本。 


发布后,用户抱怨他们安排的任务被执行了两次。 


我们花了几天时间通读了全部代码,并添加了带有额外检查的补丁。 


我们甚至修改了服务器配置中的值!



什么方法都试过了,问题依然存在。

我在 Stack Overflow 上搜索了类似的问题,直到找到一个回答,说这可能是来自不同的实例。

“是啊……要是真那么容易就好了!”


然后我突然意识到:我们忘记禁用生产克隆上的 cron 任务了……而且我们也忘记关闭生产克隆了。

我学到了什么教训?

有时,树木遮蔽了你的双眼,让你看不到整片森林。


所以你需要一个结构化的测试方法。


制定一份检查清单,编写一些测试用例,但一定要在实际开始测试之前完成这些工作。

3. 百万美元投入

我之前工作的另一家公司与各种政府机构都有合同,合同金额高达数十亿美元。

显然,每个交付阶段都有截止日期。

未能按时交付软件的处罚非常严厉。
公司为了尽可能降低成本,尽可能减少员工人数,导致补丁程序在用户验收测试 (UAT) 开始前几个小时才被添加上去。

如果您不熟悉这个术语,用户验收测试 (UAT),也称为 beta 测试或最终用户测试,其定义是由用户或客户测试软件,以确定该软件是否可以被接受。

这些会议至关重要,其内容是指导许多政府高官完成检查系统是否正常运行的过程。

你必须提前几周预订,才能在他们繁忙的日程中找到空档。

如果发现重大问题,他们将不会签署文件,并且会受到处罚。

当然,我们足够聪明,使用了自动化测试,而编写这些测试的人就是我。

由于这是一个 Web 应用程序,我直接使用 Selenium,并在我自己的 Windows 计算机上通过浏览器(包括 Internet Explorer)执行了这些程序。


我们当时还有一位 DevOps 人员,他坚持认为测试应该从我们的 Jenkins 执行并在那里运行。

我甚至不知道还有这种可能,他咕哝了几句关于在 Linux 机器上运行无头 Chrome 浏览器的话。

在用户验收测试 (UAT) 前一天,添加了一个补丁。

我们很有信心,因为自动化测试已经检查过那个区域,完整的回归测试也没有发现任何问题。

用户验收测试第一天:大家都注意到一个问题,由于某些输入错误,表单无法提交。

我们的回应是什么?

只需清除浏览器缓存即可。

还是不行。

让我看看。
哦,这下糟了。

那笔罚款接近一百万美元。 


好消息是,该公司从一开始就对这种可能性有所准备,所以这并非一场悲剧。

我学到了什么教训?

务必在实际条件下进行测试。务必如此。

无头Chrome测试

如果你要在 Linux 机器上的无头浏览器上进行测试,你就是在冒险。

如果你使用的云解决方案提供了 Chrome 浏览器,但没有告诉你它运行在哪个操作系统上,那么它很可能是运行在某个 Linux 机器上的无头浏览器。 


在我目前工作的公司里,我们使用Endtest

它能在 Windows 和 macOS 系统上提供真正的浏览器。
说实话,它真的让我晚上睡得更安稳了。我不知道它是否适合你,但对我们来说,它简直太棒了。

你错过的最丑陋的虫子是什么?

我很期待听到其他故事。

文章来源:https://dev.to/razgandeanu/the-nastiest-bugs-i-ve-ever-encountered-42fj