一、课程导论与自动化测试全景:嵌入式测试的痛点、自动化测试的价值、课程大纲与学习路径
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-8章):环境搭建、Python基础、串口/GPIO/I2C/SPI等常见接口的自动化操作
- 框架篇(第9-16章):测试框架选型、用例管理、数据驱动、关键字驱动、报告生成
- 进阶篇(第17-24章):持续集成、硬件在环、性能测试、异常注入、多设备协同
- 实战篇(第25-30章):完整项目实战,从需求分析到自动化测试交付
每个阶段我都会穿插真实项目案例。比如第5章讲串口自动化时,我会拿一个「Bootloader升级测试」的脚本给你看——这个脚本我至今还在用。
1.4 知识体系全景图
下面这张图,是我梳理的课程知识体系。你可以把它当成一张「地图」,学完一章就回来看看,知道自己走到了哪里。
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,社区资源多,遇到问题好查。