banner
NEWS LETTER

嵌入式 Linux 系列 24:自动化测试、冒烟测试和硬件在环

Scroll down

嵌入式项目也需要自动化测试。只靠人工烧录、人工点功能,很快会被版本迭代拖垮。自动化不一定一开始就复杂,可以先从构建检查、冒烟测试和硬件在环测试做起。

一、先自动化构建

最小要求:

1
./build.sh

能完成:

  • 加载 defconfig。
  • 构建镜像。
  • 生成版本信息。
  • 归档产物。

构建产物:

1
2
3
4
images/
firmware.bin
rootfs.img
build_info.txt

没有可复现构建,就谈不上可靠测试。

二、冒烟测试

冒烟测试只检查核心链路:

  • 能启动。
  • 能登录。
  • 服务能启动。
  • 网络能通。
  • MQTT 能连接。
  • 配置能读写。
  • 日志能产生。

示例脚本:

1
2
3
ssh root@$DUT 'cat /etc/firmware_version'
ssh root@$DUT 'pgrep device_agent'
ssh root@$DUT 'test -d /data/config'

冒烟测试应该快,适合每次构建后跑。

三、硬件在环

硬件在环测试需要真实设备:

1
2
3
4
5
CI runner
-> 电源控制器
-> 串口
-> 网络
-> DUT

可以自动完成:

  • 断电重启。
  • 烧录固件。
  • 收集串口日志。
  • 执行 SSH 命令。
  • 检查服务状态。

这种测试能发现纯软件模拟发现不了的问题。

四、异常测试

要测异常:

  • OTA 中断。
  • 网络断开。
  • MQTT broker 不可达。
  • 配置损坏。
  • data 分区满。
  • 业务进程崩溃。
  • 运行中断电。

产品稳定性主要靠异常测试逼出来。

五、测试报告

每次测试记录:

1
2
3
4
5
6
firmware version
git commit
test time
device id
test result
logs

失败时保存:

  • 串口日志。
  • dmesg。
  • 应用日志。
  • 测试脚本输出。

这样失败才能复盘。

六、先从小处做起

不要一开始就设计复杂平台。可以先做到:

  1. 一键构建。
  2. 一键部署。
  3. 一键冒烟。
  4. 自动收集日志。

这四步已经能显著提高嵌入式项目质量。

其他文章
目录导航 置顶
  1. 1. 一、先自动化构建
  2. 2. 二、冒烟测试
  3. 3. 三、硬件在环
  4. 4. 四、异常测试
  5. 5. 五、测试报告
  6. 6. 六、先从小处做起
请输入关键词进行搜索