3.3 纯软件方式
纯软件方式基于虚拟软件测试环境,用软件方法对嵌入式系统中的硬件环境进行描述,构造出一个可以支持嵌入式软件运行的虚拟平台,然后在该虚拟平台上利用插桩技术获取测试数据,配合以相应的软件动态测试手段,来完成对嵌入式软件的测试。这种测试环境是通过开发处理器、存储器、常用外围芯片、I/O、中断、时钟等模拟器软件,在宿主机上构造被测软件运行所必须的硬件运行环境,实现软件的测试[3]。纯软件方式的插桩实现过程如图3所示。
图3 纯软件方式的插桩实现过程
4边界扫描技术
边界扫描技术是一种对在芯片内部设置扫描寄存器,以改变和记录程序运行状态的非侵入式的嵌入式测试技术。20 世纪80 年代联合测试行动组JTAG(Joint Test Action Group)开发了IEEE1149.1-1990边界扫描测试技术标准[5]。此边界扫描测试(BST)结构提供了有效地测试引线间隔致密的电路板上零部件的能力,支持板级和芯片级的测试。通过这个标准,可对具有JTAG口芯片的硬件电路进行边界扫描、数据获取和故障检测[2]。通过TI公司提供的JTAG仿真器,可以方便的通过边界扫描的方式,获取测试数据并完成测试。JTAG口的引脚定义如下:
TCK——测试时钟输入;
TDI——测试数据输入,数据通过TDI输入TTAG口,在TCK的上升沿取样,具有内部上拉;
TDO——测试数据输出,数据通过TDO从JTAG口输出,三态,TCK下降沿时改变并被驱动输出;
TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式,在TCK的上升沿取样,具有内部上拉;
可选引脚TRST——测试复位,输入引脚,低电平有效。
JT AG接口的典型电路原理图如图4所示。
图4 JT AG接口的典型电路原理图
利用JTAG接口的虚拟在线调试技术,可以通过JTAG仿真器将芯片运行过程中部分的内部信息传送到计算机进行分析。数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元(BSC),由所有边界扫描单元构成边界扫描寄存器(BSR)。当进行测试或在系统编程而激活设备的扫描逻辑时,数据可以传送到IC中的输入引脚,并且可以使用串行接口从IC中读取输出引脚状态,进而实现对芯片输入/输出信号的观察与控制。对于芯片的输入引脚,可以通过与之相连的边界扫描寄存器单元把信号(数据)加载到该引脚中去;对于芯片的输出引脚,也可以通过预置相连的边界扫描寄存器“捕获”该引脚上的输出信号。边界信号对芯片来说是透明的,正常的运行不会受到任何影响。在宿主机安装一个JTAG调试软件,就可以生成和获取测试数据,进而对嵌入式软件进行测试。
5虚拟仿真技术
虚拟仿真技术,与纯软件方式的插桩技术相似,基于嵌入式系统硬件环境构造出相应的软件仿真平台,包括基于虚拟部件库构建的虚拟运行平台、目标文件的静态分析和加载、测试用例的编辑管理、测试用例的监测和加载、测试信息采集记录、测试数据获取等几个部分,是一种不对代码进行插桩而通过虚拟测试设备获取测试数据的一种非侵入式软件测试技术。图5是虚拟仿真测试平台完成测试数据获取的结构流程图。
图5 虚拟仿真测试平台完成测试数据获取的结构流程
6结论
结合对嵌入式软件测试的数据获取技术的探讨,获取测试数据需要依据目标系统特点以及测试需求来选择。从测试数据获取技术的角度可以看到,嵌入式测试技术还需要深入研究:一方面,现有的测试数据获取技术未能充分利用嵌入式开发环境的资源,影响了嵌入式测试工具和开发环境的一体化集成应用,有待开发一种嵌入式开发测试一体化平台;另一方面,市场上强烈需要在软件全生存周期对软件进行开发、测试以及项目管理,研究全生存周期嵌入式软件开发、测试及管理平台是未来发展的重要方向。
文章来源于领测软件测试网 https://www.ltesting.net/