7.3
深览指数
科技人人都是产品经理·易安说AI··AI 生成

刚刚,程序员通宵找Bug的历史要结束了,Claude只用几周,把整个软件测试行业改写了

Anthropic 用 Claude 将 123 个开源软件编译到 RISC-V 汇编层,生成超 1.8 亿行形式化证明,由 Rocq 检查器独立验证,而非依赖模型自评。作者核心判断是:形式化验证不消灭测试,而是把人类责任从逐行审代码转移到规格与前置条件设计,并因证明可复用而可能改变底层软件成本结构。本文适合对 AI 编程、软件安全与测试工程有基础认知的读者。原文 ↗

核心观点
  • ▍形式化验证不替代测试,而是把人类责任从逐行检查转移到规格与前置条件设计;模型负责生成证明,独立检查器负责验收。
  • ▍证明一旦可复用,底层通用模块(C 运行时、内存分配器等)的验证成本会因共享工作区递归下降,类似 Lean 数学库的积累逻辑。
  1. 01Anthropic 研究涉及 123 个开源软件、239 个程序入口,生成超过 1.8 亿行证明代码,由 Rocq 检查器验证。
  2. 02模糊测试漏掉的漏洞需要极端输入:某解压模块越界写入需近 20MB 特殊排布文件,某图像解码器越界读取需约 64MB 畸形文件和超 2GB 实时内存。
  3. 03cpp-httplib 案例用机器码推理析构函数递归是否耗尽系统栈;Linux 内核 zlib 模块涉及 x86 汇编与 RFC 1950 规范的形式化定义与单步执行验证。
  4. 04Rust 实现 Python 解释器用 Verus 验证,并用 170 多万个随机生成 Python 程序做行为对照,与 CPython 规范一致度达 99.95%。
  5. 05作者给出分层测试流水线:规范层用形式化规格,底层实现用形式化证明,组件边界用单元/属性测试,真实环境用模糊/压力测试,产品行为用集成/人工验收。
反方 / 局限
  • — 证明只对明确的模型、前置条件和属性负责:大于 64MB 的输入、调用者违规参数、未建模硬件异常和死代码都可能绕过结论。
  • — 证明可复用不代表换编译器、硬件或配置后自动成立;版本、编译选项和平台差异会破坏复用前提。
  • — 「检查器亮绿灯」不等于规格本身正确,数学验证不负责证明规格是否符合真实业务意图。
9 分钟 · 6 卡片 · 9 资料
读原文 →

概念锚点

前置背景

平行视角

争议局限

未来推演

延伸追问