(2)综合分析模块:
在得到由采集模块送来的动态信息之后,要与预先经过静态分析得到的结果进行对照分析,对不符合静态条件下的结果地方予以给予标注并给出适当的调整建议。其分析对照流程如图5所示。
图5 综合分析流程
综合分析实现程序块为:
4、测试应用
我们将上述设计的测试工具和方法对一段程序进行了实验验证,具体被测程序如下(8086汇编指令, 此处机器码为X=12时的):在这个程序段中包含了两个条件分支和两个无条件分支语句,根据输入的数据X的值决定在哪儿进行条件转移,经过静态分析可以得出以下分析结果:
当X=12时,程序的语句执行序列是: 1,2,3,4,5,6,7,10,11,12,13
当X=-3时, 程序的语句执行序列是: 1,2,3,4,9,10,11,12,13
当X=0时, 程序的语句执行序列是: 1,2,3,4,5,10,11,12,13
当这段程序在目标机上运行时,我们得到的语句执行序列及消耗时间和语句地址记录为:
从上面的三种结果表中可以很清楚的看到,程序的执行结果与静态分析结果一致,并且指令执行序列、执行时间与静态分析结果完全相符,因此,可以得出一个结论:该程序满足设计要求。
但是从运行的结果看,无论所取数据是什么,语句8始终没有遍历到,所以可以得出这样一个结论:语句8为不可达指令,可以从源程序中将之删除,并不影响程序的正确性。
5、结论
我们设计的这种测试方案是介于干涉性与非干涉性测试手段之间的一种调和方法,数据的采集过程类似于一个软性的逻辑分析仪,对目标程序的运行过程不产生任何干涉性的影响,进而实现了目标软件的全实时运行,可以说这是一种测试手段和方法的新尝试。
这套测试方案的最明显的优点是不需要考虑源程序中是否含有不可达指令,只关心执行语句的序列,采样分析的过程相对比较简单,这种方法属于一种框架结构,比较适合更大范围的推广应用。
但是本方案也有其明显的不足和缺陷:第一,由于本方案的采集电路部分采用的是8255A并行接口芯片,工作频率相对比较低,在进行信号采集的过程中,明显感觉到实时效果不够好,如果能够将信号采集部分应用采样速度比较好的接口电路,则本方案的测试效果会得到明显改善;第二,本方案只是对被测软件的执行情况进行了跟踪和记录,并没有涉及到对程序的功能测试,因此在对此方案进行改进时可以考虑在综合分析模块中加入功能性分析的部分。到目前为止,本方案只是实现了一种测试工作,还有很多功能亟待扩充和完善。
嵌入式软件的测试方法与手段是随着应用的发展而发展,到目前为止,航天飞行器中,特别是导弹上使用的嵌入式软件的测试仍然是一个没有彻底解决好的难点,如何利用多种多样的测试方法和手段开发出一种更具有普遍意义的测试方法是我们国家军用软件行业需要努力奋斗的一个方向。
参考文献
[1] 宋文,于林宇,刘军. 通用嵌入式软件测试环境在武器装备软件测试中的应用[J]. 测控技术,2005,24(10).
[2] 唐科,汪文勇,刘利枚. 嵌入式软件覆盖测试的研究[J]. 成都信息工程学院学报, 2005 年,20(5).
[3] 张炯,金惠华,尚利宏等. 一种嵌入式系统软件的非干涉测试方法[J]. 北京航空航天大学学报,2004,7,30(7).
[4] 杨彦明,张炯,金惠华.软件动态测试的一种新方法[J]. 微计算机应用,2003, 24(4).
文章来源于领测软件测试网 https://www.ltesting.net/