当前位置: 首页 > news >正文

【软件测试】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测试之后,通常会跟着做实物测试。

相关文章:

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

V字型开发流程 引用文章:汽车行业V模型开发详解 V模型开发(V-Model Development)是一种广泛应用于汽车行业的系统开发方法。它以字母“V”形状的图表形式展示了开发过程中不同阶段之间的关系,从需求分析到系统整合和验证&#x…...

WebKit结构深度解析:打造高效与安全的浏览器引擎

WebKit结构深度解析:打造高效与安全的浏览器引擎 在现代网络世界中,浏览器作为连接用户与互联网信息的桥梁,其背后的技术架构至关重要。WebKit,作为当今最流行的开源浏览器引擎之一,其结构设计和功能实现对于提升浏览…...

SQLSERVER对等发布问题处理

问题1: 无法对 数据库Sast_Business 执行 删除,因为它正用于复制。 (.Net SqlClient Data Provider) 处理: USE [master]; GO EXEC sp_replicationdboption dbname NSast_Business, optname Npublish, value Nfalse; EXEC sp_replica…...

CentOS 7 中时间快了 8 小时

1.查看系统时间 1.1 timeZone显示时区 [adminlocalhost ~]$ timedatectlLocal time: Mon 2024-04-15 18:09:19 PDTUniversal time: Tue 2024-04-16 01:09:19 UTCRTC time: Tue 2024-04-16 01:09:19Time zone: America/Los_Angeles (PDT, -0700)NTP enabled: yes NTP synchro…...

itext7 pdf转图片

https://github.com/thombrink/itext7.pdfimage 新建asp.net core8项目&#xff0c;安装itext7和system.drawing.common 引入itext.pdfimage核心代码 imageListener下有一段不安全的代码 unsafe{for (int y 0; y < image.Height; y){byte* ptrMask (byte*)bitsMask.Scan…...

搜维尔科技:Manus Xsens Metagloves新一代手指捕捉

Manus Xsens Metagloves新一代手指捕捉 搜维尔科技&#xff1a;Manus Xsens Metagloves新一代手指捕捉...

Python与Redis:提升性能,确保可靠性,掌握最佳实践

在 Python 中&#xff0c;有多个库可用于与 Redis 数据库进行交互&#xff0c;其中最受欢迎的是 redis-py。这是一个 Python 客户端库&#xff0c;提供了与 Redis 数据库进行通信的丰富功能。 Python操作Redis操作步骤 安装 redis-py 使用 pip 安装 redis-py&#xff1a; p…...

GPT国内能用吗

2022年11月&#xff0c;Open AI发布ChatGPT&#xff0c;ChatGPT展现了大型语模型在自然语言处理方面的惊人进步&#xff0c;其生成文本的流畅度和连贯性令人印象深刻&#xff0c;为AI应用打开了新的可能性。 ChatGPT的出现推动了AI技术在各个领域的应用&#xff0c;例如&#x…...

中科亿海微-CL1656功能验证开发板

I. 引言 A. 研究背景与意义 CL1656是一款精度高、功耗低、成本低的5V单片低功耗运放&#xff0c;由核心互联公司研发制造&#xff0c;CL1656 是一个 16-bit、快速、低功耗逐次逼近型 ADC&#xff0c;吞吐速率高达 250 kSPS&#xff0c;并且内置低噪声、宽 带宽采样保持放大器。…...

学习STM32第十五天

SPI外设 一、简介 STM32F4XX内部集成硬件SPI收发电路&#xff0c;可以由硬件自动执行时钟生成、数据收发等功能&#xff0c;减轻CPU负担&#xff0c;可配置8位/16位数据帧&#xff0c;高位&#xff08;最常用&#xff09;/低位先行&#xff0c;三组SPI接口&#xff0c;支持DMA…...

【面试题】MySQL 事务的四大特性说一下?

事务是一个或多个 SQL 语句组成的一个执行单元&#xff0c;这些 SQL 语句要么全部执行成功&#xff0c;要么全部不执行&#xff0c;不会出现部分执行的情况。事务是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成。 事务的主要作用是保证数…...

案例实践 | InterMat:基于长安链的材料数据发现与共享系统

案例名称&#xff1a;InterMat-基于区块链的材料数据发现与共享系统 ■ 建设单位 北京钢研新材科技有限公司 ■ 用户群体 材料数据上下游单位 ■ 应用成效 已建设10共识节点、50轻节点&#xff0c;1万注册用户 案例背景 材料是构成各种装备和工程的物质载体&#xff0c…...

【数据挖掘】实验8:分类与预测建模

