嵌入式仿真测试平台的思考
嵌入式仿真测试平台的思考
- 一、背景
- 二、难点
- 三、嵌入式仿真测试平台的工作流程
- 四、结论
- reference
一、背景
最近正在专注于单片机开发的过程中,原本认为代码编写得相当出色,但在单板调试过程中没有遇到任何问题,然而通过485总线的手拉手串行通讯完成了大规模数据的传输测试,却发现了多个bug.在两个设备之间切换通信时可能出现概率性的通信失败现象,有趣的是即使设备发生硬态断电并重启后这种故障现象依然存在.接着我们建立了最简单的硬件系统,并开始编写自动生成测试软件用于自动化测试.然而经过实际运行发现该软件确实存在一些逻辑缺陷.于是必须开始考虑仿真平台的作用,在进行仿真测试时能够有效地规避一些基础性的问题
二、难点
目前主要依靠代码级别的白盒测试工具来实现装备嵌入式软件的自动化测试。相比之下,在黑盒动态领域则面临诸多挑战。具体表现为以下几点:首先,在不同装备需求下进行工装系统开发效率较低;其次,在现有条件下难以有效提升系统的综合性能;最后,在实际应用中往往面临性能瓶颈和技术限制等问题
▼适用范围有限且工作量较大,在一定程度上存在大量重复的工作内容,难以满足不同型号产品的多样化需求;
▼针对复杂的装备系统,无法实现系统组成模块的独立化测试,且现有测试用例无法实现共享,这对回归分析型检测(回测)极为不利;
▼未能充分搭建被测设备的外围环境,导致功能环境模拟精度不足,进而影响软件质量检测效果;
▼在搭建工装系统时必须依赖开发人员的支持,这违背了‘开发与测试完全独立’的原则,降低了整体检测可靠性。
为了解决前述问题, 嵌入式仿真测试平台主要致力于构建适应不同接口类型的嵌入式软件半实物仿真测试环境, 支持包括功能、性能、接口及边界在内的各种测试类型, 并可用于对装备嵌入式软件进行系统性地验证与评估. 采用的技术手段包括
- 1.基于上下位机的系统架构
平台基于上下位机的系统架构设计,在上层构建了一套通用工控平台,并部署了标准的操作系统;在下层采用了STM32系列芯片作为实时测试核心,并开发了一套集成了人机交互和任务调度功能的测试设计与调度管理软件。上层系统的实时任务通过并行处理实现了与下层STC-32芯片的有效协同工作。
注
-
- 测试数据分析与脚本化开发技术
平台主要利用人工智能优化算法完成多因素组合的数据生成工作,并将这些生成的数据整合至预设的数据表对象和文件对象中形成统一的数据库资源。在构建自动化测试脚本的过程中,在线实时的任务需求被纳入预先构建的数据池实现了自动化测试框架,并最终完成了完整的自动化测试脚本系统建设。
(1)使用主流 Python 编程语言作为开发核心,在平台内集成 Python 解释器引擎支持模块化的代码执行;
(2)针对实时系统的建模与仿真过程采用了 Simulink 的 Real-Time Workstation 功能实现模型转换并获取 C 码代码;
(3)基于 Linux 的 GCC 工具链实现了代码编译与部署过程,并支持将编译好的程序下载至底层设备并完成运行操作。
- 测试数据分析与脚本化开发技术
三、嵌入式仿真测试平台的工作流程
使用自动化测试软件进行装备嵌入式软件测试的步骤如下:

-
- 编写测试用例。首先规划设备资源时采用设备资源管理器工具进行规划布局,并在随后利用专业的测试设计软件建立待测系统模型以及设计具体的 测试用例 和相关数据参数组合,在完成上述工作后制定完整的 测试方案 文档。
-
- 执行自动化测试。当导入完成后的新版 测试方案 后自动执行自动化 测试流程 ,其中包含依次 启动 运行服务器服务以支持后续应用程序正常运转、 启动 数据中心核心节点以满足业务需求以及 启动 数据监控中心用于实时采集关键业务指标等重要环节。
-
- 对日志信息进行记录和异常事件的实时报警处理。在 测试过程 中持续采集并存储各节点运行状态的日志信息,并对获取到的异常事件触发警报信息立即触发相应处理机制完成响应。
-
- 通过自动化测试工具全面评估系统的稳定性和健壮性性能,并根据结果及时调整优化自动化 测试配置 参数设置以提升整体 测试效率 和可靠性水平。
四、结论
嵌入式仿真测试平台是一款具备自主可控性的平台,在解决多接口系统集成难题的同时也简化了用户体验,并提升了操作效率。它能够有效解决传统方法在开发阶段存在的诸多痛点包括复杂的设计流程与繁重的手动工作量等问题。该平台特别适合于面对以下几种场景:一是需求多样化的复杂系统设计;二是需要高度自动化管理的任务;三是已经具备Simulink/C++等模型支持但又希望进一步优化资源消耗与性能表现的情形

reference
- 1.本文部分参考 麦禾信通 嵌入式仿真测试平台的应用
