基于DDS的机载嵌入式软件仿真自测试方法

2022-11-29 12:31邹小花
计算机仿真 2022年10期
关键词:嵌入式软件软件测试测试方法

邹小花,王 渊

(1. 南昌航空大学科技学院,江西 九江 332020;2. 江西师范大学软件学院,江西 南昌 330022)

1 引言

嵌入式软件的质量和开发周期对产品质量和上市时间起着决定性的作用。然而,与一般商用软件相比,所谓嵌入式软件是嵌入式计算机系统的简称。它是将微处理器系统和软件安装到硬件框架中,从而实现系统运行和运行成本的优化,是一个比较复杂的测试过程,其输入、输出通道少[1-2],开发工具昂贵,对此,文献[3]研究了针对多处理器嵌入式软件的全数字仿真测试平台开发技术,准确同步每个核的运行时间,摆脱了半实物环境的制约,提高了测试有效性,缩短了测试周期。文献[4]针对嵌入式机载软件设计中存在的典型缺陷问题,采用随机Petri网对嵌入式机载软件给出典型缺陷的检测策略和判定准则,以提高嵌入式机载软件设计的可靠性,进而给出了软件设计的运行流程的仿真验证算法,对嵌入式机载软件系统行为建模。文献[5]测试了多种异构IP核和大量的同构IP核,提供了丰富的IP核测试控制以及观测模式,具有较高的测试自动化程度,完成各种数字IP核测试电路设计以及集成,简化了数字IP核的测试集成和复用过程。

随着近年来使用范围的不断扩大,对其检测的要求也在不断提高。本文分析了现有测试方法的不足,采用DDS芯片搭建了软件仿真测试平台,设计了基于DDS的机载嵌入式软件仿真自测试方法,实现了嵌入式软件的深入研究,争取为软件提供更好的测试数据获取模式。

2 机载嵌入式软件仿真自测试方法设计

在此次研究中,根据目前机载嵌入式软件仿真自测试方法的应用效果综合文献分析结果[6-8],使用DDS芯片作为蓝本,设计新型的自测试方法。具体测试方法流程如图1所示。

图1 机载嵌入式软件仿真自测试方法设计流程

本研究涉及到部分硬件选型和装配内容。因此,有必要研究软件仿真测试平台的装配效果,以实现高精度的嵌入式软件测试,保证系统的使用效果。

2.1 构建仿真测试平台

在此次设计中,将使用DDS芯片作为软件的仿真测试环境,根据软件的测定要求,将USB接口板设计如图2所示。

图2 仿真测试平台硬件结构

根据上述平台硬件结构设定结果,选择ARM处理器与FPGA等组成的核心板和通用接口板,以及外围显示电路等。在此次研究中,选择S3C44BOX芯片以及FPGA-EP2C8为核心芯片,在芯片外侧安装电流反应放大器以及滤波电路以此组成仿真测试平台的核心处理设备。

根据上述硬件结构,设置合适的可编程DDS函数发生器,实现软件仿真自测试。在这部分的设计中,将对ARM、ADS集成开发环境进行设计。选择ADS编译器开发软件测试环境。利用ARMS3C44BOX程序读取机载软件的内部信息,并对其进行分析处理。测试数据测试平台采用DDS函数发生器模块实现不同测试数据的传输。此部分初始环节的部分关键代码如下所示。

void Isr Init(void)

{

Unit i;

for(i=-RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+Ox20);i+=4)

{

*((volatile unsigned *)i)=OxEA000000+Ox1FFE;

}

rINTCON=0x5;

rINTMOD=0x0;//初始软件测定

根据以上程序对DDS测试平台中的测试软件进行控制,并将此作为软件自动测试的基础。

2.2 选择软件测试模式

