很多人被这四个词绕晕,是因为它们本来就不在同一个维度上。
“功能测试”是按“查什么”分的;集成、系统、验收测试是按“测多大范围、谁在什么时候测”分的。 前者是测试类型(跟性能测试、安全测试并列),后者是测试阶段(跟单元测试并列)。所以正确的理解不是四选一,而是:功能测试会贯穿集成、系统、验收每一个阶段。 你在集成阶段做功能测试,叫“集成阶段的功能验证”;在验收阶段做功能测试,叫“验收测试的功能项”。把它们排成一条线,是理解错了一半。

软件测试报告
假设要上一个“企业开办一件事”在线审批系统,接入了市场监管、税务、社保三个外部接口。
1. 单元测试(开发自己做的,通常不对外出报告)
开发人员写用例,测单个函数或类。比如“统一社会信用代码校验”这个函数,输入 18 位合法码返回通过,输入 15 位返回失败。范围最小,只盯代码内部逻辑。
2. 集成测试 ,重点测“接口和对接”
模块组装起来之后,看它们能不能对上话。
审批模块调用市场监管的查询接口,字段映射对不对,超时了会不会重试;
流程引擎把状态回写到数据库,订单表和业务表的数据是不是一致;
单点登录跳过去再跳回来,用户信息丢没丢。
这个阶段最容易爆的是契约问题:文档写的是 enterpriseName,对方实际传的是 ent_name;或者你以为返回 200 是成功,人家返回 200 但 body 里带个 code: 500。这类问题单元测试永远测不出来,因为每个模块单独跑都是好的。
3. 系统测试 ,重点测“整包像不像一个能上线的产品”
整个系统部署在接近生产的环境里,由独立的测试团队(通常是承建方的 QA)按需求规格说明书全量过一遍。这时候测的不只是功能,还包括性能、兼容性、安全性、可靠性、恢复能力等。
功能:从提交到办结的全流程,正常路径、异常路径、边界值全部走通;
性能:500 人并发提交,响应时间是不是还在 3 秒内;
兼容性:主流浏览器、国产操作系统和数据库能不能跑;
安全:越权、注入、会话这些高危项清没清。
这一层,就是第三方软件测试机构最常接手的那一层。依据 GB/T 25000.51-2016 出的那份“软件产品第三方测评报告”,本质上就是站在独立立场重做一遍系统测试的核心部分。
4. 验收测试,重点测“合同认不认”
甲方(或甲方委托的第三方)拿着合同、招标文件、需求规格说明书逐条对:当初承诺的东西,交付了没有,指标达到了没有。
合同里写的 12 个业务模块,齐不齐;
约定的“单笔查询 ≤2 秒”“支持 1000 并发”,达不达标;
用户手册、运维文档、源码交付物,全不全。
验收测试的典型特征是用例往往来自合同和需求文档,而不是来自代码。它不追求覆盖所有分支,追求的是“承诺可举证”。政务项目里常说的“符合性审查”“竣工验收测评”,就落在这里。

单元、集成、系统和验收测试
如果你手里拿的是第三方软件测评报告,它通常落在“系统测试 / 验收测试”这一档,做的是:
按需求或合同梳理测试范围对照表(模块、功能点、指标逐条对齐);
独立设计用例并执行,记录缺陷、分级、给出整改建议;
复测闭环,形成初测 → 缺陷清单 → 整改 → 复测 → 结论的证据链;
依据 GB/T 25000.51-2016 等标准出具结论意见,并按资质要求用章。
而单元测试、集成测试、开发方的系统测试,一般由承建方自己做、自己留档,作为过程材料备查。两者不是替代关系,是上下游关系:下游的报告质量,很大程度上取决于上游有没有把缺陷先清掉。行业里反复验证的规律是缺陷发现得越晚修复成本越高,验收阶段才发现的问题,要走变更评审、回归测试、重新发版,代价是编码阶段的几十倍。所以别指望一份第三方报告替你兜底,它的作用是独立证明,不是替你改 bug。
标签:验收测试、系统测试