论文部分内容阅读
航天嵌入式系统工作在恶劣的太空环境下,容易产生瞬时或间歇性故障,因此,可靠性评价成为系统性能检测的重要环节。故障注入方法是评测容错计算机系统可靠性的有效方法之一,它通过人为的将故障引入到目标系统中来加速错误的发生和失效,减少缺陷暴露时间,提高测试覆盖率。现阶段,故障注入方法的实现依赖于某些高级处理器的硬件特性或某些操作系统的特殊功能,限制了该方法的应用范围。因此,有必要设计一种适用于多种处理器和操作系统的故障注入实现方法,扩大故障注入技术的使用范围。
本文主要研究了故障注入方法和模型驱动测试两方面的内容。研究了现有的具有代表性的软件实现的故障注入方法:变异方法、基于中间层的注入方法、基于GDB(调试器)的故障注入方法。分析了这些方法在注入故障类型和适用范围上的局限性,在此基础上提出了基于GDB远程调试技术的故障注入方法;该方法结合了GDB调试技术的通用性和GDB RSP协议实现的平台无关性,实现了在一个平台上对多种嵌入式系统进行故障注入的目的。研究了现有的基于UML活动图模型驱动的测试用例生成方法:反蚂蚁方法、自适应方法、灰盒方法。对比分析了这些方法在循环、并发和路径算法等关键问题上的解决策略,指出了现有方法在测试数据生成方面存在的问题,在此基础上提出了基于UML活动图模型驱动的划分的测试用例生成方法;该方法通过划分软件输入域定义了5中测试场景类型,针对每种场景类型设定了相应的测试策略,从而生成规模小、覆盖率高、针对性强的测试用例集合。使用以上两种方法,并结合航天嵌入式系统的可靠性检测需求,完成了基于GDB远程调试技术的故障注入工具设计和原型系统实现。文章的最后使用该工具进行了模型驱动、故障注入和整体性能三方面的实验,实验结果表明该方法能够向目标系统中注入多种类型的故障,自动生成测试用例驱动故障检测过程,且故障注入的实现过程不受目标系统运行平台的限制。本文设计的故障注入检测方法能够有效的检测嵌入式系统故障,并且具有较好的通用性。