Simulink自动化单元测试方案概述
【摘要】:软件单元测试作为汽车电子软件V流程开发中的重要一环,再完成软件单元构建后,需要验证软件逻辑是否符合功能需求。做好单元测试会极大的提高开发效率。单元测试做的全面也能避免后期台架测试及实车测试中出现非预期现象。本文基于此介绍一种Simulink自动化的单元测试方案,涉及如何创建测试框架,如何自动生成Excel格式的测试用例模板,如何添加输入信号及期望输出。容
1.目标
本文是笔者在实际开发工作中的一般性总结,仅供参考。目前汽车电子软件基于MBD设计开发,遵循Autosar软件构架,按照其架构定义,软件架构的最小管理单元是SWC,故单元验证通常针对SWC级别进行。本文阐述了在完成SWC设计后,如何创建测试框架TestHarness、自动生成Excel格式的测试用例模板、添加输入信号及期望输出、导入测试用例进行测试验证。
2.方案
2.1 方案整体概述
应用于验证SWC软件单元的测试方案有很多,在创建完测试框架TestHarness后,可以有From WorkSpace,Test Sequence,以及Matlab自带的Test Manager,当然也可以开发者自己写脚本,采用面向对象式编程实现单元测试。本文介绍基于Signal Builder的方式,提到Signal Builder,软件开发者可以在Signal Builder 中直接编写测试用例,操作思路也比较简单,但不易于维护,切输入信号非常多时,自动化程度低,自然影响开发效率。
鉴于Signal Builder提供了可导入Excel的功能,切Matlab与Excel之间可以很方便的进行交互。因此编写m脚本,可在测试框架中自动创建TestSuite,针对多验证SWC,尽量在最外层创建Harness(不包含Function-Call输入端口),这样做可以最大程度的验证SWC层级的功能逻辑,让数据流、信号流可以跑通整个模型,避免孤立割裂功能逻辑,也是软件开发低耦合、高内聚的思想体现。当然,如果模块内部逻辑算法过于复杂,也可深入模型内部,针对SubSystem创建Harness进行验证,但必须清晰明白SubSystem-SubSystem之间前后逻辑关系、时序关系。
针对SWC,我们可以定义若干个TestSuite,可以把同一类型或者同一功能的测试用例放在一个TestSui
Simulink单元测试自动化实践:Excel与SignalBuilder结合应用

最低0.47元/天 解锁文章





