根据测试路径自动生成测试用例_MBSE应用案例: BMW基于模型的测试用例"自动生成"...

本文介绍了BMW采用MBSE(基于模型的系统工程)方法论SMArDT,通过系统功能模型和测试用例数据结构,实现测试用例的自动化生成,提高研发效率并保证产品测试完整性。文章详细阐述了SMArDT的四个设计层次,系统功能模型的建模,以及测试用例的结构和自动生成流程。
摘要由CSDN通过智能技术生成

引言


传统基于文本需求手动编写测试用例,既耗费时间,又容易出现错误或遗漏。在当前电气化、自动化、智能化的发展趋势下,汽车产品复杂度走向了新的高度,继续沿用传统方法,在保证研发周期、确保产品功能安全方面势必带来更大的安全风险和研发成本。

基于模型的系统工程(MBSE)实现了产品研发全过程数据的数字化,对于业务规则较为明确的设计活动来说,这带来了研发数据自动化处理的可能。

BMW利用MBSE方法,基于规范化数字化的系统设计模型和测试用例,实现了测试用例的(半)自动化生成,在提高研发效率的同时更好地保证了产品测试的完整性。

本文章节安排如下:

  1. BMW系统工程方法论-SMArDT

  2. 系统功能模型

  3. 测试用例数据结构

  4. 基于模型的测试用例自动生成

  5. 小结

  6. 参考资料

1. BMW系统工程方法论-SMArDT


BMW系统工程方法论 – SMArDT,全称Specification Method for Architecture, Design and Test,将设计过程划分为四个层次:

  • Object of reflection: 用户需求层,包含需求模型、用例模型等

  • Logical layer : 功能层,主要借助SysML活动图、状态机图进行建模,定义功能模型过程中,需要设计和测试部门人员共同参与,确保所有功能都在考虑范围内,包括正确的故障/失效处理功能等

  • Technical concept : 逻辑架构层,对系统组成、接口进行描述,此部分的内容与Logical层的功能存在映射关系;

  • Realization: 物理实现层,包含具体的软硬件实现方式,如ECUs, CAN-BUS等

c212023b24ce9b538f2f3211d4646321.png

SMArDT方法论[2]

如上图所示,随着设计层次演进,设计需求会随着细化

d706fd51c8edce4c906a4a2e8ccc2004.png

设计需求细化&追溯[2]

从系统、子系统到零部件设计,不同的设计人员不断重复此过程。

4e7e0e670f3b7e697f02a1c9eb14958f.png

系统-子系统-零部件数据传递[1]

2. 系统功能模型


SMArDT对SysML的应用做了严格的要求,并制定了相应的建模指导规范。在功能模型建模方面,主要应用活动图Activity Diagram和状态机State Chart (StateMachine Diagram)。

fab23ca916797965ac46f017f2d435ea.png

基于活动图描述的系统功能模型[2]

3. 测试用例数据结构


BMW将测试用例划分为三部分:Precondition, ActionPost condition.

  • Precondition: 定义测试用例执行之前需要具备的初始条件,缺少初始条件的测试用例无法执行

  • Action: 定义测试过程中具体执行的测试步骤;

  • Post condition: 定义测试用例执行结果

在Precondition, Action和Post condition内部,包含一系列“操作步骤”,每个操作步骤又包含三部分信息:

  • 操作类型:设置(set)或读取(read)信息

  • 操作对象名称

  • 操作对象取值:设置(set)或读取(read)

281f8ca09699708582ac093c11ea73c5.png

5ca2a19f655d245fda510132bd59c293.png

描述功能的活动图&对应测试用例[3]

4. 基于模型的测试用例自动生成


基于模型的测试用例自动生成整体思路如下图[1]所示:

4a758cde1d147e8227b367fa7090fe2c.png

  1. 基于SMArDT建模规范进行功能设计,建立功能模型(活动图&状态机图)

  2. 配置测试用例生成所需的外部输入信息,如初始化、输入参数、执行时间等

  3. 通过工具自动生成测试用例

  • 基于路径覆盖准则对活动图路径进行自动判断,得到从开始到结束的所有可能路径,每个可能路径形成一条测试用例(少量复杂输入和判断条件的测试仍然需要手动配置),保证测试用例覆盖的完整性

  • 对于通过状态机描述的功能模型,首先需要将状态机图转化为活动图,然后再执行测试用例的自动生成

e59f37033f5d6939416dcc05b5ed1048.png

9e62395f13f8d9743f59bb389d7234ea.png

状态机→活动图转化

测试用例的执行 – 将测试用例与相应测试产品结合,执行测试。由于功能层的信号、参数都是抽象概念,无法直接映射到具体测试上,因此需要两个底层的数据库 - Keyword数据库和Signal数据库,完成功能层信号和参数到具体物理层的映射,以便指导具体的测试.

基于模型生成的测试用例同时也保留了与相应设计需求的追溯关系.

c51264435e779157ef989e05f237d21f.png

设计数据追溯关系

由于前两层的用户模型、功能模型属于抽象层设计,与具体实现方式无关,因此生成的测试用例模型可被其他平台重用

5. 小结


BMW利用MBSE方法,基于规范化数字化的系统设计模型和测试用例,实现了测试用例的(半)自动化生成,在提高研发效率的同时更好地保证了产品测试的完整性。

研发数据自动化处理是数字化的重要组成部分,对于一线研发人员来说,这也是能最直观感受到的“好处”,基于模型的系统工程(MBSE)为这一应用前景提供了基础。

但数据自动化处理有两个前提:研发数据标准化业务规则标准化,没有标准化,自动化就无从谈起。上文所提到的“测试用例自动生成”,也是在“系统功能模型”、“测试用例数据结构”都完成标准化的前提下实现的。

所以,在讨论如何借助数字化实现自动化之前,企业可能需要花费一定的精力先解决“标准化”的问题

6. 参考资料


[1] Kriebel S, Moyses V, Strobl G, et al. The next generation of bmw’s electrified powertrains: Providing software features quickly by model-based system design[C]//26th Aachen Colloquium Automobile and Engine Technology. 2017.

[2] Hillemacher S, Kriebel S, Kusmenko E,et al. Model-Based Development of Self-Adaptive Autonomous Vehicles using the SMARDT Methodology [C]//MODELSWARD. 2018: 163-178.

[3] Markthaler M, Kriebel S, Salman K S,et al. Improving model-based testing in automotive software engineering[C]//2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP). IEEE, 2018:172-180.

[4] Drave I, Hillemacher S, GreifenbergT, et al. SMArDT modeling for automotive software testing[J]. Software:Practice and Experience, 2019, 49(2): 301-328.

推荐阅读


了解MBSE,这一篇文章就够了

MBSE用户画像:NASA最新MBSE落地方案及其十年探索之路

MBSE用户画像: 福特(Ford)汽车MBSE落地方案

MBSE的扩展应用之可靠性分析(Model-Based FMEA)

MBSE案例之变体配置与多方案比选

MBSE如何实现系统级动态仿真(附练习案例下载)

19f86977a89e5dc816af9dc24a02c617.png

不定期更新数字化经验总结与思考,欢迎关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值