嵌入式项目也需要自动化测试。只靠人工烧录、人工点功能,很快会被版本迭代拖垮。自动化不一定一开始就复杂,可以先从构建检查、冒烟测试和硬件在环测试做起。
一、先自动化构建
最小要求:
1 | ./build.sh |
能完成:
- 加载 defconfig。
- 构建镜像。
- 生成版本信息。
- 归档产物。
构建产物:
1 | images/ |
没有可复现构建,就谈不上可靠测试。
二、冒烟测试
冒烟测试只检查核心链路:
- 能启动。
- 能登录。
- 服务能启动。
- 网络能通。
- MQTT 能连接。
- 配置能读写。
- 日志能产生。
示例脚本:
1 | ssh root@$DUT 'cat /etc/firmware_version' |
冒烟测试应该快,适合每次构建后跑。
三、硬件在环
硬件在环测试需要真实设备:
1 | CI runner |
可以自动完成:
- 断电重启。
- 烧录固件。
- 收集串口日志。
- 执行 SSH 命令。
- 检查服务状态。
这种测试能发现纯软件模拟发现不了的问题。
四、异常测试
要测异常:
- OTA 中断。
- 网络断开。
- MQTT broker 不可达。
- 配置损坏。
- data 分区满。
- 业务进程崩溃。
- 运行中断电。
产品稳定性主要靠异常测试逼出来。
五、测试报告
每次测试记录:
1 | firmware version |
失败时保存:
- 串口日志。
- dmesg。
- 应用日志。
- 测试脚本输出。
这样失败才能复盘。
六、先从小处做起
不要一开始就设计复杂平台。可以先做到:
- 一键构建。
- 一键部署。
- 一键冒烟。
- 自动收集日志。
这四步已经能显著提高嵌入式项目质量。
- 本文链接: https://blog.hansong.icu/2026/06/26/Embedded_Linux_Series_24_Automated_Testing/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。