APP下载

嵌入式软件测试数据输入和获取的方法

2018-05-14张海军

科技风 2018年28期

张海军

摘 要:测试数据输入和获取是嵌入式软件测试的关键技术。首先分析了在进行嵌入式软件测试时,导致数据输入和获取困难的几点原因,然后根据多年的测试经验,对嵌入式软件测试数据输入和获取的多种手段和方式进行了介绍,最后说明了在进行嵌入式软件测试数据输入和获取时的注意事项。

关键词:嵌入式软件测试;数据输入;数据获取

在进行嵌入式软件测试时,会遇到多种困难,其中之一便是如何输入和获取数据。在最终使用环境中进行测试时,嵌入式系统通常没有或只有简单的显示设备,也没有存储设备,不能保存计算结果,只有在线实时观测或是将数据传输到宿主机上才能进行结果分析,这样一来,如何建立宿主机与目标机之间的物理逻辑连接,以便能注入测试数据,并能在正确的时间采集到正确的结果数据以恰当地发现问题,就成为了主要挑战。

一、嵌入式软件测试数据输入和获取困难的原因

(一)硬件嵌入性

嵌入式软件一般运行在各种嵌入式系统中,而这些系统通常仅能完成特殊的任务,系统硬件专门设计,嵌入式软件离开了这些硬件就无法运行。另外,嵌入式系统在运行过程中往往需要与多个交联设备进行数据交互。因此,嵌入式软件只有在最终实际运行环境中,才能完整、深入考核其各项功能和性能指标。

(二)数据缺乏“可视性”

嵌入式系统往往不像商业计算机那样具有键盘、显示屏、磁盘机和其他各种有效的用户界面和存储设备。由于嵌入式系统通常是面向某个特定应用的,所以嵌入式系统的硬件和软件在设计时,要充分考虑系统的尺寸、功耗等要求,因此往往会省略掉显示屏、接口等不必要的设备。

(三)实时性

嵌入式系统广泛应用于生产过程控制、数据采集、传输通信等场合,实时性是对嵌入式系统的普遍要求,是设计者和用户重点考虑的一个重要指标。而实时性强,软件运行会产生大量数据,这给其测试带来了很大的困难。

二、嵌入式软件测试数据输入和获取的主要手段

嵌入式软件测试数据输入和获取的手段包括:外接键盘显示器、在线辅助设备、I/O接口、边界扫描、总线监听、在线仿真器ICE等。

(1)外接键盘显示器:嵌入式Linux、VxWorks等嵌入式平台下的软件,通常系统硬件留有接口,可以直接外接键盘、显示器等,这样在特定的调试状态下,就可以直接输入数据和获取到软件运行过程中产生的状态和数据。

(2)在线辅助设备:通过嵌入式系统的其他在线辅助设备,比如:数码管、指示灯以及交联设备的显示装置等,也可以间接获取嵌入式软件的运行状态和数据。

(3)I/O接口:通过直接连接标准的网口、串口等I/O接口,配合相应的软件工具,比如:EtherpeekNX、串口调试助手等,可以实现输入数据和获取结果。

(4)边界扫描:边界扫描测试是通过在芯片的每个I/O脚附加一个边界扫描单元以及一些附加的测试控制逻辑实现的。现在,所有复杂的IC芯片(比如:DSP、FPGA等)几乎都具有边界扫描端口(即JTAG控制接口)。边界扫描测试有两大优点:一个是方便芯片的故障定位,另一个是通过边界扫描通道来使芯片处于某个特定的功能模式。测试时,工具软件通常是各个处理器的开发环境,通过JTAG仿真器连接至嵌入式硬件,可以实现实时数据的输入及获取。

(5)总线监听:是一种监测被测系统总线数据流的手段,具有实时性强、支持多通道、显示方式多樣等特点。CodeTEST、RTInsight、ADS2等测试工具以及逻辑分析仪、示波器等硬件工具都能实现总线监听。总线监听的连线方式,分为标准探头和飞线两种。

(6)在线仿真器ICE:用来模拟嵌入式系统中的中央处理器,它通过一个插头插在一个与CPU一样的底座上。在线仿真器提供了一面通向嵌入式系统内部的窗户,程序员用在线仿真器将程序下载到系统运行后,可以对程序进行逐步跟踪并察看数据的变化。

三、嵌入式软件测试数据输入和获取的注意事项

在进行嵌入式软件测试数据输入和获取时需要注意以下几个方面:

(1)在进行硬件连接时,不能影响到嵌入式软件的运行状态,有必要时要进行检查和确认,否则可能会使软件运行不稳定甚至改变软件运行状态。

(2)对于实时性非常强、数据量大的嵌入式软件,在选择数据获取的方式时,必须要检查数据的完整性和正确性。否则,有可能出现获取到的数据不完整甚至是错误的,影响软件测试的质量。

(3)在选择工具软件和硬件时,要考虑其可靠性和正确性,尽量选取公开发行的稳定版。

(4)嵌入式系统一般比较复杂,采取的任何数据输入和获取方式,一定要实现研制方或开发方进行交流和确认,避免由于自身不熟悉和疏忽导致测试中出现问题。

四、结语

嵌入式软件测试数据输入和获取是嵌入式软件测试的关键技术,其准确性、实时性和可靠性对测试质量有决定性影响。由于嵌入式系统平台的多样性和复杂性,因此在进行嵌入式软件测试时,需要根据被测软件的特点和测试要求,对数据输入和获取方法进行定制设计,灵活采用多种方式,可以极大提高测试质量和效率。

参考文献:

[1]葛德明.实时嵌入式软件的测试技术[J].电子测试,2018(10).

[2]孙昌爱,靳若明,刘超,金茂忠.实时嵌入式软件的测试技术[J].小型微型计算机系统,2000(09).

[3]郑人杰.计算机软件测试技术[M].清华大学出版社,1992.