导航菜单

嵌入式软件测试环境研究

于慧媛 张海军 王敏帅

(中国人民解放军91413部队,河北 秦皇岛 066001)

【摘 要】目前,嵌入式软件测试非常困难,搭建恰当的测试环境是顺利进行嵌入式软件测试的必要条件之一。在分析嵌入式软件特点、测试环境特点和分类的基础上,研究了在不同测试阶段嵌入式软件测试环境的搭建方法。

教育期刊网 http://www.jyqkw.com
关键词 嵌入式软件;仿真;测试环境

0 前言

嵌入式系统一般是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,满足于系统对功能、可靠性、成本、体积、功耗等要求的专用计算机系统。嵌入式系统因其体积小、可靠性高、功能强、灵活方便等许多优点,广泛应用到日常生活的各个领域。尤其在大型设备中,嵌入式系统属意于核心部件,起着主要逻辑控制和大规模数据计算的作用。随着硬件的可靠性逐步提高,大型设备的质量问题多数是嵌入式软件的质量问题,其风险指数也比较高。因此嵌入式软件的质量问题是关系到大型设备可靠性的重要一环。

1 嵌入式软件的特点

嵌入式系统的应用软件是实现嵌入式系统功能的关键,其主要特点如下:

1.1 软件开发环境和运行环境不同

嵌入式系统软件的开发通常采用交叉编译方式,即软件的开发在通用计算机上进行,而软件的运行环境却是在嵌入式专用设备上。开发环境被认为是主机平台,运行环境为目标平台,相应的测试被称为主机测试和交叉测试。

1.2 缺乏可视性

嵌入式软件缺乏可视性主要表现在两个方面:(1)数据的可视性方面:嵌入式系统通常没有显示设备和存储设备,只有在线实时观测或是将数据传输到主机上才能进行结果分析;(2)编程的可视性方面:由于嵌入式软件的开发环境和运行环境不同,在进行开发时,一方面不能实时观察程序的运行效果,另一方面程序在仿真环境和目标设备中的运行效果可能存在差异。

1.3 实时性要求较高

多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每项任务及时执行的关键,单纯通过提高处理器速度是无法完成和提高效率的,这种任务调度只能由优化编写的系统软件来完成,因此实时性是系统软件的基本要求。

1.4 软硬件紧密结合

在嵌入式系统软硬件体系结构内部,各层次、模块之间的耦合度比通用计算机更强,这是嵌入式系统要求高效的结果,而通用计算机出于可扩展等要求更强调系统的模块化、层次化和标准化。

2 嵌入式软件仿真测试环境

嵌入式软件测试不同于传统的通用软件测试,由于其嵌入性、实时性、反应性、专用性等特点,它比一般的通用软件测试更加困难。因此,根据不同测试阶段的需求,建立恰当的测试环境是避免嵌入式软件测试瓶颈、提高测试效率、保证测试质量的唯一出路。

由于嵌入式系统通常采用软硬件并行开发的方式,在进行软件设计与测试时,真实目标设备常常不能及时提供,而且对于单片机、DSP这些深嵌入式系统来说,数据的显示采集、测试用例输入等都需要专门的软件来实现,因此在进行嵌入式软件测试前,必须首先建立嵌入式软件仿真测试环境。

嵌入式软件是软硬件耦合系统,把软硬件分离开来,建立嵌入式软件独立的运行环境是建立嵌入式软件仿真测试环境的关键。一个完整的嵌入式系统包括处理器、I/O接口以及各种外部设备,在建立嵌入式软件仿真测试环境时,需要考虑软硬件的分离原则,即哪些采用真实硬件设备,哪些需要用软件仿真实现,哪些需要用硬件仿真实现,不同的嵌入式系统以及软件测试阶段,需要建立的仿真测试环境也不相同。

3 嵌入式软件仿真测试环境分类

根据运行环境和实际环境的差异,嵌入式软件仿真测试环境可分为全数字仿真测试环境、半物理仿真测试环境和全物理仿真测试环境。

3.1 全数字仿真测试环境

