Claude Code默认状态下的表现已经相当不错。你可以输入一系列指令,它就能为你生成代码或其他输出。不过,有一些方法可以极大地提升Claude Code的性能,尤其是在编程方面。
在本文中,我将介绍我每天都在使用的、能让Claude Code效率提升数倍的核心技巧:自动化测试(或更高效的测试)。
表面上看,这可能是一个枯燥的话题,但深入了解后你会发现,测试——尤其是自动化测试或高效测试——是节省大量时间的绝佳方式。如果能让智能体自行测试其实现方案,它将能更高效地生成你想要的解决方案。
通过自动化测试最大化Claude Code的价值
这张信息图表重点展示了本文的核心内容。我将探讨如何通过自动化测试或优化手动测试,提升Claude Code的使用效率。图片由ChatGPT提供。
为什么要自动化测试
自动化测试的首要原因是,它能显著提升你的工作效率。如果能让智能体自动测试自己的实现方案,它将能更好地完成你在提示中描述的解决方案。最终,这会为你节省大量时间——你无需与智能体反复迭代,就能获得完全符合需求的结果。
此外,另一个重要点是,如今编程智能体生成代码的能力已经非常强大,编程过程中的真正瓶颈已变成测试。你需要测试实现方案是否真正符合你的预期。我发现,自己在编程过程中大部分时间都花在测试不同解决方案、确保所有功能正常运行上。因此,无论是提高测试效率还是实现完全自动化测试,都能解决我在编程中遇到的最大瓶颈,自然也能大幅提升我的工作效率。
我相信这一点适用于许多经常使用编程智能体的人,接下来我将分享我如何同时实现测试自动化和提升测试效率。
如何实现自动化测试
我将从几个方面探讨测试相关内容。首先,我会介绍自动化测试——即让智能体有权自行运行测试。这可以通过多种方式实现:例如,你可以给它测试脚本、单元测试或完整的集成测试让其运行。接着,我会讨论如何提高人工测试的效率。有时,编程智能体无法完全独立完成测试,可能是因为需要特殊的上下文或权限,也可能是因为测试涉及复杂的UI操作(你不希望或智能体无法执行此类操作)等。
智能体自动化测试
自动化测试主要分为以下四个步骤:
确保所有新代码都有对应的更新测试,有时还需要手动检查测试,确保其能正常运行且符合预期功能
首先,我将讨论如何让智能体获得运行测试的权限。这里最关键的一点是,要让智能体能够运行测试。这需要为它提供足够的权限,例如,它可能需要AWS权限来访问数据,或者需要浏览器访问权限来浏览应用程序。因此,第一步是确保智能体拥有所需的所有权限。
根据我的经验,你可以在“危险跳过权限”(Dangerously Skip Permissions)模式或最近推出的“自动模式”(Auto Mode)下运行Claude Code,这两种模式的效果都非常好。遗憾的是,在使用Gemini或Chachipetee等其他编程智能体时,我还没有这样做——因为我曾有过编程智能体执行不可逆意外操作的经历。不过,在使用Claude的模型时,这种情况从未发生过。
自动化测试的第二部分,就是简单地提示智能体设置测试。例如,我会要求模型设置集成测试。集成测试本质上就是一系列API调用,用于确保应用程序的流程符合预期。对于编程智能体来说,这一过程非常顺畅。例如,让LLM调用进入解析流水线等,你可以让这个过程具有确定性,并确保每次结果都正确。只需告知智能体设置集成测试,它就能很好地完成任务:模型会设置测试,并且其表现会立即得到提升。
你也可以要求模型创建测试脚本,用于测试某个实现方案,并告知它必须运行该测试脚本,确保所有功能都按预期工作,在测试脚本成功运行前不得停止。最后这一点非常重要——因为有时模型会有些“懒惰”,你需要明确告知它,在实现方案成功之前不能停止工作。当然,这前提是,在你赋予编程智能体的权限和操作范围内,该实现方案是可完成的。
此外,确保这些测试在代码推送至生产环境前运行也很重要。你可以将测试设置为预提交钩子(pre-commit hooks),不过这有时会拖慢你的速度——因为每次提交前都必须运行测试,如果测试耗时较长,就会影响效率。你也可以设置为每次推送代码、向拉取请求(pull request)推送新内容时运行测试。例如,当拉取请求更新时,自动运行集成测试。这些测试也可以作为GitHub Actions的一部分,实现自动运行,无需在你的电脑上手动执行。不过,根据我的经验,将这些测试放在本地电脑上通常更便捷,因为速度更快,也更容易触发。
最后,在自动化测试部分,我想强调一点:对于生成的新代码,你需要不断更新测试。例如,如果你生成了一段新代码,要确保为其添加新的测试;如果删除了旧代码,要确保删除对应的测试。维护测试至关重要,这样才能保证测试的有效性。虽然这种维护在前期可能看起来是额外的工作,但从长远来看,它能为你节省时间——因为你不会运行不必要的测试,同时能确保所有代码都经过测试,从而降低出现漏洞的概率。
此外,我建议你有时手动检查测试——具体来说,就是查看测试的输入和输出,并要求智能体向你展示结果。这种手动检查测试的方式,有时能有效确保测试按预期运行,并且能轻松发现测试中的漏洞。
提高手动测试的效率
我想介绍的第二个测试相关要点,是提高手动测试的效率。这里所说的手动测试,指的是需要人类执行、无法由AI完成的测试。遗憾的是,有些测试必须由你亲自完成,无法完全交给AI。这可能源于以下几个原因:
任务包含AI无法访问或无权操作的内容。例如,需要管理员权限(你不想赋予AI),或者涉及AI目前无法访问的音频内容
在这些情况下,你能做的最好的事情就是提高自己的测试效率。当然,生成测试时,你的首要本能应该是尝试完全自动化测试,这样你就无需亲自触碰测试,AI会自动运行它们。但实际上,你也需要自己进行大量测试。
我提高测试效率的核心技巧是使用可视化测试。例如,如果我让AI为我完成大量任务,我会先让它创建一个HTML报告,其中包含每个任务,以及每个任务旁边的复选框,这样我就可以勾选已完成的任务。我还会告诉AI,为我提供需要测试的页面链接,以及详细的测试方法说明。这会大大简化测试过程——因为我无需记住所有需要测试的内容和测试方法,所有信息都会清晰地呈现在报告中。你可以参考下面的示例:
编程智能体自动化检查清单报告
这张截图展示了我如何创建编程智能体已实现任务的待办清单。它包含了我需要验证正确性的所有任务、任务标题、检查位置以及预期结果。本质上,它尽可能为我简化流程,让我只需验证正确性,无需在其他事情上花费认知精力。遗憾的是,出于隐私原因,我不得不隐藏部分内容。图片由作者提供。
另一个让测试更轻松的方法是,尽可能将任务外包给编程智能体。例如,如果我需要特定数据来手动测试某个功能,我不会花费大量时间手动查找数据,而是让编程智能体访问所需资源,自动为我找到相关数据。
总结
在本文中,我探讨了如何通过自动化测试提升Claude Code的效率——这种方法也适用于你使用的任何其他编程智能体。我主要介绍了两种方式:自动化测试(最理想的方法)和提高手动测试效率。如今,编程智能体的性能已经非常出色,尤其是在最新的Opus模型发布后,我认为测试已成为编程过程中的瓶颈。以前,你大部分时间都花在手动编写代码上,而现在,手动编写代码的时间大幅减少,更多时间用于测试实际的实现方案。因此,优化测试流程、提高测试效率是非常合理的做法。为了最大限度地提升作为程序员的效率,我建议你重点关注测试环节,并思考如何提高测试的有效性。本文中介绍的技巧,只是我个人用于提高测试效率的一些示例。
推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !