|
知识路径: > 嵌入式系统的项目开发与维护知识 > 嵌入式系统软件测试 > 嵌入式软件测试技术 >
|
相关知识点:32个
|
|
|
|
由于嵌入式软件的特点,决定了嵌入式软件测试比通用软件困难,根本原因在于一般测试技术和测试工具的实施缺乏基本条件。由于嵌入式软件运行环境的特定性及专用外部设备的连接,使嵌入式软件在相应的嵌入式计算机系统未开发完成前不能真正运行,动态测试技术不能应用;嵌入式计算机系统的有限资源和专用接口使运行监测和观察输出变得很困难,嵌入式软件的输入/输出涉及计算机系统专用的端口、外部设备,以及各种不同的信号量形式,如数字量、电压量、电流量、脉冲量、开关量等,各种输入/输出量电气特性也不一样,加上实时性要求输入/输出的时序特性,使嵌入式软件的测试输入和结果获得都很困难。
|
|
|
面临以上嵌入式软件测试的难点,使得嵌入式软件的测试环境相对与一般的应用软件比较特殊。
|
|
|
|
宿主机模拟环境就是采用模拟技术在宿主机上建立嵌入式软件的运行环境,从而使嵌入式软件的运行脱离目标机便于进行测试。目前,宿主机模拟测试环境按其实现的方法可分为两类,一类是基于目标机芯片的模拟测试环境;一类是采用交叉编译的方法将被测软件编译为在宿主机上执行代码的方法。
|
|
|
基于目标机芯片的模拟测试环境通过对处理器(CPU)、存储器、外围可编程芯片以及各器件连接的模拟,构造目标机硬件环境。基于目标机芯片的模拟测试环境如下图所示。
|
|
|
|
|
处理器模拟包括对处理器指令集、寄存器、中断处理机制的模拟;内存模拟包括内存寻址、读、写模拟;外围可编程芯片模拟包括对工作模式、命令字的响应、输入/输出特性、功能特性的模拟;器件间连接模拟包括为这些芯片的数据端口、控制端口设置I/O地址,并决定其间的输入/输出关系。
|
|
|
基于交叉编译的模拟测试环境不用构造嵌入式软件的运行环境,其模拟的重点是模拟被测试程序的输入/输出。首先对被测试程序进行硬件依赖性分析,然后将输入/输出命令用API函数替换,最后采用使用交叉编译的方法将被测软件编译为在宿主机上可运行的执行代码。基于交叉编译的模拟测试环境如下图所示。
|
|
|
|
|
|
交联式测试环境是逼近真实环境的一种运行环境,实际上是对整个系统(而非仅对软件)进行考察的测试。交联式测试环境可以接入若干个研制完成的产品(实物)或设备模拟器。不同的系统,交联式模拟测试环境接入实物的多少不一样,但对软件来说,目标机硬件环境、相应外围设备接口、输入的指令、数据等全都是真实的。交联式模拟测试环境与真实系统有一致的映射关系。例如具有相同的接口,相同的I/O传输格式、方式和速率,相同的时序和相同的工作方式、状态等。交联式模拟测试环境不仅适用于对软件功能的验证,而且可以对软件的外部接口、实时特性进行较真实的验证。交联式测试环境如下图所示。
|
|
|
|
|
交联式模拟测试环境一般包括目标机、模拟器、控制盒和测试输入及测试输出分析设备四个部分。被测试程序在目标机中运行,宿主机运行测试程序及处理测试结果,控制盒连接控制宿主机与目标机之间的总线,模拟器主要模拟一些特殊的信号。
|
|
|
由于嵌入式系统的特殊性,在进行配置项和系统测试时,要求或者在真实目标机中运行,或者在仿真环境下运行时必须说明仿真环境与真实环境的差异,并进行影响分析。而交联式模拟测试环境由于搭建较为方便,运行环境与真实环境一致,是目前嵌入式软件测试环境中使用最多的环境。所以在软件配置项和系统测试阶段,其实也是软件与硬件的集成测试阶段,虽然在进行软件测试,但是软件与硬件的协调性、一致性也进行了验证。
|
|
|
|
即将嵌入式软件完全置于真实的实物环境中进行测试,是系统测试阶段常用的测试环境。
|
|
|