跳到主内容
快讯直播
AI智模界
AI 词典

单元测试、集成测试与端到端测试:三种测试,三种信心

一句话定义:单元测试(Unit Test)只验证一个函数或模块自己的逻辑;集成测试(Integration Test)验证几个部件接起来后数据能不能对上;端到端测试(End-to-End Test,E2E)则从用户入口一路走到最终结果,验证"这件事用户真的能办成"。

打个比方:开一家餐厅。 单元测试是后厨逐项检查:这把刀快不快、这锅水会不会烧开、这个秤准不准。每项都单独测,几秒钟出结果,坏了立刻知道是哪一件。集成测试是看配菜、灶台、传菜口能不能衔接:配菜递过去,灶台收到的是不是它要的份量,传菜口拿到的菜名和桌号对不对。端到端测试是请一位顾客真的进门:点单、下单进后厨、出菜、上桌、买单,全程走完。

放到 AI 系统里更具体。写一个"从模型输出里抠出 JSON"的解析函数,喂它十几种畸形输入,看它是修复还是干净报错,这是单元测试,全部依赖换成假的,毫秒级。把向量检索、重排、拼 prompt 三步串起来跑一遍,检查检索到的文档确实进了 prompt、字段名没写错、空结果和超时被正确处理,这是集成测试,通常要连真实数据库,秒到分钟。打开页面输入问题、后端检索、调模型、把带出处的答案渲染出来,检查屏幕上真的出现了那段文字,这是端到端测试,要真模型、真浏览器,慢且脆。

单元测试集成测试端到端测试
测什么一个函数或模块的逻辑部件之间的接口与数据流用户完成一件事的整条路径
依赖全部换成假对象部分真实,常含真实数据库全部真实,含真实模型和浏览器
速度毫秒级秒到分钟分钟级甚至更久
失败后怎么查基本能直接定位到行要看是哪两个部件对不上只能沿链路两头往中间二分
数量比例最多中等很少
给人的信心"这块逻辑是对的""它们能接上""用户能用"

和相邻概念的区别:三者不是难度分级,而是"测的范围"不同。单元测试的边界是函数,所以它对"系统能不能用"几乎不发言;端到端测试的边界是用户目标,所以它最接近真相,但一旦挂了,你只知道链路断了,不知道断在哪。中间的集成测试是最容易被跳过的一层,因为单元测试全绿、E2E 也偶尔跑通,人就以为没事了。

实际意义:三层缺一不可,而且比例大致是个金字塔。只写单元测试,你会得到"每个零件都合格、整车开不动";只写端到端测试,你会得到"改一行代码等半小时才知道砸没砸",然后大家开始跳过测试。实操上:新写一段逻辑先补单元测试;改动任何接口约定时补集成测试;把最常用、最赚钱的那几条用户路径写成少量但稳定的 E2E。AI 产品还有一个坑:模型输出本身不确定,不要把它塞进单元测试去断言具体文字,而是当外部依赖用固定假响应替代,真模型的验证留给上层。测试框架和工具怎么选,以官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。