【软件测试】MIL/HIL/PIL/SIL测试

V字型开发流程

引用文章:汽车行业V模型开发详解

V模型开发(V-Model Development)是一种广泛应用于汽车行业的系统开发方法。它以字母“V”形状的图表形式展示了开发过程中不同阶段之间的关系,从需求分析到系统整合和验证,再到产品发布。V模型强调需求与测试之间的关系,以确保各阶段的输出能满足客户需求。

在这里插入图片描述

V模型开发主要包括以下几个阶段:
需求阶段:在这个阶段,项目团队收集、分析和定义客户需求。需求文档通常以规格说明书的形式出现,包括功能需求、性能需求、接口需求等。需求阶段的产物将直接影响后续开发过程。

系统设计阶段:在这个阶段,项目团队根据需求规格说明书,对整个系统进行高层次的架构设计。设计师在此阶段确定系统的主要组成部分、功能划分和交互方式。此阶段产生的文档主要为系统架构设计文档。

子系统设计阶段:在这个阶段,项目团队将系统分解为若干子系统,并为每个子系统创建详细设计文档。这些文档描述了子系统的内部结构、功能、接口等。同时,软件和硬件设计师开始进行相应的设计工作

模块设计与实现阶段:在这个阶段,项目团队进一步将子系统分解为模块,并编写模块级别的设计文档。软件工程师根据设计文档编写源代码,硬件工程师则进行硬件电路设计。

单元测试阶段:在完成模块设计与实现后,项目团队针对每个模块进行单元测试,以验证模块是否满足其设计要求。这个阶段产出的主要文档是单元测试计划和单元测试报告。

集成测试阶段:在这个阶段,项目团队将各个模块组合成子系统,并进行集成测试。测试人员通过执行集成测试用例检查子系统之间的接口是否正确,以及子系统的整体功能是否符合预期。此阶段产生的文档主要为集成测试计划和集成测试报告。

系统测试阶段:在这个阶段,项目团队对整个系统进行综合性能、功能、兼容性等方面的测试。测试人员需要确保系统满足客户需求,并达到规定的质量标准。此阶段产生的文档主要为系统测试计划和系统测试报告。

验证与验收阶段:在这个阶段,客户或第三方机构对整个系统进行验证和验收。根据验证和验收的结果,项目团队可能需要对产品进行相应的调整和优化。完成验证和验收后,项目团队将正式交付产品。

作为嵌入式软件工程师,在V模型开发过程中,需要关注以下阶段:
子系统设计阶段:嵌入式软件工程师需要理解子系统的功能需求和接口要求,参与子系统设计并为其创建详细设计文档。

模块设计与实现阶段:在此阶段,嵌入式软件工程师需要根据设计文档编写源代码,并确保代码符合规范、健壮、可靠和可维护。

单元测试阶段:在完成模块设计与实现后,嵌入式软件工程师需要对每个模块进行单元测试,以验证其功能正确性和性能。

集成测试阶段:在此阶段,需要确保软件与硬件之间的接口正确,并进行集成测试,以检验整个子系统的功能和性能。

系统测试阶段:在整个系统的测试过程中,嵌入式软件工程师需要密切关注软件方面的问题,快速定位和解决软件缺陷。

MBD

引用文章:https://blog.csdn.net/weixin_44182878/article/details/88721259

代码生成最大的好处是,算法的早期验证,之前NASA有研究表明,开发初期引入的bug,如果到了晚期才发现出来,那么修复这一的bug,会产生非常大的费用。所以,我们期望能够尽早的发现开发过程中引入的bug。

说一下MBD开发过程中都有哪些验证工作(verification)要做。

模型出来并且可以编译之后,首先要做建模标准检查,这个过程使用工具(比如MathWorks公司的Simulink Verification & Validation提供的model advisor)自动化的完成,检查过后,修改模型中不符合公司建模规则的项目。

