一、课程导论与自动化测试全景:嵌入式测试的痛点、自动化测试的价值、课程大纲与学习路径

1.1 嵌入式测试,为什么这么「痛」?

做了十几年嵌入式测试,我见过太多团队在同一个坑里反复跌倒。说白了,嵌入式测试的痛点就三个字:慢、难、贵。

慢在哪?每次烧录、重启、手动点按,一个回归跑下来就是半天。难在哪?硬件环境千奇百怪,串口、CAN、I2C,哪个协议出问题都够你查一宿。贵在哪?一个测试台架几万块,多配几套老板就皱眉。

我曾在某个车载项目里遇到过这种事:一个简单的GPIO电平翻转测试,手动测了200次,第201次才复现出偶发毛刺。你想想看,这种概率问题靠人肉点按,得点到猴年马月去?

所以,自动化不是「锦上添花」,而是「雪中送炭」。它能帮你把测试时间从小时级压缩到分钟级,把覆盖率从「随缘」变成「可量化」。

核心痛点一览:
  • 环境依赖重:硬件、工具链、驱动版本,任何一个不匹配就炸
  • 回归成本高:改一行代码,全量回归跑一天
  • 可复现性差:偶发bug,手动测十次不一定能复现一次
  • 结果追溯难:测试记录靠Excel,出了问题找不到责任人

1.2 自动化测试,到底能带来什么?

我习惯把自动化测试的价值拆成三个维度:效率、质量、可追溯。

效率这块最直观。以前我手动测一个UART回环测试,插线、配置、抓log、分析,一套下来15分钟。自动化之后,脚本跑一遍30秒,还能同时测8个通道。你算算这个倍率。

质量方面,自动化能帮你做「不可能完成的任务」。比如压力测试:连续跑10000次读写,人不可能盯着,但脚本可以。我有个项目就是靠自动化压力测试,在量产前揪出了一个DMA缓存溢出——手动测根本发现不了。

可追溯性,这个很多人会忽略。自动化脚本每次执行都会生成log、截图、波形数据。出了问题,直接翻记录,不用再问「当时谁测的?怎么测的?」。

维度 手动测试 自动化测试
单次执行时间 15分钟 30秒
回归频率 每周1次 每次提交
覆盖率 核心功能 全功能+边界
结果可追溯 Excel/口头 结构化日志+报告
人力投入 3人天/轮 0.1人天/轮
我的经验:自动化不是「替代人」,而是「放大人的能力」。把重复劳动交给机器,把分析决策留给人。

1.3 课程全景:30章,从入门到落地

这门课的设计思路,说白了就是「从实战中来,到实战中去」。我不会跟你讲太多理论,而是直接带你写脚本、搭框架、跑流程。

整个课程分成四个阶段:

  1. 基础篇(第1-8章):环境搭建、Python基础、串口/GPIO/I2C/SPI等常见接口的自动化操作
  2. 框架篇(第9-16章):测试框架选型、用例管理、数据驱动、关键字驱动、报告生成
  3. 进阶篇(第17-24章):持续集成、硬件在环、性能测试、异常注入、多设备协同
  4. 实战篇(第25-30章):完整项目实战,从需求分析到自动化测试交付

每个阶段我都会穿插真实项目案例。比如第5章讲串口自动化时,我会拿一个「Bootloader升级测试」的脚本给你看——这个脚本我至今还在用。

注意:这门课需要你具备基础的Python语法知识。如果你完全零基础,建议先花一周补一下变量、函数、类的基本用法。

1.4 知识体系全景图

下面这张图,是我梳理的课程知识体系。你可以把它当成一张「地图」,学完一章就回来看看,知道自己走到了哪里。

嵌入式自动化测试知识体系全景图 嵌入式自动化测试知识体系全景图 基础篇 (1-8章) • Python测试脚本基础 • 串口/CAN/I2C/SPI • GPIO控制与电平检测 • 日志与断言机制 框架篇 (9-16章) • pytest/unittest框架 • 数据驱动与参数化 • 关键字驱动设计 • Allure报告集成 进阶篇 (17-24章) • CI/CD集成(Jenkins) • 硬件在环(HIL)测试 • 异常注入与容错 • 多设备协同测试 实战篇 (25-30章) • 完整项目实战 • 需求→用例→脚本 • 持续交付流水线 • 测试度量与复盘 核心能力:脚本开发 + 框架设计 + 流程自动化 + 持续集成 学习路径建议: 1. 先掌握基础篇的接口操作(串口、GPIO) 2. 再学习框架篇的用例组织和报告生成 3. 最后结合CI/CD完成全流程自动化闭环

1.5 学习路径:怎么学最有效?

我个人建议你按这个节奏来:

  • 第1-2周:快速过完基础篇,重点是串口和GPIO的脚本编写。别纠结细节,先跑通再说。
  • 第3-4周:框架篇,重点掌握pytest的参数化和fixture机制。这是后面所有内容的基础。
  • 第5-6周:进阶篇,重点理解CI/CD的集成方式。我建议你搭一个Jenkins练手。
  • 第7-8周:实战篇,跟着项目走一遍。做完这个项目,你就能独立搭建自动化测试体系了。
避坑指南:我曾经犯过一个错——上来就想搞全自动化,结果环境搭了两周还没跑通。后来我学乖了:先手动测一遍,把关键步骤录下来,再逐步脚本化。这叫「手动先行,自动跟进」。

1.6 你需要准备什么?

硬件方面,我建议你准备一块开发板(STM32或ESP32都行),再加一个USB转串口模块。软件方面,Python 3.8+、pytest、pySerial、pyvisa这几个库先装上。

嗯,这里要注意:不同厂家的开发板,驱动和库的兼容性可能不一样。我建议你选STM32,社区资源多,遇到问题好查。