[发明专利]一种嵌入式软件测试的故障注入方法有效
| 申请号: | 201910915616.4 | 申请日: | 2019-09-26 |
| 公开(公告)号: | CN110704314B | 公开(公告)日: | 2023-03-10 |
| 发明(设计)人: | 赵昶宇 | 申请(专利权)人: | 天津津航计算技术研究所 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 王雪芬 |
| 地址: | 300308 天津*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 嵌入式 软件 测试 故障 注入 方法 | ||
本发明涉及一种嵌入式软件测试的故障注入方法,涉及嵌入式软件测试技术领域。本发明设计一种嵌入式软件测试的故障注入方法,该方法通过在软件源代码中增加测试代码的方式,能够实现在特定的位置和特定的时刻对软件源代码中的全局变量、局部变量、寄存器、堆栈以及软件接口等的故障注入和测试,提高软件的测试覆盖率和可靠性。
技术领域
本发明涉及嵌入式软件测试技术领域,具体涉及一种嵌入式软件测试的故障注入方法。
背景技术
将故障注入技术作为软件测试技术,一般来讲是制定特定的故障模型,采用人为的、有意识的方式产生故障,并施加于待测系统中,用来加速该系统的错误和失效的产生,同时观测并反馈对所注入故障的响应信息,通过分析对系统进行验证和评价的过程。基于软件的故障注入通常是根据故障模型,通过修改目标系统的内存映像来模拟系统硬件或软件故障的发生,按故障注入的时刻可分为运行前注入和运行时注入。
目前基于嵌入式系统软件故障注入的测试方法有以下几种:
(1)直接修改源程序的静态故障注入方法。该方法直接修改被测系统源代码模拟故障产生,不需要额外接口资源和监控软件,属于运行前注入故障的方式。该方法容易模拟永久故障,模拟时序相关的故障逻辑时,需要编写复杂的故障模拟代码,费时费力,且易引入新的故障,不满足灵活性和重用性要求;
(2)软件开发环境支持的故障注入方法。该方法适用于软件开发人员在编码、调试阶段通过设置断点来修改内存或寄存器内容产生所需的故障,具有简单灵活的特点。但是由于设置断点会导致测试不能连续运行,对于涉及多任务和中断处理的软件,很难测试任务之间或中断处理与主流程之间的相互影响;
(3)设计运行时的软件故障注入器,利用故障脚本描述语言、故障库和故障注入器算法获取故障现场的信息。该方法能够有效的将故障注入被测软件中,便于捕捉并重现故障信息。但是上述方法的实现比较复杂,通常需要设计主控制器、故障注入器、脚本解析器、监视器、数据采集器和数据收集器等,技术门槛较高,还需要针对不同类型的故障注入模型设计相应的故障注入器算法,灵活性较差。
针对目前基于嵌入式系统软件故障注入的测试方法中存在的不足,需要提出一种嵌入式软件测试的故障注入方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现在特定的位置和特定的时刻对软件源代码中的全局变量、局部变量、寄存器、堆栈以及软件接口等的故障注入和测试,提高软件的测试覆盖率和可靠性。
(二)技术方案
为了解决上述技术问题,本发明提供了一种嵌入式软件测试的故障注入方法,包括以下步骤:
S1、建立软件故障测试用例库;
S2、基于所述软件故障测试用例库向被测试的目标系统注入故障。
优选地,步骤S1具体为:通过对嵌入式软件建立详细级失效模式及影响分析,对嵌入式软件源代码进行故障模式和信息提取,最终建立软件故障测试用例库。
优选地,步骤S2具体为通过监控器向目标系统注入故障:监控器根据故障测试用例向目标系统注入故障,该故障测试用例为单点故障或者故障序列,监控器通过物理接口将故障测试用例按照约定的通讯协议格式发送给目标系统,目标系统通过解析通讯协议完成故障注入工作。
优选地,步骤S2具体包括:
S21、设目标系统的软件源代码从寄存器、硬件地址或是软件接口中读取的信息保存在局部变量A中,则在软件源代码中局部变量A获得当前寄存器、硬件地址或是软件接口中的信息后增加如下代码:
if(TRUE==XXX_Debug)
A=Global_XXX;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910915616.4/2.html,转载请声明来源钻瓜专利网。





