找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4384

积分

0

好友

566

主题
发表于 半小时前 | 查看: 4| 回复: 0

看到这个问题,我的第一反应是:终于有人开始认真思考这件事了。

做了三年手工测试,想往自动化转,这个方向是对的。但更重要的是,你已经意识到了一个很多测试工程师都没意识到的问题:如何提升自己的核心竞争力,让自己变得更“值钱”。

嵌入式软件测试自动化问题描述截图

手工测试不是不好,但天花板确实太低了。

我见过太多做了五年、十年手工测试的人,工资还是那么点,想跳槽都没人要。为什么?因为纯手工测试的可替代性实在太强了,随便培训一个应届生,三个月基本就能熟练上手。

但自动化测试不一样。

咱先来说说嵌入式软件测试的自动化,到底能做到什么程度。很多人以为自动化测试就是写几个脚本、跑跑用例,其实远不止于此。嵌入式的自动化测试,涉及到硬件控制、通信协议、数据采集、结果判断……每一个环节都有技术含量。

你提到的那些接口,像 DI/DOCAN485、网口,其实都是可以自动化的,关键在于怎么做。

第一步,硬件接口的自动化控制。

DI/DO 最简单,找个支持 GPIO 控制的设备就行。比如树莓派、Arduino,或者专业点的数据采集卡。借助 Python 通过串口或者网络控制这些设备,模拟输入信号,读取输出状态。

我之前做过一个类似的项目,测试一个电源控制器。我们用了 NI 的数据采集卡,通过 PythonPyDAQmx 库来驱动,可以模拟各种开关量输入,读取继电器输出状态。整个测试流程自动化之后,原来要一天的测试,半小时就跑完了。

CAN485 稍微复杂点,但也不难。市面上有很多 USB 转 CAN、USB 转 485 的设备,Python 有现成的库可以用。比如 python-can 这个库,兼容市面上主流的 CAN 适配器,无论是发送还是接收报文都极其方便。

我记得当年测试汽车电子的时候,就是用 Python 写脚本,通过 CAN 总线发送各种控制指令,然后读取设备的响应,判断功能是否正常。这种测试如果手工做,一个用例可能要十几分钟;自动化之后,几秒钟就搞定。

网口就更简单了。Socket 编程,或者直接利用 requests 库发送 HTTP 请求,模拟上位机和设备通信。你说的上传后台,应该是通过网络上报数据吧?这个完全可以自动化验证。

第二步,测试框架的搭建。

光有硬件控制还不够,你得有个框架把这些东西组织起来。在这一点上,我极力推荐 pytest,它是 Python 生态中最流行的测试框架,灵活、强大、生态好。

你可以把每个测试用例写成一个函数,用 pytestfixture 做前置和后置处理,用参数化实现数据驱动测试。跑完之后,pytest 还能生成详细的测试报告,哪些用例过了,哪些失败了,一目了然。

我自己做自动化测试的时候,就是这么搞的。把所有的硬件控制都封装成类,测试用例调用这些类的方法,整个结构清晰、易维护。后来团队其他人要加新用例,只需翻阅一下我的代码框架就能快速上手,根本不需要我手把手教。

第三步,持续集成和自动化执行。

测试脚本写好了,总不能每次都手动去执行吧?得搭建一套持续集成环境,让测试自动跑起来。

如果你们公司有 Jenkins 或者 GitLab CI,可以配置成每次代码提交后自动触发测试。如果没有,至少也要写个定时任务,每天晚上自动跑一遍回归测试。

我在外企的时候,我们的测试环境就是这样。每天晚上 12 点,Jenkins 自动拉取最新代码,编译、烧录、跑测试,第二天早上来看报告就行。如果有问题,邮件自动发给相关的人。整个流程完全自动化,省了大量的人力。

但是,嵌入式自动化测试也有它的难点。

最大的难点是硬件依赖。不像 Web 测试,开个浏览器就能跑;嵌入式测试需要真实的硬件设备,需要各种接口、传感器、负载……这些硬件环境的搭建和后期维护,都是一笔不小的成本。

我见过有些团队,为了做自动化测试,专门搭了一个测试台架,各种设备、线缆一大堆,看着就头疼。但没办法,这是嵌入式测试的特点,根本绕不开。

另一个难点是测试环境的稳定性。硬件设备会老化、会故障,通信会丢包、会超时……这些都会导致测试结果不稳定。你必须在脚本里做好周全的异常处理,加上重试机制,记录详细的日志,才能保证测试的可靠性。

我当年就遇到过这种问题。有次自动化测试跑了一晚上,早上来一看,失败了一大堆。仔细查日志,发现是 CAN 适配器松了,通信断断续续。后来我在脚本里加了连接检测,发现断开就自动重连,问题才解决。

说回你的问题:PythonC 都接触过,用哪个做自动化测试?

不是说 C 不行,而是 Python 更适合。Python 的库多、开发快、调试方便,做自动化测试效率高。C 虽然性能好,但写起来太繁琐,不适合快速迭代的测试场景。

至于 LabVIEW,这个工具在工控领域用得比较多,主打图形化编程,上手非常快。但说实话,灵活性不如 Python,而且生态没那么好。如果你们公司内部已经有了 LabVIEW 的环境积累和经验,可以用;如果是从头开始,我还是推荐 Python

最后说说职业发展。

嵌入式软件测试 的自动化是个好方向,但不要只停留在写脚本的层面。你要往更深的方向走:测试架构设计、性能测试、安全测试、甚至测试开发。

我见过一些优秀的测试工程师,他们不只是写测试用例,还能设计整个测试体系,能开发测试工具,能分析系统性能瓶颈……这样的人,在市场上是抢手货。

你已经有三年的行业经验,对电源系统的理解够深,这是你的优势。如今再叠加自动化测试的技能,你的竞争力会上一个台阶。

但记住,技术只是工具,解决问题才是核心。

不要为了自动化而自动化,要想清楚哪些测试真的需要自动化,哪些手工做更合适。把时间花在刀刃上,才能体现你的价值。顺带一提,像 云栈社区 这样的优质开发者聚集地,经常会有软硬件测试的深度讨论与资源分享,感兴趣的话不妨去看一看。




上一篇:苹果发布2nm工艺M6与M5 Ultra芯片,Mac性能大幅跃升
下一篇:英伟达200亿收购Groq落地:Groq 3 LPX机架量产,低延迟推理商用提速
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-26 02:32 , Processed in 1.159502 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表