赵国利(南京电子技术研究所)与敬敏(解放军93145部队),在2024年发表于《信息技术与信息化》的研究工作,通过基于故障注入(fault injection)的方法,提出并验证了一种提升雷达系统软件安全性的新型测试方法。本文的研究背景、方法、结果及其重要意义归纳如下。
雷达系统日益复杂,软件在其功能实现中的作用和重要性越来越高。然而,雷达运行过程中可能的故障会导致软件失效,不仅危害系统安全,还可能带来重大经济损失。软件安全性测试作为发现并修正潜在缺陷的有效手段,其目标是在测试阶段尽可能降低由于软件失效而导致系统灾难性后果的风险。
传统的雷达软件安全性测试方法包括故障树分析测试法、猜错测试法等,多基于软件需求。然而,这些方法多关注边界条件或异常情况,较少对历史故障的潜在影响进行分析和利用。基于故障注入的方法提供一种加速故障进程的手段,也为历史故障模式在系统安全性测试中的深度剖析提供了可能。
本文旨在通过故障模式及其影响危害性分析(FMECA, Failure Modes, Effects, and Criticality Analysis)技术,识别雷达系统的常见故障模式,设计针对这些典型模式的测试用例,并结合故障注入技术,对雷达系统安全性进行验证。目标是提升雷达软件故障检测能力,降低运行故障率,从而提高其安全性。
作者首先通过两种方法识别雷达系统的典型故障模式: - 基于历史数据:利用雷达历史故障数据,采用模式识别、一阶谓词和集合论等技术,提取雷达系统设计薄弱环节。这种方法充分利用了历史数据中蕴含的失效经验,重点识别和总结反复出现的问题。 - 基于标准要求:参考GJB/Z 102A、GJB/Z 142等军用标准,提取适用于雷达系统的故障模式,确保设计符合规范性。
在此基础上,作者对故障模式进行了分类: 1. 输入故障:因输入数据或指令错误而引起的故障,如接口输入、文件数据输入等。 2. 输出故障:有害的输出行为,如输出数据不符协议、不完整等。 3. 程序处理故障:程序资源调用、时钟管理等过程中产生的问题。
故障模式最终以FMECA表格的形式总结,如: - FMeca-01:不同模块初始化时间不一致,导致通信中断。 - FMeca-03:多线程访问冲突,导致系统死机。
故障注入分为软件故障注入、硬件故障注入、软硬件结合故障注入及总线故障注入。以下分别进行详细阐述。
在程序中插入故障代码,通过变异程序触发故障条件。具体方法包括: - 环境搭建:构建含故障注入计算机、编译环境及调试工具的测试环境。 - 测试用例设计:基于故障原因设计激励条件,并确定测试追踪、预期输出等关键因素。 - 测试流程:采用等价类划分或边界值方法,对测试用例进行执行。以“多线程数据访问冲突”为例,通过插入信号量保护等方式验证故障模式的处理功能。
通过对芯片核心电路施加电源干扰(如过压、过流等方式),对硬件行为层面进行干预。具体方法包括: - 环境搭建:使用硬件故障注入器和模拟装置。 - 方法实施:以电源干扰法为主,可以通过信号模拟硬件环境。 - 样例测试:针对此类方法,文章列出了调试防抖软件以防止跳变信号引发状态错误的具体用例。
结合软件与硬件注入技术,模拟更加复杂的应用场景: - 示例:利用信号源为存储器施加异常电平,验证数据校验机制。 该方法提供了多样化的干扰方式,提高了故障模式模拟的精细化程度。
通过控制总线流量,建立测试环境以观察通信状况的变化: - 工具与流程:依据CAN等总线协议,利用工具注入过载或速率异常数据。 - 故障覆盖:验证系统对外部输入/输出异常的反应能力。
研究结果通过实验证明,基于故障注入的雷达软件安全性测试能够显著提高测试效率和故障缺陷的检出率。 - 工程验证:实验以四个雷达软件测试项目为例,统计分别采用传统测试方法与本文方法的缺陷检出率,结果如下: - 系统测试项目1的缺陷检出由传统方法的5个增加到故障注入的7个。 - 配置项1的检出率从10增加为15,显著提升。
此外,实验结果验证了本文方法在典型雷达故障模式测试中的可行性,提出的方法在多种场景下的测试表现优于传统方法。
本文提出的基于故障模式的雷达软件安全性测试方法,显著提升了雷达系统应对关键性故障的能力,减少了系统的运行风险。主要贡献包括: 1. 形成了一套标准化的故障模式分类和分析框架。 2. 提出了结合故障注入技术的测试解决方案,填补了传统方法对历史故障利用不足的空白。
对于工程应用,可以增强雷达软件功能的可靠性,对军用及其他安全性敏感领域的软件开发具有重要的借鉴意义。
这篇对于提升复杂雷达系统运行中的安全性与稳定性具有应用价值,并为软件系统测试领域提供了重要启示。