买新电脑装老软件,打不开;换新版微信,公司内部系统登录不了;连上新打印机,文档死活不出纸……这些不是玄学,是兼容性没测到位。
操作系统兼容性
最常见也最容易被忽略。比如某款财务软件只支持 Windows 10 64位,你硬装在 Windows 11 ARM 版或 Windows 7 上,启动就报错。测试时得真机跑:Win10/Win11 各版本、macOS Monterey 到 Sonoma、甚至 Linux 的 Ubuntu 或 CentOS,都得挨个试安装、启动、基础操作是否卡顿或崩溃。
硬件驱动兼容性
新显卡配旧主板 BIOS 可能黑屏;Type-C 接口的扩展坞在某些笔记本上识别不了 USB 设备;甚至同一块固态硬盘,在不同品牌主板的 NVMe 模式下读写速度差一倍。这时候不能光看参数表,得插上实测——进系统认不认设备、能不能正常读写、长时间拷贝会不会掉盘。
浏览器与网页兼容性
公司内网系统用 IE 写的,你换成 Chrome 就白屏;新写的 Vue3 页面在 Safari 14 下按钮点不动;微信内置浏览器里 Canvas 图形渲染错位……测试得覆盖主流浏览器+常用版本:Chrome 120+、Edge 122+、Firefox 125+、Safari 17+,还得开开发者工具切到不同设备模拟尺寸,看响应式布局有没有错乱。
软件版本依赖兼容性
Python 脚本用了 asyncio.run(),部署到 Python 3.6 环境直接报错(这个函数 3.7 才加);Node.js 项目用了 ?. 可选链,老版 Node 12 不认;就连 Office 文档,用 365 新功能做的动态表格,发给还在用 Office 2010 的同事,对方打开就是一堆乱码和提示框。这类问题,得按目标环境的真实版本装环境、跑脚本、导出导入数据,不能只信“理论上支持”。
接口与协议兼容性
APP 调后台接口,昨天还好好的,今天升级了 API,返回字段少了个 status 字段,前端直接 undefined 报错;智能家居设备标着“支持米家”,结果连上米家 App 却找不到设备;甚至蓝牙耳机连安卓手机没问题,一碰 iPhone 就断连——背后可能是 BLE 协议版本(4.2 vs 5.0)、加密方式或配对流程不一致。这类测试得抓包看请求响应、查协议文档、用不同终端反复配对验证。
文件格式与编码兼容性
Excel 表格用「微软雅黑」字体保存,发给 Mac 用户打开,中文全变方块;记事本用 UTF-8-BOM 存的配置文件,Linux 脚本读取时报语法错误;PSD 文件存成「带图层复合」,别人用老版 Photoshop 打开直接提示不支持。测试时别只双击打开看看,要真正编辑、另存、再导入,尤其注意中文路径、特殊符号、超长文件名在不同系统下的表现。
说白了,兼容性测试不是“差不多能用就行”,而是站在用户真实环境里,把软硬件当成会互相较劲的搭档,一个一个拉出来过招。多试几次,比修三天 bug 更省时间。