根据机载嵌入式软件的需求,利用搭建的DDS测试平台,选择动态测试模式作为软件测试模式。同时,将测试平台设置为全数字仿真测试环境,软件应用所需的硬件和软件由测试凭证和软件环境组成,为软件测试提供了更加精确的数字化环境。使用主机/目标软件在被测软件中插入相应的功能和语句,并利用这些功能和语句完成数据生成过程并将数据传输到目标系统。在预测软件中,完成相应的预处理任务,并将处理后的数据传送到平台显示装置。将软件测试过程进行总结。

本研究采用的测试模型为V模型,该模型可以用来测试软件中的代码,同时,该模型具有一定的时效性,测试过程也相对成熟,经测试后可得到具有代表性的结果。将该测试模型应用于机载软件测试,可以更好地控制软件开发的顺序和过程,但这种测试模式也存在一些问题,如测试内容单一。为了弥补该模型在实际应用中的不足,对V模型进行了优化,并用W检验模型代替[9-11],具体内容如图3所示。

图3 W模型示意图

由图3可知,该模型的使用伴随着周期性的测试过程,不仅针对软件的代码部分,还针对软件的使用需求、设计和阶段性能进行测试。利用该模型,可以对软件结构和功能问题进行更全面的研究,降低软件仿真测试的成本,保证软件的质量。

2.3 软件测试结果分析环节设定

根据以上设置内容,可以更好地完成软件仿真自测试过程。为了对机载软件有更深入的了解,采用聚类分析技术对软件测试结果进行聚类分析,以分析软件使用中存在的问题,进行有针对性的优化。

本研究根据聚类系数f对测试结果进行分析[12],将所有测试结果视为一个数据组,通过每个数据点的紧度来完成测试结果的聚类分析,具体计算过程如下所示

(1)

式中,|ea|表示测试结果a的所有数据节点之间的边的总和,da表示测试结果a的度。

为了提升处理结果的精度,通过等距划分方法对自测试数据的连续属性A进行离散化处理,其中决策表能够表示为

S=(U,A,V,f)

(2)

1)设定U代表研究对象的非空有限集合,将其称为论域;R代表建立在U上的一个等级关系,将其称为二元有序组,即近似空间

S=(U,R)

(3)

2)设定P和S为U中的等价关系,S的P正域能够表示为

POSP(S)=∪P(S)

(4)

设定R为一个等价关系在,则有

IND(R)=IND(R-{P})

(5)

3)设定K={U,R}代表一个测试数据库,则有

(6)

4)设定S=(U,A,V,f)代表一个测试信息条件集,设定论域U中元素的数量,即

|U|=n

(7)

将第i行第j列中的元素设定为

mij={a∈A:f(xi,a)}≠f(xj,a),i,j=1,2,…,n

(8)

式中,mij代表能够区分对象xi和xj的全部属性集合。

一般情况下,每个规范都可以替换整个属性条件,并且不会更改原始的依赖关系。因此,有必要确定一个具有最小可能属性的自规范集或最小属性集,对此,采用局部聚类系数LCC对测试结果进行处理,局部数据团的边权重da的几何均值可表示为

(9)

(10)

根据以上公式可得到测试结果的中心性数据,部分测试结果与多个测试结果具有直接的联系,由此得到测试结果的度中心性,具体计算过程如下

(11)

式中,n-1表示测试结果a的可能连接最大节点数,n表示测试结果的数量。利用上述公式得到测试结果的聚类中心值,完成测试结果的聚类过程。

根据聚类结果对测试结果进行分类和分析,完成了软件的仿真自测试过程。至此,完成了基于DDS的机载嵌入式软件仿真自测试方法的设计。

3 实验论证分析

3.1 实验环境设定

在上文中,完成了基于DDS的机载嵌入式软件仿真自测试方法的设计过程,在此次研究中将针对设计自测试方法与文献[3]、文献[4]、文献[5]方法进行对比研究,以此确定文中设计测试方法的使用效果。

在此次实验中,使用Python作为实验环节脚本语言,应用Python3.3.2版本编程软件对APK文件进行逆向分解,提取软件中的有效信息,并以此作为实验中的数据基础。为了使嵌入式软件具有一定的应用环境,将实验平台技术参数设定如下。

