这两个词在招标清单里经常挨着出现,于是不少人默认:兼容性不就是功能测试顺手多开几个浏览器嘛,能贵到哪去。
真这么想,最后往往会在两个地方吃亏:要么报价时少算了三套环境的钱,要么验收时被问一句“统信上测了吗”,然后发现报告里一个字都没有。

功能测试与兼容性测试
其实它们的差别没那么玄乎:功能测试管的是“这事做对没有”,兼容性测试管的是“换个地方还能不能做对”。 前者看的是逻辑,后者看的是环境。
但后者并不是独立于前者的另一件事,它本质上是把同样的功能,在不同的环境里再跑一遍。
正因为如此,兼容性从来不是“顺便”,它是功能的乘法。
功能测试做的事非常朴素:拿需求规格说明书或任务书里的指标当账本,逐条输入、逐条看输出,对得上就打勾,对不上就记缺陷。
登录能不能登、权限对不对、审批流走到哪一步、报表数跟台账能不能对上、异常输入有没有被拦住、必填项空着能不能提交。它不问系统快不快、扛不扛得住一千人、界面好不好看,只问一件事:该干的活,干了没有,干对了没有。
所以它的产出是一张追溯表:需求项 → 用例 → 执行结果 → 缺陷 → 复测结论。这张表的价值在于,验收会上专家随便指一条,你能翻到对应的用例和截图。拿不出这条链的功能报告,基本等于一张结论页,事后倒查撑不住。
国内做这块主要挂 GB/T 25000.51-2016(系统与软件质量要求和评价 SQuaRE 的产品测试)那条线,质量模型参考 GB/T 25000.10。在这套模型里,“功能适用性”是一个独立的特性,和性能效率、兼容性、安全性并列,注意,是并列,不是包含。这就从标准层面回答了这个问题:它俩不是一回事。

GB/T 25000.51-2016
兼容性测的还是那些功能,变的只是脚下的地。浏览器换 Chrome、Edge、Firefox、360;操作系统换 Windows、macOS、麒麟、统信;CPU 换 x86、ARM、龙芯;数据库换 MySQL、达梦、人大金仓;再加分辨率、DPI 缩放、移动端横竖屏、不同版本的 iOS 和安卓。
它抓出来的缺陷类型和功能测试几乎不重叠:
页面错位、按钮被遮住、弹窗出不来、日期控件选不了——布局类;
某个浏览器上报 JS 错误、某个版本白屏——渲染或引擎差异;
中文乱码、文件导出打不开、PDF 字体缺失——编码和字体;
在国产 OS 上启动失败、依赖库找不到、驱动不支持——运行环境缺失;
同一条 SQL 在 MySQL 能跑、在达梦报语法错——数据库方言差异;
高分屏下图标糊成一片、125% 缩放下表格对不齐——这个被忽略得最多。
顺带提一个很多人不知道的细节:GB/T 25000.10 里兼容性下面还挂着一个子特性叫共存性(co-existence),指的是你的软件和其他软件装在同一台机器上会不会互相打架:抢端口、抢驱动、共享组件版本冲突。如果你要部署的那台机器上还跑着别的业务系统,这一项其实是该测的,但十份报告里有九份没写。
1.用例的设计依据不一样。
功能测试的依据是需求文档和指标条款;兼容性的依据是一张环境矩阵,谁定的矩阵,谁就得签字。这张表要是甲方没给,你得自己列一版让他确认,否则最后一定是“你怎么没测那个”。别靠猜,猜错了重测的成本全在你身上。
2.缺陷的性质不一样,修起来的人也不一样。
功能缺陷通常是开发改逻辑;兼容性缺陷很多时候得前端重写样式、得运维补依赖、得 DBA 改 SQL 写法,甚至得甲方自己去买字体授权。所以兼容性报告交出去之后,整改周期往往比你想的长,这点排期时要留余量。
3.工作量的算法不一样,这也是报价差最多的地方。
功能测试的成本主要由用例规模和业务复杂度决定;兼容性的成本则是用例数 × 环境套数 × 每套的准备与回归时间。加一套信创环境,不是加 10%,是实打实多一轮完整回归。所以现在信创适配成了最大的加价项,一点都不奇怪。
能,而且很常见。一份报告里分章节:功能测试结果 + 兼容性测试结果,各自给结论。资质、编号、签字人共用一套形式要件,反而更省事。
功能测试回答的是“对不对”,兼容性测试回答的是“在哪都对不对”。前者决定了系统能不能用,后者决定了它能被多少人用。而今天的项目里,后者的权重正在快速上升,尤其当“国产化适配”从加分项变成硬门槛之后。你可以把它当成额外成本,也可以把它当成验收会上唯一没人能挑的那一行。
标签:功能测试、兼容性测试