全数字仿真测试环境是指仿真嵌入式系统硬件及外围环境的一套软件系统。全数字仿真环境是通过CPU、控制芯片、I/O、中断、时钟等仿真器的组合在宿主机上构造嵌入式软件运行所必需的硬件环境,为嵌入式软件的运行提供一个精确的数字化硬件环境模型。

3.2 半实物仿真测试环境

半实物仿真测试环境是利用仿真模型来仿真被测系统的外围系统,而被测系统采用真实的系统。测试环境模拟被测软件运行所需的真实环境的输入和输出,并且能够组织被测软件的输入来驱动被测软件运行,同时接收被测软件的输出结果。

外部仿真设备:为目标机提供激励信号输入,接收并处理目标机输出数据,保证软件的连续、不间断运行,实现自动化测试;可以采用软件仿真或硬件仿真(ADS2等)。并不是所有的外设都采用仿真实现,可以随着项目的进展以及根据外设的复杂性,有选择性的加入真实外部设备。

3.3 全实物仿真测试环境

在全实物仿真测试环境中,被测软件处在完全真实的运行环境中,直接将整个系统和其外围的物理设备建立真实的连接,形成闭环进行测试。全物理仿真测试环境是基于真实目标机的系统测试,是对整个嵌入式系统软硬件的综合测试,只有在系统研制的后期,所有硬件研制工作都已完成后才能进行。

4 嵌入式软件仿真测试环境的构建方法

根据嵌入式软件及测试环境的特点,不同测试阶段的测试环境搭建方法如下:

4.1 单元测试

单元测试是针对软件设计最小单位模块而进行的内部测试。由于目标机环境资源少、实现难度大,因此嵌入式软件的单元测试主要采用白盒测试的方法,一般在宿主机上,利用集成开发环境或测试工具(Clockwork、TestBed、Cantata++等)的全数字仿真模拟器来进行,找出单元编码时产生的错误以及与软件需求设计的偏差。在极特殊情况下,也可以在目标机上进行,利用单元测试中的驱动模块和桩模块进行。

4.2 集成测试

集成测试是把经过单元测试的模块按软件的结构组合在一起作为一个软件部件或部件集来进行的综合测试。嵌入式软件的集成测试可在宿主机环境上利用Clockwork、TestBed、Cantata++等测试工具来完成,也可在目标机上搭建仿真测试环境来完成,具体依赖于软硬件耦合程度和集成级别。

4.3 软硬件集成测试

软硬件集成测试主要是在软件集成测试完成后,形成独立的配置项,加载到相应的硬件平台上测试其运行情况,以确定软硬件能够正确协调工作,实现软件需求规定的功能、性能等要求。软硬件集成测试必须在目标机环境下进行,交联设备可以采用仿真模型替代。可以利用半实物仿真测试工具搭建测试环境来进行确认测试,比如:ADS-2、dSPACE等。

4.4 系统测试

系统测试是将被测软件和硬件资源都综合起来构成完整的应用系统进行测试,确保整个系统达到研制任务书的要求。嵌入式软件的系统测试对测试环境有严格的要求,必须在真实目标机环境下进行,包括运行平台、交联设备都要是真实的,目的是要确保嵌入式软件能够在最终的真实硬件环境下正确运行。

5 结束语

嵌入式系统在人类生活中发挥着重要的作用,软件所占的比重越来越大,也越来越复杂,保证嵌入式软件的可靠性正面临严峻的挑战。由于嵌入式系统的实时性和嵌入式特性,使得嵌入式软件的测试也面临一些特殊的问题。根据嵌入式软件设计过程中不同阶段的测试需求,建立合适的测试环境,才能提高嵌入式软件的测试效率,保证软件设计工作的顺利进行。另外,虽然日前已经有一些针对嵌入式软件的测试和调试工具,但是在有些方面仍存在不足,需要进一步对嵌入式软件的测试环境和测试技术进行研究,完善和研制更先进的测试工具。

教育期刊网 http://www.jyqkw.com
参考文献

[1]康一梅,等.嵌入式软件测试[M].机械工业出版社,2008,6.

[2]孙昌爱,等.实时嵌入式软件的测试技术[J].小型微型计算机系统,2000,9(9).

[责任编辑:邓丽丽]

下载文本