《[全]车载控制器软件MBD_MIL测试技术及要求.docx》由会员分享,可在线阅读,更多相关《[全]车载控制器软件MBD_MIL测试技术及要求.docx(6页珍藏版)》请在第一文库网上搜索。
1、车载控制器软件MBD_MI1测试技术及要求一、M11测试的概念MI1测试就是模型在环测试,通过纯软件仿真的形式,主要是验证模型功能的正确性,是否满足设计的功能需求,尽早发现问题。同时,只有保证了MBD阶段建模的正确性,才能保证在此基础上生成的代码的正确,为后续的代码质量提供基础。MI1测试,指定输入和期望结果,将仿真结果和期望结果进行比对,根据判定标准验证模型是否正确。除此之外还需要做模型覆盖率度量,在MI1单元测试,需要满足100%的覆盖率:StatementCoverage(语句覆盖)、BranchCoverage(分支覆盖)、ModifiedCondition/DecisionCover
2、age(修正判定条件覆盖)。二、MI1测试的优势1能够脱离硬件载体进行测试,无需等待硬件变更、开发完成。2、各工程师针对自己的模块进行测试,无需等待所有的模块开发完成进行测试,满足尽早测试的测试要求。3、在测试层级上主要是针对代码层级的测试,测试接口以及功能,以及代码的规范性等等,能够发现更多的细节问题。4、方便评价控制模型的整体测试的测试覆盖度。5、方便开发及测试团队对于模型的评审。6、降低了测试成本,越早发现问题,修复问题的成本越低,同时也提高了测试效率,让更多的问题在尽可能早的开发过程中发现。三.MI1测试的类型MI1单元测试主要针对功能模块中子模块进行测试,单元测试的层级是最小不可划分
3、的颗粒度。单元测试主要是针对输入的边界值进行测试,观察输出的结果,并设计测试用例,满足100%的测试覆盖率。单元测试通过设定输入并给出期望的输出,测试时将模型输入设定的输入值,观测模型的输出值是否和期望值保持一致,判定模型是否有效。具体测试过程如下: 软件测试需求分析 根据需求/经验/错误推导等方法设计测试用例:测试用例规范应包括以下内容:保证软件需求与测试用例的内容一致性与追溯性;根据软件需求确定输入和输出,并确定其取值范围;通过测试用例设计方法确定输入值;清晰的测试步骤,满足可重复测试;明确测试结果及评价方法;执行测试将设定的输入值输入模型,记录模型执行结果。 测试结果判定结合判定标准,将
4、执行结果和期望结果进行对比,满足判定标准则认为通过,不满足则未通过。根据测试结果,形成测试报告。MI1集成测试主要针对软件的需求进行测试,并测试接口的功能,同时还有考虑模块时间上的调度。集成测试一般为子功能模型集成后的模型,实现具体的需求功能。直接与被控对象进行联合测试,在给定输入条件的情况下,监控输出信号,判定输出结果的正确性。测试系统需要在整车环境下测试控制模型的输出特性,因此需要建立被控对象,被控对象可以自己建立也可以通过第三方软件集成到测试环境中来。 测试需求解析 设计测试用例设计 建立测试环境 执行测试将设定的输入值和时间输入模型(考虑不同模块之间的时间调度问题),记录模型执行结果。
5、 测试结果判定结合判定标准,将执行结果和期望结果进行对比,满足判定标准则认为通过,不满足则未通过。根据测试结果,形成测试报告。四、功能安全ISO26262针对MI1测试的要求如果开发的项目有功能安全要求,针对MI1测试,可以依据ISO26262的标准进行,根据功能安全目标的等级ASI1,选择软件单元测试方法、单元测试用例导出方法、结构覆盖度度量方法。 软件单元测试方法:基于需求的测试、接口测试、故障注入测试、背靠背测试; 软件单元测试用例的导出方法:需求分析、等价类、边界值、错误推导; 软件单元层面的结构覆盖度度量:语句覆盖率、分支覆盖率、修正判定条件覆盖; 软件集成测试方法:基于需求的测试、
6、接口测试、故障注入测试、背靠背测试; 软件集成测试用例的导出方法:需求分析、等价类、边界值、错误推导; 软件架构层的结构覆盖度度量:函数覆盖率、调用覆盖率;五.MI1测试工具MI1测试工具一般个人推荐采用MBD的开发环境作为测试环境即可,如果需要进行自动化测试,可以考虑第三方的自动化测试软件。六、MI1测试工程师的基本要求通过网上随机寻找一个MI1测试工程师的招聘要求,谈谈MI1测试工程师所需要具备的基本技能。 岗位职责1:制定测试计划和测试策略,主导整个测试的进程,并且能够协调需求、开发、测试资源,这个岗位对工程师有一定的团队管理要求。 岗位职责2:需求管理与变更,主要侧重对于开发及测试的流
7、程掌握的很好,能够与整个开发部分进行协调沟通。 岗位职责3:掌握驱动模型的搭建,测试环境的集成,该点主要是要求测试工程师有建模能力。这个是测试工程师基本要求。 岗位职责4:也是测试工程师的基本要求 岗位职责5:测试覆盖率提升和测试用例补充,这个是最难的,测试覆盖率评价方法是什么,如何评价,还有用例的补充,常规的用例都会写,主要是一些经验分析出的用例,错误推导导出的用例,对项目经验有一定的要求。结合岗位要求,谈谈对MI1测试工程师的一些看法,MI1测试是代码层级的,一般是由MBD工程师自己完成的,软件团队Ieader以及相关软件需求工程师进行审核的,专门做MI1的工程师相对HI1来说是比较少的,个人感觉能做MI1的测试,也差不多可以直接去开发模型了;该岗位要求了一些额外的技能,比如CAN总线的分析能力、HI1测试能力等等,因此MI1测试是一个比较尴尬的存在,上有控制器开发团队所必须配备的HI1测试工程师,下有MBD软件开发工程师(以上仅为个人观点)。