CN114676059A - 一种嵌入式软件故障注入方法及装置 - Google Patents
一种嵌入式软件故障注入方法及装置 Download PDFInfo
- Publication number
- CN114676059A CN114676059A CN202210332509.0A CN202210332509A CN114676059A CN 114676059 A CN114676059 A CN 114676059A CN 202210332509 A CN202210332509 A CN 202210332509A CN 114676059 A CN114676059 A CN 114676059A
- Authority
- CN
- China
- Prior art keywords
- embedded software
- data
- dll
- tested
- fault injection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式软件故障注入方法及装置,涉及嵌入式软件测试领域,该方法包括构建嵌入式软件数字化运行平台,以及构建数据接口套件;在数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上;创建数据DLL和控制DLL,所述数据DLL用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件;控制DLL从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。本发明能够对嵌入式软件测试工作的有效性进行保障。
Description
技术领域
本发明涉及嵌入式软件测试领域,具体涉及一种嵌入式软件故障注入方法及装置。
背景技术
有效的软件测试是提高软件质量的重要手段,故障注入技术作为能加速系统失效的方法,可以较精确地得出系统测试覆盖率、错误潜伏率等参数,已经被广泛地应用于软件测试工作中。通过对注入故障后加速系统发生故障和失效的过程进行监测及分析,可极大缩短对被测软件可靠性和容错特性测试结果的获得周期。因此故障注入技术在提高软件质量、减少软件危害、改进软件开发过程等方面起着重要作用。
嵌入式软件由于在实现设计功能时与硬件结合较为紧密,开展测试工作时,测试人员受硬件接口限制,往往无法充分依据设计的失效模式进行故障数据注入,特别是对于一些闭环解算类型的嵌入式软件,构造相关的故障数据难度更大。因此,亟需一种嵌入式软件故障注入方法,能够灵活开展嵌入式软件测试工作。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种嵌入式软件故障注入方法及装置,能够对嵌入式软件测试工作的有效性进行保障。
为达到以上目的,本发明提供的一种嵌入式软件故障注入方法,具体包括以下步骤:
构建嵌入式软件数字化运行平台以用于运行待测嵌入式软件,以及构建数据接口套件以用于与待测嵌入式软件进行数据交互;
在数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上,或者将物理量组包成通信协议发送给待测嵌入式软件;
创建数据DLL和控制DLL,所述数据DLL用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件,数据DLL用于进行闭环仿真解算,输入为解算控制量,输出为标准解算数据;
控制DLL从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。
在上述技术方案的基础上,
所述嵌入式软件数字化运行平台为对嵌入式软件运行硬件平台的虚拟;
所述嵌入式软件数字化运行平台包括数字化处理器和数字化通信芯片。
在上述技术方案的基础上,所述数据接口套件中包括多个通信协议和多个物理量,且数据接口套件中描述了通信协议和物理量间的对应关系。
在上述技术方案的基础上,所述待测嵌入式软件为闭环解算类型的嵌入式软件或开环控制类型的嵌入式软件。
本发明提供的一种嵌入式软件故障注入装置,包括:
嵌入式软件数字化运行平台,其用于运行待测嵌入式软件,以及构建数据接口套件以用于与待测嵌入式软件进行数据交互;
数据接口套件,其用于与待测嵌入式软件进行数据交互,所述数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上,或者将物理量组包成通信协议发送给待测嵌入式软件;
数据DLL,其用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件,数据DLL用于进行闭环仿真解算,输入为解算控制量,输出为标准解算数据;
控制DLL,其用于从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。
在上述技术方案的基础上,所述待测嵌入式软件为闭环解算类型的嵌入式软件或开环控制类型的嵌入式软件。
与现有技术相比,本发明的优点在于:采用数字化虚拟技术对嵌入式软件运行的硬件平台进行了数字化实现,能够在没有嵌入式系统硬件环境的情况下,利用通信协议灵活实现对嵌入式软件的故障注入功能,利用数据DLL和控制DLL控制嵌入式软件运行过程中环境物理量数值的改变,将数据、操作与解算模型解耦,以较为灵活的方式向被测嵌入式软件注入故障参数和类型。与此同时,在嵌入式软件测试过程中不用对被测软件源程序进行修改,最大程度上对嵌入式软件测试工作的有效性进行了保障。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种嵌入式软件故障注入方法的流程图;
图2为本发明实施例中一种嵌入式软件故障注入装置的结构示意图。
具体实施方式
本发明实施例提供一种嵌入式软件故障注入方法,能够便捷观察系统的输入输出并评估系统的鲁棒性和可靠性,最终避免在实际应用中发生软件失效和造成损失。本发明实施例相应地还提供了一种嵌入式软件故障注入装置。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。
参见图1所示,本发明实施例提供一种嵌入式软件故障注入方法,具体包括以下步骤:
S1:构建嵌入式软件数字化运行平台以用于运行待测嵌入式软件,以及构建数据接口套件以用于与待测嵌入式软件进行数据交互;
本发明实施例中,嵌入式软件数字化运行平台为对嵌入式软件运行硬件平台的虚拟;嵌入式软件数字化运行平台包括数字化处理器和数字化通信芯片。待测嵌入式软件为闭环解算类型的嵌入式软件或开环控制类型的嵌入式软件。
S2:在数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上,或者将物理量组包成通信协议发送给待测嵌入式软件。
本发明实施例中,数据接口套件中包括多个通信协议和多个物理量,且数据接口套件中描述了通信协议和物理量间的对应关系。
S3:创建数据DLL(Dynamic Link Library,动态链接库)和控制DLL,数据DLL用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件,数据DLL用于进行闭环仿真解算,输入为解算控制量,输出为标准解算数据。
S4:控制DLL从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。
为了方便测试人员控制,本发明将误差数据叠加开关和错误数据替换开关均作为数据接口套件中的一个物理量,测试人员即时修改即时生效。相关故障失效模式在制作控制DLL时就已经预埋进去,是测试策略和测试经验的直接体现。
本发明的嵌入式软件故障注入方法,采用数字化虚拟技术对嵌入式软件运行的硬件平台进行了数字化实现,因此可以在没有嵌入式系统硬件环境的情况下,利用通信协议对嵌入式软件灵活实现故障注入;利用数据DLL和控制DLL控制嵌入式软件运行过程中环境物理量数值的改变,将数据、操作与解算模型解耦,以较为灵活的方式向被测嵌入式软件注入故障参数和类型。与此同时,在嵌入式软件测试过程中不用对被测软件源程序进行修改,最大程度上对嵌入式软件测试工作的有效性进行了保障;控制DLL是测试故障注入的核心,本发明通过修改控制DLL可以实现对多类型故障或定制故障的激发,快速实现对某些特定故障场景的重建,通过积累故障类型,可对控制DLL实现功能的复用,从而提升嵌入式软件测试工作效率。
参见图2所示,本发明实施例提供的一种嵌入式软件故障注入装置,包括嵌入式软件数字化运行平台、数据接口套件、数据DLL和控制DLL。
嵌入式软件数字化运行平台用于运行待测嵌入式软件,以及构建数据接口套件以用于与待测嵌入式软件进行数据交互;数据接口套件用于与待测嵌入式软件进行数据交互,所述数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上,或者将物理量组包成通信协议发送给待测嵌入式软件;数据DLL用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件,数据DLL用于进行闭环仿真解算,输入为解算控制量,输出为标准解算数据;控制DLL用于从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。
本发明实施例中,嵌入式软件数字化运行平台为对嵌入式软件运行硬件平台的虚拟;嵌入式软件数字化运行平台包括数字化处理器和数字化通信芯片。数据接口套件中包括多个通信协议和多个物理量,且对通信协议和物理量间的对应关系进行了描述。待测嵌入式软件为闭环解算类型的嵌入式软件或开环控制类型的嵌入式软件。
本发明实施例的嵌入式软件故障注入装置,采用数字化虚拟技术对嵌入式软件运行的硬件平台进行了数字化实现,因此可以在没有嵌入式系统硬件环境的情况下,利用通信协议对嵌入式软件灵活实现故障注入;利用数据DLL和控制DLL控制嵌入式软件运行过程中环境物理量数值的改变,将数据、操作与解算模型解耦,以较为灵活的方式向被测嵌入式软件注入故障参数和类型。与此同时,在嵌入式软件测试过程中不用对被测软件源程序进行修改,最大程度上对嵌入式软件测试工作的有效性进行了保障。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
Claims (6)
1.一种嵌入式软件故障注入方法,其特征在于,具体包括以下步骤:
构建嵌入式软件数字化运行平台以用于运行待测嵌入式软件,以及构建数据接口套件以用于与待测嵌入式软件进行数据交互;
在数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上,或者将物理量组包成通信协议发送给待测嵌入式软件;
创建数据DLL和控制DLL,所述数据DLL用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件,数据DLL用于进行闭环仿真解算,输入为解算控制量,输出为标准解算数据;
控制DLL从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。
2.如权利要求1所述的一种嵌入式软件故障注入方法,其特征在于:
所述嵌入式软件数字化运行平台为对嵌入式软件运行硬件平台的虚拟;
所述嵌入式软件数字化运行平台包括数字化处理器和数字化通信芯片。
3.如权利要求1所述的一种嵌入式软件故障注入方法,其特征在于:所述数据接口套件中包括多个通信协议和多个物理量,且数据接口套件中描述了通信协议和物理量间的对应关系。
4.如权利要求1所述的一种嵌入式软件故障注入方法,其特征在于:所述待测嵌入式软件为闭环解算类型的嵌入式软件或开环控制类型的嵌入式软件。
5.一种嵌入式软件故障注入装置,其特征在于,包括:
嵌入式软件数字化运行平台,其用于运行待测嵌入式软件,以及构建数据接口套件以用于与待测嵌入式软件进行数据交互;
数据接口套件,其用于与待测嵌入式软件进行数据交互,所述数据接口套件中创建接口的通信协议与物理量间的对应关系,将通信协议中的数据分解至对应的物理量上,或者将物理量组包成通信协议发送给待测嵌入式软件;
数据DLL,其用于存储嵌入式软件正常的外部激励,且输出关联至数据接口套件中的物理量上,以及对于闭环解算类型的嵌入式软件,数据DLL用于进行闭环仿真解算,输入为解算控制量,输出为标准解算数据;
控制DLL,其用于从数据接口套件获取正常外部激励或标准解算数据,并基于测试需要对其叠加误差数据或替换成错误数据,实现测试故障注入。
6.如权利要求5所述的一种嵌入式软件故障注入装置,其特征在于:所述待测嵌入式软件为闭环解算类型的嵌入式软件或开环控制类型的嵌入式软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210332509.0A CN114676059A (zh) | 2022-03-30 | 2022-03-30 | 一种嵌入式软件故障注入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210332509.0A CN114676059A (zh) | 2022-03-30 | 2022-03-30 | 一种嵌入式软件故障注入方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676059A true CN114676059A (zh) | 2022-06-28 |
Family
ID=82075800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210332509.0A Pending CN114676059A (zh) | 2022-03-30 | 2022-03-30 | 一种嵌入式软件故障注入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676059A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431518A (zh) * | 2023-04-26 | 2023-07-14 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
-
2022
- 2022-03-30 CN CN202210332509.0A patent/CN114676059A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116431518A (zh) * | 2023-04-26 | 2023-07-14 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
CN116431518B (zh) * | 2023-04-26 | 2023-09-26 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933609B (zh) | Android应用程序安装包的生成方法及装置 | |
CN105608000B (zh) | 获取代码覆盖率数据的方法及装置 | |
CN110688313B (zh) | 一种VxWorks操作系统下软件测试的故障注入方法 | |
CN110704314B (zh) | 一种嵌入式软件测试的故障注入方法 | |
CN103218293B (zh) | 一种plc在线调试系统和方法 | |
CN107015902B (zh) | 一种测试方法和设备 | |
CN114676059A (zh) | 一种嵌入式软件故障注入方法及装置 | |
KR102141287B1 (ko) | Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템 | |
US20090204851A1 (en) | Method and System for Software Testing | |
CN111682993A (zh) | 一种汽车can总线信号模拟方法及装置 | |
CN107861850B (zh) | 一种中断验证系统及其使用方法、计算机设备、存储介质 | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN110198222B (zh) | 一种配电自动化终端即插即用测试方法及测试主站 | |
CN111142502A (zh) | Ecu检测的处理方法、装置、设备及存储介质 | |
CN115470141A (zh) | 一种故障模拟方法、装置及相关设备 | |
CN100359485C (zh) | 嵌入式系统的测试装置及测试方法 | |
CN102306109A (zh) | 一种实现通讯管理机内部逻辑可编程方法 | |
CN111682987B (zh) | 基于osek nm的实车环境模拟及快速测试系统 | |
CN111736893B (zh) | 一种软件包版本核验方法及相关装置 | |
CN115348200A (zh) | 一种can通信功能测试方法及测试系统 | |
JP2004019508A (ja) | 車両用制御装置の評価方法、および車両用制御装置の評価用信号の記録装置 | |
CN112527680B (zh) | 一种基于Fitnesse框架的项目API级全链路自动化测试方法及系统 | |
CN113688032A (zh) | 基于进程间通信机制的故障注入验证方法、系统及终端 | |
JP2005316710A (ja) | ソフトウェア試験支援装置 | |
CN113295434B (zh) | 一种制动测试系统、平台和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |