摘 要:介绍了软件可靠性仿真测试平台的功能及组成框架,并以通用性和可扩展性为前提,着重对测试平台中仿真器分系统实时性实现的调度策略和关键技术进行了研究。实验结果表明,这些实现方法具有较高的可靠性、易扩展性和实用性。
关键词:实时技术,软件可靠性,调度策略,实时通信
软件可靠性测试是当前软件技术领域中一个比较热门的话题,软件可靠性对整个系统可靠性的影响越来越大,尤其对于航空类系统软件来说,软件故障往往是导致系统失败的主要原因之一。采用模拟被测目标软件实际运行环境对软件进行测试是目前国内外一致认为比较理想的软件测试方法之一。合理设计目标软件可靠性的运行环境,较为真实地模拟出被测软件的真实运行环境,不但可以检测到目标软件运行过程中存在的故障,而且也可以保证测试结果的真实性和置信度。
本文在介绍软件可靠性仿真测试平台的组成及功能的基础上,以仿真器分系统为例,对平台在实时测试过程中的一些实现技术进行了研究。
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 仿真器分系统实时实现技术 2.2.1 任务调度管理模块 从上面的讨论知道,仿真器的实时性是通过仿真器的任务调度管理模块实现的。任务调度管理模块为仿真器分系统的主控模块,是分系统的全面管理者。该模块根据用户通过仿真器分系统人机接口界面输入的参数、显示过程的控制命令和主控机通过网络传送来的控制命令及参数,对并发执行的实时自检/维护、网络通信、交联仿真数据生成、数据/状态显示、数据记录、交联数据驱动、测试过程分析以及仿真器不同功能模式对应的任务队列进行管理和调度,协调各模块的工作,进行各模块的衔接,实现各线程的管理,完成与目标系统实时交联仿真任务。 2.2.2 仿真器分系统任务划分 由于仿真器分系统是用于目标软件的实时仿真测试,每个任务都必须根据目标软件运行的需要,满足实时交联仿真的定时限制,所以,为保证仿真器的实时性能,根据任务和平台系统工作模式的不同,在调度框架中集中不同的调度策略,任务调度涉及到实时任务和普通分时任务的调度。 按照仿真器所处的运行模式,将其任务划分为实时任务和非实时任务。 实时任务指在仿真测试过程中,仿真器需要在确定时间内完成的任务,包括: .命令控制(包括测试开始、工作模式切换、驱动通信接口、测试结束等); .与被测目标软件之间的实时交联数据驱动任务; .与主控机分系统之间的实时网络通信任务; .交联数据实时生成; .测试数据和测试结果数据的记录和显示; .测试结果数据的初步精度分析和状态逻辑验证。 非实时任务指对于任务完成的时间没有严格约束的任务,包括: .用户通过界面进行的分系统参数和有关配置描述; .分系统初始化及用户指定分系统自检和维护; .测试数据的事后回放; .数据库操作。 为系统任务调度管理的方便,根据任务的属性、等级和处理周期的不同,将实时任务划分为动态任务和静态任务,静态任务又包括长周期任务和短周期任务。 动态任务指动态跟踪系统状态,根据实际运行状况,临时加入的任务,如实时自检任务、系统发生故障时动态加入的异常处理任务等。 长周期任务指可以在多个时间标签内完成的任务,如有必要,这类任务可在时限还没有完成就终止。包括显示任务、记录任务、从数据库或数据文件中读取数据到内存的任务。 短周期任务指对任务完成的时间有严格的限定,必须在一个时间标签内完成的任务,即在25 ms周期内,完成对目标软件的一次驱动,同时接收目标软件的对外输出。包括交联数据的生成、交联数据的1553B驱动、从主控机接收和向主控机发送测试数据信息包、仿真器应答信息包的网络通信任务等周期性的任务。 上述各类任务在其生命周期内一般都包括创建、就绪、挂起、运行、取消和结束六种状态,其状态转换关系如图3所示,由总的任务调度控制器将各任务带入不同的状态。 |
图3 任务状态转换关系示意图 2.2.3 仿真器调度模块的设计 仿真器对于各类任务采用时间、事件以及数据驱动相结合的调度原则进行控制管理。为了提高系统的实时性和适应性,采用了动态和静态调度策略相结合、任务发生的周期和优先级相结合的调度方式。 在调度框架中集中不同的调度策略。在运行模式下:系统测<
文章版权归西部工控xbgk所有,未经许可不得转载。
|