实验8&#xff1a;分类与预测建模 一&#xff1a;实验目的与要求 1&#xff1a;学习和掌握回归分析、决策树、人工神经网络、KNN算法、朴素贝叶斯分类等机器学习算法在R语言中的应用。 2&#xff1a;了解其他分类与预测算法函数。 3&#xff1a;学习和掌握分类与预测算法的评…...

go语言并发实战——日志收集系统(三) 利用sarama包连接KafKa实现消息的生产与消费

环境的搭建 Kafka以及相关组件的下载 我们要实现今天的内容&#xff0c;不可避免的要进行对开发环境的配置&#xff0c;Kafka环境的配置比较繁琐&#xff0c;需要配置JDK,Scala,ZoopKeeper和Kafka&#xff0c;这里我们不做赘述&#xff0c;如果大家不知道如何配置环境&#x…...

Go 单元测试之Mysql数据库集成测试

文章目录 一、 sqlmock介绍二、安装三、基本用法四、一个小案例五、Gorm 初始化注意点 一、 sqlmock介绍 sqlmock 是一个用于测试数据库交互的 Go 模拟库。它可以模拟 SQL 查询、插入、更新等操作&#xff0c;并且可以验证 SQL 语句的执行情况&#xff0c;非常适合用于单元测试…...

Prometheus + Grafana 搭建监控仪表盘

目标要求 1、需要展现的仪表盘&#xff1a; SpringBoot或JVM仪表盘 Centos物理机服务器&#xff08;实际为物理分割的虚拟服务器&#xff09;仪表盘 2、展现要求: 探索Prometheus Grafana搭建起来的展示效果&#xff0c;尽可能展示能展示的部分。 一、下载软件包 监控系统核心…...

机器人管理系统的增删查改(Python)

#交互模式 robot ["机器人1","机器人2","机器人3","机器人4"] name input("请输入您的姓名&#xff1a;") print("%s您好欢迎使用机器人管理系统"%(name))while True:print("您可以进行 1.查找 2.修改 3.增…...

【.Net动态Web API】背景与实现原理

&#x1f680;前言 本文是《.Net Core进阶编程课程》教程专栏的导航站&#xff08;点击链接&#xff0c;跳转到专栏主页&#xff0c;欢迎订阅&#xff0c;持续更新…&#xff09; 专栏介绍&#xff1a;通过源码实例来讲解Asp.Net Core进阶知识点&#xff0c;让大家完全掌握每一…...

JS-43-Node.js02-安装Node.js和npm

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;可以让JavaScript实现后端开发&#xff0c;所以&#xff0c;首先在本机安装Node.js环境。 一、安装Node.js 官网&#xff1a;下载 Node.js 默认两个版本的下载&#xff1a; 64位windows系统的LTS(Long Tim…...

设计模式(分类)

目录 设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 设计模式是软件工程中一种经过验证的、用于解决特定设计问题的通用解决方案。它们是面向对象编程&#xff08;Object-Oriented Programming, OOP&#xff09;实践中提炼出的最佳实…...

请陪伴Kimi和GPT成长

经验的闪光汤圆 但是我想要写实的 你有吗&#xff1f; 岁数大了&#xff0c;希望如何学习新知识呢&#xff1f;又觉得自己哪些能力亟需补强呢&#xff1f; 看论文自然得用Kimi&#xff0c;主要是肝不动了&#xff0c;眼睛也顶不住了。 正好昨天跟专业人士学会了用工作流的办法跟…...

优思学院|ISO45001职业健康安全管理体系是什么?

ISO45001:2018是新公布的国际标准规范&#xff0c;全球备受期待的职业健康与安全国际标准&#xff08;OH&S&#xff09;于2018年公布&#xff0c;并将在全球范围内改变工作场所实践。ISO45001将取代OHSAS18001&#xff0c;成为全球工作场所健康与安全的参考。 ISO45001:201…...

抖去推短视频矩阵系统----源头开发

为什么一直说让企业去做短视频矩阵&#xff1f;而好处就是有更多的流量入口&#xff0c;不同平台或账号之间可以进行资源互换&#xff0c;最终目的就是获客留咨&#xff0c;提单转化。你去看一些做得大的账号&#xff0c;你会发现他们在许多大的平台上&#xff0c;都有自己的账…...

Golang函数重试机制实现

前言 在编写应用程序时&#xff0c;有时候会遇到一些短暂的错误&#xff0c;例如网络请求、服务链接终端失败等&#xff0c;这些错误可能导致函数执行失败。 但是如果稍后执行可能会成功&#xff0c;那么在一些业务场景下就需要重试了&#xff0c;重试的概念很简单&#xff0c…...

工业电脑在ESOP工作站行业应用

