编辑推荐: |
本文主要讲解了BMW利用MBSE方法,基于规范化、数字化的系统设计模型和测试用例,实现了测试用例的(半)自动化生成,在提高研发效率的同时更好地保证了产品测试的完整性。
本文来自于微信公众号数字化从业笔记,由火龙果软件Linda译、推荐。 |
|
引言
传统基于文本需求手动编写测试用例,既耗费时间,又容易出现错误或遗漏。在当前电气化、自动化、智能化的发展趋势下,汽车产品复杂度走向了新的高度,继续沿用传统方法,在保证研发周期、确保产品功能安全方面势必带来更大的安全风险和研发成本。
基于模型的系统工程(MBSE)实现了产品研发全过程数据的数字化,对于业务规则较为明确的设计活动来说,这带来了研发数据自动化处理的可能。
BMW利用MBSE方法,基于规范化、数字化的系统设计模型和测试用例,实现了测试用例的(半)自动化生成,在提高研发效率的同时更好地保证了产品测试的完整性。
本文章节安排如下:
BMW系统工程方法论-SMArDT
系统功能模型
测试用例数据结构
基于模型的测试用例自动生成
小结
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等
SMArDT方法论[2]
如上图所示,随着设计层次演进,设计需求会随着细化。
设计需求细化&追溯[2]
从系统、子系统到零部件设计,不同的设计人员不断重复此过程。
系统-子系统-零部件数据传递[1]
2. 系统功能模型
SMArDT对SysML的应用做了严格的要求,并制定了相应的建模指导规范。在功能模型建模方面,主要应用活动图Activity
Diagram和状态机State Chart (StateMachine Diagram)。
基于活动图描述的系统功能模型[2]
3. 测试用例数据结构
BMW将测试用例划分为三部分:Precondition, Action和Post condition.
Precondition: 定义测试用例执行之前需要具备的初始条件,缺少初始条件的测试用例无法执行
Action: 定义测试过程中具体执行的测试步骤;
Post condition: 定义测试用例执行结果
在Precondition, Action和Post condition内部,包含一系列“操作步骤”,每个操作步骤又包含三部分信息:
操作类型:设置(set)或读取(read)信息
操作对象名称
操作对象取值:设置(set)或读取(read)
描述功能的活动图&对应测试用例[3]
4. 基于模型的测试用例自动生成
基于模型的测试用例自动生成整体思路如下图[1]所示:
基于SMArDT建模规范进行功能设计,建立功能模型(活动图&状态机图)
配置测试用例生成所需的外部输入信息,如初始化、输入参数、执行时间等
通过工具自动生成测试用例
基于路径覆盖准则对活动图路径进行自动判断,得到从开始到结束的所有可能路径,每个可能路径形成一条测试用例(少量复杂输入和判断条件的测试仍然需要手动配置),保证测试用例覆盖的完整性
对于通过状态机描述的功能模型,首先需要将状态机图转化为活动图,然后再执行测试用例的自动生成
状态机→活动图转化
测试用例的执行 – 将测试用例与相应测试产品结合,执行测试。由于功能层的信号、参数都是抽象概念,无法直接映射到具体测试上,因此需要两个底层的数据库
- Keyword数据库和Signal数据库,完成功能层信号和参数到具体物理层的映射,以便指导具体的测试.
基于模型生成的测试用例同时也保留了与相应设计需求的追溯关系.
设计数据追溯关系
由于前两层的用户模型、功能模型属于抽象层设计,与具体实现方式无关,因此生成的测试用例模型可被其他平台重用。
5. 小结
BMW利用MBSE方法,基于规范化、数字化的系统设计模型和测试用例,实现了测试用例的(半)自动化生成,在提高研发效率的同时更好地保证了产品测试的完整性。
研发数据自动化处理是数字化的重要组成部分,对于一线研发人员来说,这也是能最直观感受到的“好处”,基于模型的系统工程(MBSE)为这一应用前景提供了基础。
但数据自动化处理有两个前提:研发数据标准化和业务规则标准化,没有标准化,自动化就无从谈起。上文所提到的“测试用例自动生成”,也是在“系统功能模型”、“测试用例数据结构”都完成标准化的前提下实现的。
所以,在讨论如何借助数字化实现自动化之前,企业可能需要花费一定的精力先解决“标准化”的问题。
|