Skip to Content
Python测试驱动开发实践, 3rd Edition
book

Python测试驱动开发实践, 3rd Edition

by Harry Percival
October 2025
Intermediate to advanced
712 pages
8h 38m
Chinese
O'Reilly Media, Inc.
Content preview from Python测试驱动开发实践, 3rd Edition

第三版序言: 人工智能时代的测试驱动开发

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

既然人工智能能为你编写代码,现在学习TDD还有意义吗? 一个简单的prompt或许就能生成本书中的完整示例应用程序, 包括所有测试用例,甚至自动部署的基础设施配置。

实情是:现在下结论为时尚早。人工智能仍处于萌芽阶段, 谁能预见它在数月乃至数年后将具备何等能力?

AI既令人惊叹又极其不可靠

我们确知的是,当下的人工智能 既令人惊叹又极其不可靠。

除了能理解并回应人类自然语言prompt——人们常忽略这本身就是非凡成就,几年前这简直是科幻小说的情节——AI工具还能生成可运行的代码、编写测试用例、 协助分解需求、集思广益解决方案、 快速原型化新技术。这确实令人惊叹。

然而我们都逐渐意识到,这一切都伴随着一个巨大的"但是"。 AI生成的内容常受"幻觉"困扰, 在代码世界里,这意味着产出即使看似合理, 也根本无法运行。 更糟的是,它们可能生成看似正常运行的代码, 实则暗藏隐蔽漏洞、安全隐患或性能灾难。 从代码质量角度看,我们深知AI工具常会产出 充斥着复制粘贴与冗余代码、怪异权宜之计, 以及难以解读的意大利面式代码——这些都预示着维护噩梦。

弥补AI缺陷的对策与TDD惊人相似

若参考AI公司自身提供的协作建议, 你会发现AI在小规模、边界清晰的场景中表现最佳, 且需频繁验证正确性。 面对大型任务时,建议将其拆解为 具有明确成功标准的小单元。

当我们思考幻觉问题时, 建立全面的测试套件并频繁运行, 显然将成为必备措施。

在代码质量管理方面,引入人工干预环节, 通过频繁暂停进行代码审查与重构, 同样是关键的缓解措施。

简言之,本书阐述的所有测试驱动开发技术:

  • 在编写代码前,先定义描述每个微小功能变更的测试 将问题分解为细小单元逐步推进

  • 将问题拆解为微小单元逐步推进, 通过高频测试捕获缺陷、回归与幻觉

  • TDD红/绿/重构循环中的"重构"环节, 定期提醒参与流程的人类审查并优化代码。

TDD的核心在于探索结构化、更安全的软件开发路径, 降低缺陷与回归风险,提升代码质量—— 这些目标恰恰与人工智能开发所需达成的 目标完全一致。

泄漏的抽象与经验的重要性

"泄漏的抽象" 是对软件开发中常见问题的诊断, 即高层抽象以微妙方式失效, 导致底层系统的复杂性渗透出来。

面对泄漏的抽象,必须理解底层系统 才能高效工作。 正因如此,当第三代语言(3GL)兴起时, 那些通晓底层机器码的程序员往往最擅长 运用C和Fortran等新语言。

同样地,人工智能为编码提供了更高层次的抽象, 但我们已能观察到幻觉和低劣代码质量等"泄漏"现象。 类比于3GL时代,未来能高效驾驭AI的程序员 必是那些深谙"优质标准"之人—— 既通晓代码质量、测试架构等规范, 更懂得构建安全可靠的软件开发流程。

我与人工智能的亲身经历

在我与AI协作的实践中, 其编写测试的能力令我印象深刻——例如... 只要存在可供复制的优质首例测试。 但AI编写首例测试的能力 (正如我们将看到的,TDD中大量设计与思考都发生在此阶段) 则表现得参差不齐。

同样地,当切换至较少"自动补全"、更偏"智能代理"的模式时, 我发现AI工具在处理指令清晰的简单问题时表现优异, 但面对复杂逻辑和模糊需求时, 它常会陷入循环死循环的困境。

此时我发现,引导AI代理 回归小步迭代模式——每次专注处理单一模块, 并在测试中明确需求——是重回正轨的最佳途径。

我还尝试过利用"重构"步骤 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Tcl/Tk, 3rd Edition

Tcl/Tk, 3rd Edition

Clif Flynt
算法精讲视频课程:24篇系列讲座

算法精讲视频课程:24篇系列讲座

罗伯特·塞奇威克, 凯文·韦恩(Kevin Wayne)
Python-Tricks

Python-Tricks

Dan Bader
AI工程

AI工程

Chip Huyen

Publisher Resources

ISBN: 0642572274801