嵌入式武控计算机软件测试关键技术
摘 要
本文首先分析了嵌入式武控计算机软件测试的概念以及环境要求,以此为前提,建立了相应的软件测试仿真平台,并通过静态测试、内存泄漏测试和逻辑覆盖率测试,全面阐述了嵌入式武控计算机软件测试关键技术。
【关键词】嵌入式 武控计算机 软件测试 关键技术
武控计算机主要被应用于导弹武器系统的核心控制部门,其功能在于实现对导弹发生的精确度进行控制,对嵌入式武控计算机实现软件测试,是保证其性能以及使用可靠性的主要手段,因此,对其关键技术进行研究很有必要。
1 嵌入式武控计算机软件测试
嵌入式武控计算机软件测试指的是采用人工方法或自动化的手段,实现对计算机软件的测试,并根据对测试过程以及结果的观察,发现软件中存在的漏洞,在对其加以完善的基础上,提高软件运行整体可靠性的一种手段。
总的来说,嵌入式武控计算机软件测试存在三种测试环境可供选择:
(1)全仿真模拟测试环境;
(2)半实装仿真测试环境;
(3)全实装仿真测试环境。
三种环境各有其优势,但同样也都存在一定的弱点和缺陷。本文在对比三种测试环境的优缺点的基础上,选择了半实装仿真测试环境作为了主要平台。
2 嵌入式武控计算机软件测试平台的建立
嵌入式武控计算机软件测试平台以半实装仿真测试为主,硬件采用军用加固计算机,以Compact PCI为总线,支持双网切换。平台功能包括建设武控计算机软件与执行组合模拟器软件的网络通信环境,在实现模拟作战的基础上,观察作战效果,并觀察软件性能的发挥情况,及时发现问题并解决问题。平台由被测试软件运行环境、外围通讯设备以及运行监视环境三部分构成。在正式开始测试之前,对平台进行了校验与测试,将其性能指标以及参数调整到了合理范围内,并逐一对其功能进行了测试,各方面功能均通过测试,认为可将上述测试平台应用于武控计算机软件的测试过程中。
3 嵌入式武控计算机软件测试关键技术
嵌入式武控计算机软件测试包括静态测试、内存泄漏测试以及逻辑覆盖率测试三种,每一测试过程均需要采用不同的关键技术。具体如下:
3.1 静态测试
静态测试的目的在于对武控计算机软件在非运行状态下的数据结构等进行测试,判断其是否符合技术标准的要求,是否能够达到为软件提供良好的运行环境的目的。相对于动态测试而言,静态测试的效率更高,且容易发现软件中存在的编码错误等的漏洞,将其运用于武控计算机软件的测试过程很有必要。除此之外,静态测试对于自动测试的依赖性不高,采用人工的方法,同样能够完成测试,且效果更好。
静态测试关键技术如下:
3.1.1 编码规则检查
应重点针对标识符以及指针等进行检查,针对前者而言,要保证其数量,必须在5个字符以上,在31个字符以下。而针对后者而言,则需要保证其以p开头。
3.1.2 控制流分析
控制流分析过程中需要注意的而是,必须保证Switch语句之中存在sefault分支,与此同时,保证Return 语句之后没有代码。
3.1.3 数据流分析
数据流分析的主要功能在于控制指针,必须保证其处于初始化的状态。
3.1.4 软件度量元分析
包括注释度量(Comments frequency)、局部变量(Number of local variables)以及扇出数(Number of direct calls)等。
3.2 内存泄漏测试
内存泄漏测试指的是程序在内在堆中动态分配了一块内存空间,但在使用完成之后,出于种种原因,导致内存出现了泄漏问题,即无法释放等,这一现象便称为内存泄漏,不仅容易导致对内存片段控制权的丧失,同时也容易导致软件空间被浪费。内存泄漏测试的功能,便在于有效的避免上述问题的发生。
内存泄漏测试的关键技术包括内存泄漏分析与内存泄漏监视。其中,内存泄漏分析的目的主要在于找出导致内存泄漏的原因,并根据原因,提出具体的解决策略。内存泄漏监视的过程较为复杂,需要通过对被测试程序进行插桩来完成。插桩过程中应注意其内容以及位置的问题。要保证其所写入的代码的合理性,同时,保证其所写入的代码,位置能够较为合理。需要注意的是,内存泄漏监视需要通过对相应算法的应用来实现。
以循环定时扫描中断服务程序为例。首先要获取定时扫描中,中断服务程序的信号量,在此基础上,对其信号量获取的时间进行判断,如未在限定时间内获取,则需要重新开始,如符合这一要求,则可以判断当游标指向的节点上挂接内存泄漏控制是否大于0,如是,需要继续处理内存空间,如否,则可以结束整个测试过程。
3.3 逻辑覆盖率测试
逻辑覆盖率测试的功能在于最大程度的发现软件逻辑中存在的问题,具体测试准则包括语句覆盖率测试与分支覆盖率测试两种,前者的功能在于以语句为基础,实现测试,每个语句都需要被测试,次数至少为1。后者的功能在于通过判断分支的真假,实现对软件逻辑覆盖效果的判断。具体测试次数同样至少为1。
在逻辑覆盖率测试过程中,对测试工具的选择较为重要,以自动化测试为例,其工具可以选择为Macabe 、TestBed软插桩来实现测试过程。在测试进行中,对插桩策略的选择也较为重要,这一点同样需要被重视。
4 结论
嵌入式武控计算机软件测试的意义在于发现计算机软件中存在的问题,在此基础上,对软件的漏洞进行优化调整,达到提高软件运行可靠性的目的,进而为我国军事领域导弹武器发生整体准确度的提高提供保障,这对于我国军事领域的长远发展具有重要的促进作用,同时也是我国综合国力增强的重要途径。
参考文献
[1]杨洋,唐超.嵌入式武控计算机软件测试关键技术的应用[J].科技与创新,2016(20):160.
[2]周凌云.嵌入式武控计算机软件测试关键技术的研究分析[J].科技展望,2015(04):136.
[3]平婕,秦军,康建华,安元伟.嵌入式软件测试关键技术研究[J].有线电视技术,2010(08):45-47+50.
[4]林永峰,陈亮.面向安全性分析的嵌入式软件测试方法研究[J].现代电子技术,2016(13):80-83.
作者单位
1.山西农业大学信息学院信息工程系 山西省太谷县 030800
2.军械工程学院训练部 河北省石家庄市 050003