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

发表于:2015-01-04来源:uml.org.cn作者:刘东艳 申功勋点击数: 标签:
软件可靠性测试是当前软件技术领域中一个比较热门的话题,软件可靠性对整个系统可靠性的影响越来越大,尤其对于航空类系统软件来说,软件故障往往是导致系统失败的主要原因之

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

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

  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 任务调度管理模块

原文转自:http://www.uml.org.cn/Test/200903241.asp