<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>测试驱动 on AI 观察</title><link>https://ai.wujiong.cc/tags/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8/</link><description>Recent content in 测试驱动 on AI 观察</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 17 Oct 2026 18:05:00 +0800</lastBuildDate><atom:link href="https://ai.wujiong.cc/tags/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>让 AI 修 Bug 前先写失败测试：一套更可靠的 AI 编程修复流程</title><link>https://ai.wujiong.cc/posts/2026-10-17-ai-coding-failing-test-first-bugfix/</link><pubDate>Sat, 17 Oct 2026 18:05:00 +0800</pubDate><guid>https://ai.wujiong.cc/posts/2026-10-17-ai-coding-failing-test-first-bugfix/</guid><description>&lt;p&gt;用 AI 修 Bug 最常见的问题是：它改了代码，解释得头头是道，但你并不确定问题是否真的解决了。更可靠的做法是：&lt;strong&gt;先让 AI 写一个能复现 Bug 的失败测试，确认它确实失败，再让 AI 修改代码直到测试通过，最后跑全量测试确认没有引入新问题。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="为什么先写测试"&gt;为什么先写测试&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;验证理解&lt;/strong&gt;：AI 能写出复现测试，说明它理解了问题；写不出来，往往说明问题描述还不够清楚&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;防止假修复&lt;/strong&gt;：没有测试时，AI 可能只是绕开了症状，比如加了一个空值判断把错误吞掉&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;防止回归&lt;/strong&gt;：这个测试会留在代码库里，以后有人改动相关代码时能及时发现&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="完整流程"&gt;完整流程&lt;/h2&gt;
&lt;h3 id="第-1-步描述症状不急着要修复"&gt;第 1 步：描述症状，不急着要修复&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;现象：调用 calculate_discount 时，购物车里同时有满减券和折扣券，总价变成了负数。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;复现输入：……
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;期望结果：……
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;实际结果：……
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;请先不要修改业务代码。阅读相关文件后，告诉我你认为可能的原因，以及你打算如何写一个测试来复现它。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;先让 AI 说出思路，你可以在它动手前纠正方向。&lt;/p&gt;</description></item></channel></rss>