ESOP工作站行业应用 项目背景 E-SOP是实现作业指导书电子化&#xff0c;并统一管理和集中控制的一套管理信息平台。信迈科技的ESOP终端是一款体积小巧功能齐全的高性价比工业电脑&#xff0c;上层通过网络与MES系统连接&#xff0c;下层连接显示器展示作业指导书。ESOP控制终…...

java项目实战之图书管理系统(1)

✅作者简介&#xff1a;大家好&#xff0c;我是再无B&#xff5e;U&#xff5e;G&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 1.背景 图书管理系统是一种用于管理图书…...

3DGS渐进式渲染 - 离线生成渲染视频

总览 输入&#xff1a;环绕Object拍摄的RGB视频 输出&#xff1a;自定义相机路径的渲染视频&#xff08;包含渐变效果&#xff09; 实现过程 首先&#xff0c;编译3DGS的C代码&#xff0c;并跑通convert.py、train.py和render.py。教程如下&#xff1a; github网址&#xf…...

chromium 协议栈 cronet ios 踩坑案例

1、请求未携带 Accept-Language http header 出现图片加载失败 现象&#xff1a; 访问 https://www.huawei.com/cn/?ic_mediumdirect&ic_sourcesurlent 时出现图片加载失败的问题 预期结果&#xff1a; 原因&#xff1a; 网络库删除了添加 Accept-Language header 的逻…...

Java快速排序知识点(含面试大厂题和源码)

快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;采用分治法&#xff08;Divide and Conquer&#xff09;的策略来对一个数组进行排序。快速排序的平均时间复杂度为 O(n log n)&#xff0c;在最坏的情况下为 O(n^2)&#xff0c;但这种情况很少发生…...

SpringBoot整合Swagger2

SpringBoot整合Swagger2 1.什么是Swagger2&#xff1f;&#xff08;应用场景&#xff09;2.项目中如何使用2.1 导入依赖2.2 编写配置类2.3 注解使用2.3.1 controller注解&#xff1a;2.3.2 方法注解2.3.3 实体类注解2.3.4 方法返回值注解2.3.5 忽略的方法 3.UI界面 1.什么是Swa…...

和优网站建设/汕头百度推广公司

◎总是有人价格比你低 前一阵子笔者在某个演讲的场合中遇到一位在网络上自行创业的妇女朋友&#xff0c;她是在网络上靠著经营孕妇装拍卖发家的&#xff0c;由于服务做得好而声誉鹊起&#xff0c;生意做得还不错&#xff0c;目前正朝向自行经营网站的方向前进。 这是目前很…...

免费网站代码/seo快速排名优化公司

1、前言 指纹模块和树莓派实现的网上的资料比较少。所以把自己研究成功了的指纹模块给大家分享一下。现在目前市场上指纹模块比较多&#xff0c;大多还支持二次开发&#xff0c;但是难易度不同&#xff0c;一般价格高一点的相对开发简单&#xff0c;很多实现方法都已封装好了。…...

南昌做网站比较好的公司/短视频排名seo

自己写某产品时的代码&#xff0c;虽然网上有一堆一堆&#xff0c;但是这个是自己调试过的&#xff0c;自己留着给自己看 VOID GetInstanceVersion(){ BOOL version_get FALSE; DWORD dwVersionInfoSize; TCHAR szFile[255]; memset(szFile,0x00,sizeof(szFile))…...

网站日志管理/今日重大新闻事件

H 题意&#xff1a; 给你n个矩形的长和宽&#xff0c;排列在一起&#xff0c;现在问你最大的矩形是多大。 思考&#xff1a; 单调栈的基础题&#xff0c;就是维护一个矩形左边第一个比他小的&#xff0c;和右边第一个比他小的&#xff0c;那么中间的就是宽累积起来&#xff0…...

汕头网站建设科技有限公司/百度关键词seo排名优化

1、小组第二次冲刺任务及其完成情况描述。 本次冲刺我们小组经过讨论&#xff0c;实现的使我们爱上长大系统中的失物招领功能&#xff0c;由于在实际的实现中&#xff0c;对于本功能的逐渐深入和了解&#xff0c;渐渐发现这个功能实现起来需要由很多部分组成&#xff0c;多以本…...

mac安装字体到wordpress/东莞搜索seo网站关键词优化

Kotlin 语言学习(1) - Kotlin 基础 Kotlin 语言学习(2) - 函数的定义与调用 Kotlin 语言学习(3) - 类、对象和接口 Kotlin 语言学习(4) - 数据类、类委托 及 object 关键字 Kotlin 语言学习(5) - lambda 表达式和成员引用 Kotlin 语言学习(6) - Kotlin 的可空性 Kotlin 语…...