你的错误追踪器知道崩溃发生在哪里,但这无法帮你复现它
堆栈追踪告诉你崩溃发生的位置,而不是原因。以下是一种捕获-复现模式,能把生产环境崩溃转化为本地可调试的测试用例。
你确切知道生产环境在哪里崩溃了。堆栈追踪指向 的第 147 行。异常是一个针对 的 。你拉下代码,运行测试,全部通过。你用一个示例 payload 手动命中端点,它工作正常。 Bug 是真实的。客户在触发它。但你就是没法在自己的机器上复现。…
4 posts
堆栈追踪告诉你崩溃发生的位置,而不是原因。以下是一种捕获-复现模式,能把生产环境崩溃转化为本地可调试的测试用例。
你确切知道生产环境在哪里崩溃了。堆栈追踪指向 的第 147 行。异常是一个针对 的 。你拉下代码,运行测试,全部通过。你用一个示例 payload 手动命中端点,它工作正常。 Bug 是真实的。客户在触发它。但你就是没法在自己的机器上复现。…
Statistical debugging 将你的生产数据视为信号,将 bug 视为信号中的异常。以下是如何在不添加任何 unit test 的情况下发现数据损坏、off-by-one 错误和静默故障。
你的 test suite 是绿的。你的日志很安静。你的仪表盘没有红线。然而,3% 的用户收到的发票总额是负数,或者你的推荐模型正在默默地将已删除的产品排在第一位,或者你的聚合 pipeline 正在对某个特定时区的退款进行重复计数。 这些是数据 bug。它们不会抛出异常。它们不会导致 pod 崩溃。它们通过了你的…
AI 编程对能够从任何混乱中恢复的精英团队有效。其他人则只能面对恐惧、失败的 CI 和被放弃的实验。差距不在模型本身。
观察两个团队使用同一个 AI 模型,你会看到两种完全不同的结果。 第一个团队让模型构建一个界面。输出接近但不够准确。样式偏离了 Figma 文件。状态管理触及了不该碰的文件。构建在本地通过但在 CI…
大多数团队尝试 AI 编程,代码上线后被 QA 驳回,然后放弃。问题不在于模型——而在于缺少让 AI 输出变得可信任的护栏。
大多数尝试 AI 编程的团队都遵循相同的轨迹。 他们一开始充满热情。模型在几分钟内生成了功能,他们把它发布了。QA 发现了一个 bug,于是他们发布了修复。QA 又发现了一个 bug,这次在一个本应毫无关联的 module 里。修复涉及十四个文件,QA 又发现了三个新问题。…