接下来,就可以进行模型评审了,也就是说,评审的模型有两个前提,一是可以编译的,二是符合公司建模规则的。这两个前提可以帮助我们消除模型中的一些低级错误,避免在评审过程中有太多的时间花费在这些错误上。因为评审是建模的工程师和其他同事共同参与的活动,做到上述两个前提,也是对其他同事工作时间的一种尊重。

评审之后,建模的工程师会修改评审中发现的问题,问题多的话,一般会要求修改之后再进行“再评审”,直到在评审中不会发现大量问题。

接下来,我们可以使用Simulink Design Verifier进行模型的结构分析,借助于Simulink Design Verifier自动生成测试用例的功能,去检查结构上是否存在问题,比如是否有不合理的逻辑设计,是否有运行不到的分支等。

再往后,就可以进行模型单元级别的功能测试了。软件开发过程中,对单元测试的要求是很高的,一般会根据应用的安全性、可靠性要求,给出测试的覆盖率要求。

这个过程中工作量最大的应该是测试用例设计以及测试向量的生成。测试用例设计,我们一般会根据需求去设计测试用例,当然,也会结合模型结构设计测试用例,这样说来,这里的测试,已经包含了黑盒测试和白盒测试。有了测试用例,如何把测试用例转换为测试向量,这也是非常重要的环节。我们知道,在MBD开发过程中,代码都可以自动生成,其他环节,我们要努力做到自动化实现。我们可以使用MATLAB脚本开发一些转换工具用于将测试用例转换为测试向量,我们还可以通过脚本实现测试过程的自动化。

MIL/HIL/PIL/SIL测试

MIL、SIL、PIL、HIL是个啥,你搞懂了吗?

MIL,Model in the Loop:模型在环测试;

SIL,Software in the Loop:软件在环测试;

PIL,Processor in the Loop:处理器在环测试;

HIL,Hardware in the Loop:硬件在环测试。

MIL (Model-in-the-Loop):模型在环路中。在 MIL 测试中,系统模型(通常是软件模型)被用于测试系统的功能。这种测试方法通常在开发的早期阶段进行,以验证系统的基本功能和逻辑。

SIL (Software-in-the-Loop):软件在环路中。在 SIL 测试中,软件模型被嵌入到仿真环境中,以便测试软件的功能和性能。SIL 测试可以帮助开发人员验证软件在实际硬件上运行之前的行为。

PIL (Processor-in-the-Loop):处理器在环路中。在 PIL 测试中,处理器被嵌入到仿真环境中,以便测试处理器的功能和性能。这种测试方法可以帮助开发人员验证处理器在实际应用程序中的行为,特别是在嵌入式系统开发中常常使用。因此,PIL 测试通常涉及将处理器与仿真模型相结合,以评估处理器在特定环境下的行为和性能。这种测试方法有助于确保处理器在实际应用中能够按预期工作,并且能够与其他系统组件有效地交互。

HIL (Hardware-in-the-Loop):硬件在环路中。HIL 测试涉及将实际硬件与仿真模型相结合,以评估硬件和软件之间的交互作用。这种测试方法可以提供更接近于实际操作条件的测试环境,帮助验证系统在实际硬件上的运行情况。

在这里插入图片描述

这些测试方法通常在软件开发和系统集成的不同阶段使用,以确保系统能够按预期工作并达到所需的性能指标。每种测试方法都有其优势和适用的场景,开发团队可以根据具体需求选择最合适的测试方法来确保系统的质量和稳定性。

以上四中测试,其中MIL、SIL、PIL三种测试都是和MBD开发模式下特有的,而HIL不同,无论你是否使用MBD开发,都可能需要做HIL。不是所有的应用都需要,但是以下两种情况建议做HIL:

1.在控制器软硬件不成熟的条件下,运行出错可能会导致人身伤害或者重大财产损失的情况;
2.在开发过程中,被控对象开发滞后于控制器开发的情况。另外,HIL测试通常比实物测试更节省成本,比如,做汽油机台架测试,需要有大量的汽油消耗,而通过HIL测试汽油机控制器,就没有汽油消耗。但这并不是说HIL可以替代实物测试,HIL测试之后,通常会跟着做实物测试。

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Logintern09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值