新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于软件可靠性仿真测试平台实时技术研究

基于软件可靠性仿真测试平台实时技术研究

作者:时间:2017-02-27来源:网络收藏
软件可靠性测试是当前软件技术领域中一个比较热门的话题,软件可靠性对整个系统可靠性的影响越来越大,尤其对于航空类系统软件来说,软件故障往往是导致系统失败的主要原因之一。采用模拟被测目标软件实际运行环境对软件进行测试是目前国内外一致认为比较理想的软件测试方法之一。合理设计目标软件可靠性的运行环境,较为真实地模拟出被测软件的真实运行环境,不但可以检测到目标软件运行过程中存在的故障,而且也可以保证测试结果的真实性和置信度。

本文在介绍软件可靠性仿真测试平台的组成及功能的基础上,以仿真器分系统为例,对平台在实时测试过程中的一些实现技术进行了研究。

1 仿真测试平台系统功能及组成框架

整个仿真测试平台采用分布式结构,由主控机分系统(以下简称为主控机)、仿真器分系统(以下简称为仿真器)和激励器分系统(以下简称为激励器)三个分系统组成,各分系统与被测目标软件的交联关系如图1所示。其中,主控机是测试平台的控制中心,它负责生成原始测试数据,向仿真器、激励器分发测试用例,协调两个分系统的工作,并根据测试状况控制仿真器和激励器的工作模式。仿真器和激励器将主控机传送过来的测试用例数据,生成真正的目标软件可以接收的测试用例数据传送给目标系统,同时,仿真器和激励器负责将自身工作状态信息和从目标系统得到的测试结果数据通过底层网络实时或非实时地传送回主控机。

图1 仿真测试平台的交联关系图

由于目标软件由汇编语言写成,内部处理过程较为复杂,所以采用黑盒测试方法。目标软件的处理周期为25 ms,因此在实时测试过程中,需要每25 ms有一组测试用例数据由仿真器通过1553B总线,激励器通过并口同时输入给目标软件。仿真器和激励器不仅需要每25 ms产生目标软件的输入数据,同步向目标软件发送数据,而且仿真器还能接收目标软件的输出,并且对输出数据进行相应的实时处理,如结果数据的收集、保存及数据的显示等等。由于整个测试平台是在非实时、多任务的Win98操作系统上实现的,因此,如何利用Win98的多任务并发的特性,采用合理的任务调度策略,在任务处理周期内,按时完成各种任务,并将多个任务协调一致,是整个设计过程中主要应该解决的问题。

在图1所示的平台各分系统中,主控机与目标软件是通过仿真器形成实时闭环的。仿真器通过测试用例,实时给出目标软件闭环运行所需要的交联子系统发出的命令和数据,使得目标软件能够在较为真实的仿真任务剖面和交联环境中运行。因此,仿真器是仿真测试平台中的一个重要组成部分,仿真器的实时实现方法是整个平台系统设计的重点。 2 仿真器分系统的功能设计及实时实现技术

2.1 仿真器分系统功能结构

仿真器分系统是个实时任务系统,在整个测试过程的运行模式下,需要并发处理不同的任务,如数据实时存盘、提取、交互式显示、每25 ms驱动1553B总线等任务,任务调度涉及到CPU、内存、网络、硬盘、数据结构、I/O接口等资源,因而合理调度各个任务,正确分配其所占用的系统资源,是仿真器测试平台设计的关键之一。

为了提高平台系统的可靠性和故障快速恢复能力,仿真器采用功能模块化设计方法。不同任务对应的工作模块工作相对独立,可以随时依据新技术对相应模块的软件算法进行更新和扩充,这种设计易于发挥Win98的多任务的特性,提高平台系统实时工作的能力。其中,任务调度管理模块是仿真器平台系统的核心,其他各功能模块的运行都是在管理调度模块的统一管理控制下完成的。它与其他任务的功能模块之间的逻辑调用关系如图2所示。

图2 任务调度管理模块调用关系

在仿真器设计中,除了必要的网卡(和主控机连接)和MBI卡(和目标系统连接)等硬件设备以外,仿真器的各项功能均是通过软件来完成的,因而系统软件设计中采用合理的调度策略,避免操作系统的缺陷,以实现仿真器的功能。

2.2 仿真器调度模块的设计

仿真器对于各类任务采用时间、事件以及数据驱动相结合的调度原则进行控制管理。为了提高系统的实时性和适应性,采用了动态和静态调度策略相结合、任务发生的周期和优先级相结合的调度方式。

在调度框架中集中不同的调度策略。在运行模式下:系统测试工作正常,则对于周期性的实时任务采用静态生成的调度策略;在系统发生故障时,则采用临时的动态调度策略,它根据系统的运行状况,实时加入动态任务,并根据动态任务的级别,决定该任务是立即执行还是按顺序执行。随着故障的排除,取消该任务,系统重新恢复到先前的调度策略。 仿真器根据任务运行占用时间的不同,以不同速率来调度不同模块,满足实时驱动的要求。采用优先级调度和分时调度相结合的方式:优先级调度方式即调度模块对于每一项任务都赋予了严格的优先级,按优先级的次序从高到低执行;分时调度方式是采用时间片轮转的方式来执行各个任务,这种调度方式多是在终止模式下采用(或在运行模式下,系统已经完成短周期的任务,还留有时间余量的情况下)。例如,对于1553B数据驱动和交联数据生成等短周期任务在每25 ms定时到时串行化执行,被赋予了较高优先级,而对于显示和记录数据等长周期任务分时执行或交叉执行,被赋予了较低优先级,以保证能正常驱动MBI卡。

根据上述设计,在实时测试过程中,仿真器的实时调度层次模型如图3所示。

图3 RUN()模式下实时任务调度模型示意图

3 结束语

本文以实时测试某航空软件可靠性为背景,介绍了仿真器在仿真测试平台中的作用。按照模块化和可扩充的设计思想,给出了仿真器功能结构组成;并且着重介绍了仿真器的任务调度管理模块的设计思想,针对具体任务和系统工作模式,提出了集成动态调度策略;对于优先+级的调度方式,采用了优先级浮动的原则。另外,给出了实时网络实现的方法,讨论了图形实时显示的可行性,利用WinDriver实现了在Win98下对硬件MBI卡的直接驱动。实验结果表明,上述调度思想与相关技术综合运用,很好地满足了仿真器系统工作的实时性。



评论


技术专区

关闭