表1 实验平台技术参数

应用上述实验平台参数,完成实验环境设置,并将此平台作为实验的实施平台,完成实验对比过程。

3.2 实验方案设定

在此研究中,选择某软件库作为实验对象,在此实验库中具有1800个软件样本。同时,从网上下载1200个常用机载软件,其中存在120异常软件,组成软件样本库,样本中随机抽取5组数据参数实验,在被测软件中插入相应的功能和语句,共10条,测试其漏检率。使用文中设计的仿真自测试方法与目前使用中的仿真自测试方法(文献[3]、文献[4] 、文献[5]方法)对软件库中的软件进行测定。

将软件库中的软件每300个为一组(内含20个异常软件),为了将实验结果量化体现,设定实验对照指标如下:设定TP表示软件检测结果准确数量,FP表示样本检测结果异常数量,TN表示测试条件检测结果准确数量,FN表示问题样本检测结果异常数量。则有

(12)

(13)

(14)

在上述公式中,式(12)表示可用软件在测定软件中的占比,式(13)表示测试条件的漏检率,式(14)表示全部软件的测试精度。在此次实验中,将实验结果通过上述部分进行量化处理。

3.3 可测试软件个数实验结果分析

由表2可知,文中设计方法可对多占用软件进行自测试,其可测定的软件个数较佳,且可测试软件占比较高,由此可初步判定文中设计方法的使用效果最佳。相较于文中设计方法,目前使用中的测试方法可测定软件个数降低,且在不同的组别中,可测试软件个数波动较大,存在部分不可测现象(用“-”标记),可测试软件占比较低。由此可见,其它两种方法的适配性较低,文中设计方法的适配性较高,其基础性能优于目前使用中的测试方法。

表2 可测试软件个数实验结果

3.4 测试条件漏检率实验结果分析

由表3可知,文中设计方法对于异常软件的测定能力较高,功能和语句等相关类型的测试条件捕捉能力较强,可有效获取到实验组中的异常软件。与文中设计方法对比可知,文献[3]方法与文献[4]方法的使用效果较差,在不同实验组别的应用中,文献[5]方法的使用效果与理想效果相差最大。在实际应用过程中,对软件测试条件的检测能力直接影响到嵌入式软件的使用效果和机载系统的稳定性。根据这一理论,本文的设计方法比原设计方法的效果要好。

表3 测试条件漏检率实验结果

3.5 全部软件测试精度实验结果分析

由表4可知,对大量数据进行整合后可以看出,文中设计方法的使用效果优于目前使用中方法。在多次实验中,文中设计方法的测试精度维持在98.5%左右,符合软件自测试的要求。文献[3]方法、文献[4]方法和文献[5]方法的测试精度较低,远不及文中设计方法的使用效果。

4 结束语

1)深入研究了DDS芯片在嵌入式系统中的应用过程,并使用此芯片构建软件仿真测试平台,为了提升处理结果的精度,通过等距划分方法对自测试数据的连续属性进行离散化处理,具有一定的先进性与优越性。

2)将可测试软件个数实验结果、测试条件漏检率实验结果以及全部软件测试精度实验结果综合分析可以看出,文中设计方法的测试精度维持在98.5%左右,漏检率为0,使用效果与测试能力较高,可降低测试成本。

表4 全部软件测试精度实验结果

猜你喜欢
嵌入式软件软件测试测试方法
软件测试方向人才培养“1+X”融合研究
基于OBE的软件测试课程教学改革探索
无线电发射设备杂散发射的测试方法探讨
航天软件测试模型构建与应用
嵌入式软件测试数据传输稳定性检测方式分析
基于安全性分析的嵌入式软件测试
基于云计算的软件自动化测试方法
DLD-100C型雷达测试方法和应用
EXCEL和VBA实现软件测试记录管理
一种基于CAN总线的误码测试方法