VTEST一种通用虚拟测试环境框架软件_第1页
VTEST一种通用虚拟测试环境框架软件_第2页
VTEST一种通用虚拟测试环境框架软件_第3页
VTEST一种通用虚拟测试环境框架软件_第4页
VTEST一种通用虚拟测试环境框架软件_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VTEST-—种通用虚拟测试环境框架软件摘要:本文介绍了虚拟测试环境的概念和基本结构,重点介绍了一种通用虚拟测试环境框架软件VTest。VTest采用功能内核和插件的设计思想,提髙了系统的模块性、重用性和可扩展性,提髙了系统的适应能力,利用VTest可以快速构建自动化程度髙、测试手段丰富、髙可用的嵌入式软件虚拟测试环境,有效保证测试充分性。关键词:虚拟测试测试环境嵌入式VTest引言虚拟测试环境是指利用软件仿真技术,逼真地模拟被测软件运行的物理环境,在其上通过动态执行被测软件进行的软件确认与验证活动。理想情况下,原来运行于真实环境上的嵌入式软件,可以不加修改直接在虚拟环境上运行,并且其运行的动态特性与在真实环境上一致。虚拟测试环境所固有的高可用、高可控、确定性、易于复制使用等特性,为进行软件测试提供了理想的测试环境。虚拟测试环境不能完全替代硬件测试环境,却是对硬件环境的有效补充。虚拟测试环境与传统的半物理测试环境的结构非常类似。传统的半物理测试环境是由目标机和仿真主机构成,目标机上运行被测软件,仿真主机上运行被测软件控制的对象仿真软件,例如针对卫星姿控软件的卫星姿态和轨道动力学、敏感器和执行结构仿真等,以及为方便软件测试所需的用例驱动、调试、测试信息获取等测试软件。在虚拟测试环境中利用虚拟目标机代替了真实目标机,并且由于虚拟目标机和仿真软件以及测试软件都是在主机上运行的软件,因此,一台安装了虚拟测试环境软件的普通PC机就构成了强大的软件测试环境,可以有效解决嵌入式软件测试受限于硬件测试环境可用性的问题。虚拟测试环境的一般结构如下图所示:图1-1虚拟测试环境结构其中虚拟目标机是虚拟测试环境实现的关键,虚拟目标机的一般结构如下图所示虚拟目标机CPU模拟器 IO芯片仿真虚拟目标机仿真框架图1-2虚拟目标机结构

虚拟目标机主要由CPU模拟器[1][2]10芯片模拟等构成,其中CPU模拟器对目标CPU的内核进行模拟,将目标机的指令转换为宿主机上的指令执行,从而实现在宿主机上执行目标机上的代码。IO芯片仿真对10芯片(包括CPU片内芯片)进行软件仿真,包括串口、并口、中断控制器、1553B总线控制器等。CPU模拟器是虚拟目标机的核心部件,其仿真的正确性和速度对整个虚拟测试环境都至关重要。由于虚拟测试环境是集成了各种软件模块、软件工具的复杂软件系统,因而围绕虚拟测试环境的实现技术在国内外都开展了广泛的研究工作。目前的一种趋势是将CPU模拟器、10芯片仿真等按照一定的协议约定封装成可重用构件,并利用某种描述语言描述虚拟测试环境的构成,利用一种通用的虚拟测试环境框架软件,读取对虚拟测试环境的描述,利用可重用构件动态构造特定的虚拟测试环境。虚拟测试环境框架软件除了动态构造特定的虚拟测试环境外,还负责在仿真运行过程中,调度各种模型构件的运行和同步、模拟构件间的同步、进行离散事件仿真等。采用这种方式的好处在于:各种CPU模拟器、10芯片仿真等可以充分重用;虚拟测试环境可以通过描述进行配置生成,而不必逐一定制,从而提高了虚拟测试环境的可扩展性和通用性。VTest(VirtualTest)就是这样一种通用虚拟测试环境框架软件。VTest的研制单位为航天五院502所空间飞行器软件检测站。VTest最初是为了解决第三方确认测试时没有可用的测试环境而研制的。目前,VTest已经发展成为一个高性能的、高扩展性的具备系统级仿真能力的虚拟测试环境框架软件。使用VTest可以在一台普通x86PC机上快速构建一个特定的虚拟软件测试环境,在不具备目标硬件的情况下,进行嵌入式软件的开发和测试。VTest概述VTest的基本构架如错误未找到引用源。-1所示,其中运行时核心(kernel)控制整个虚拟测试环境的运行,包括调度各种仿真模型运行、时钟或中断等离散事件控制等。VTest中定义了标准的接口,各种仿真模型,包括CPU模拟器、虚拟芯片(IO芯片仿真)、其他仿真模型等都是通过这一接口接受运行时核心的调度,完成模型间的数据交换。各种仿真模型在运行时核心的统一调度下构成虚拟目标系统。被测试的目标软件,不需要任何修改就可以在虚拟目标系统中运行。运行时核心(RuntinieKernel)■人机界面VTK1■耳滋坏£馭冋VirtualTest瞧拟平台瓷理刚象运行时核心(RuntinieKernel)■人机界面VTK1■耳滋坏£馭冋VirtualTest瞧拟平台瓷理刚象Winrtnwp;-茫计:泵图2-1VTest基本构架在人机界面层配置了VTest集成环境界面用于完成软件调试、界面显示等任务,在人机界面层还配置了覆盖率分析工具用于分析测试覆盖情况、目标码解析库用于解析被测软件编译后的目标文件。VTest平台中的各种仿真模型都可以封装成独立的Windows动态链接库,以便于通过“搭建”的方式快速构建虚拟目标系统。VTest中已建立了常用的嵌入式处理器,如80x86、TSC695、AT697、TIC3X、ADSP21020/60等CPU模拟器模型库、以及常用的芯片仿真模型库,如8259、8254、8252、CAN总线、1553芯片等。在构建虚拟目标系统时,只需要从已有的仿真模型库中选取所需的模型库,并进行必要的配置连接即可,避免了重复开发工作。同时,VTest提供了扩展编程接口,用户可以自己开发各种所需的仿真模型库,包括最为复杂的CPU模拟器。对于一个软件组织,可逐步建立自己常用的CPU模拟器库、虚拟芯片库、对象仿真模型库以及其他仿真模型库等,以最大化的减少构建虚拟测试环境的开发工作,提高构建虚拟测试环境的效率。VTest的设计原则VTest用于嵌入式软件的测试,由于嵌入式软件的专用性使得嵌入式软件测试环境也往往具有一定的专用性。为此,VTest设计时,特别强调了其通用性,试图将VTest设计成通用的虚拟测试环境框架软件,尽量使框架不受被测软件和被模拟的目标系统的限制和影响。其基本的设计原则包括:a.通用性嵌入式软件的特殊性主要表现在“嵌入”上,为在通用机上执行嵌入式软件必须对目标机环境进行模拟,由于目标机环境千差万别,因此不可能做出一个全集,对所有目标机环境进行模拟。但通过提供CPU模拟器和虚拟芯片等具有通用功能的基本仿真模块,以及配置生成,可使框架具有更广泛的适应性。b.可扩展性提供API接口,允许用户开发自定义仿真模块,以扩展VTest模拟各类目标环境的能力。c.可定制提供API接口,针对不同的测试对象,用户可以开发自己的界面显示,用例输入界面等等,对使用体验进行重新定制。d.正确性、确定性作为测试软件的软件,VTest本身必须是正确的,自身的错误不能反映到测试结果中。同时VTest的运行结果应该是确定的,即每次模拟运行的结果一致,以便于进行测试过程复现。e.效率效率或者仿真速度是衡量仿真系统的一项重要指标。在VTest设计中要从流程效率、算法效率、实现效率等几个方面,提高仿真速度。VTest框架设计VTest的基本设计思想是构建一个最小化的功能内核(运行时核心)提供软件系统的核心服务,而将扩展性质的功能模块都作为插件提供,运行时核心提供了插件的装载机制和协调各插件运作的功能。插件在运行时加载,并可以被动态配置,动态卸载。用户通过设计新的插件实现功能的扩展。VTest提供了各类插件的开发API接口和开发规范,开发者只需按照这一规范,通过设计新的插件实现功能的扩展。a.工程文件接口VTest定义了项目文件用于描述特定的虚拟目标系统,并依据项目文件动态构建虚拟目标系统。VTest项目文件主要描述了三方面的信息,即:项目基本信息,被测软件代码信息,虚拟目标系统配置信息。项目基本信息描述了项目名称、被测软件版本号等信息;被测软件代码信息描述了被软件的源代码名称和目标码名称、目标码解析库的名称;虚拟目标系统配置信息利用虚拟部件描述被模拟的真实目标系统的构成,如选用哪种CPU模拟器、CPU主频、选用哪些虚拟芯片、虚拟芯片之间如何连接、虚拟芯片的端口地址、内存分配等等,一般按照真实情况完成配置即可。VTest通过工程文件接口读入工程文件构造虚拟目标机模拟,而工程文件可由工程文件编写工具编写产生,并由工程文件解析插件解析。b.目标码接口VTest需要加载被测软件的目标码到CPU模拟器中运行,但由于CPU类型不同或编译器不同,生成的目标码的格式是多种多样的,如OMF格式、ELF格式、COFF格式等。为此需要开发不同的目标码处理插件软件以解析不同的格式的目标码,从中提取可执行目标码信息、调试信息等。为此定义可统一的目标码接口,由目标码处理插件软件实现该接口,VTest通过该接口动态加载插件、调用目标码处理软件的功能,实现目标码处理。通过该接口,处理不同格式的目标码只需要编写针对不同格式的目标码处理插件软件即可,VTest框架本身不需要任何修改。c.CPU模拟器接口CPU模拟器是最为核心和复杂的一类插件,VTest定义了CPU模拟器插件接口规范和开发API,用户可以利用这些API开发新的CPU模拟器。VTest通过CPU模拟器接口加载和访问、控制CPU模拟器软件,只要实现了CPU模拟器接口的CPU模拟器插件软件都可以与VTest交互,并集成到系统中。d.虚拟芯片接口虚拟芯片是最为常用,经常需要使用的一类插件。VTest定义简单实用的虚拟芯片插件接口,并提供了30多个API函数,支持用户开发虚拟芯片。e.覆盖率输出接口CPU模拟器软件运行被测软件的同时记录被测软件执行过程中的语句覆盖率和分支覆盖率oVTest框架

软件实现覆盖率输出接口,输出符合一定格式的覆盖率记录信息,供覆盖率统计工具对覆盖信息进行统计、

合并、显示。VTest框架软件支持测试脚本的执行,这就要求能够解析一定格式的测试脚本并执行脚本。目前可用的脚本很多,包括TCL、VBScript、用户自定义脚本等,并且测试脚本与用户的使用习惯有较强关联而与框架本身的功能关联不大。为此通过虚拟芯片的接口挂接用户期望的脚本引擎,再通过该脚本引擎来解析执行用户脚本,由此实现对测试脚本的支持。VTest提供的虚拟芯片API函数中包括了对虚拟测试环境进行运行控制的函数,供脚本引擎使用。VTest的使用过程VTest的使用过程,可以概括为以下3个步骤:了辭总暫冃輛届晞的初威I"爼3£』CPU,内存”也卅,尹他平螂.M傑旧碎诗tr构述虚浪了辭总暫冃輛届晞的初威I"爼3£』CPU,内存”也卅,尹他平螂.M傑旧碎诗tr构述虚浪u林嘉纸秋n;圧s■书吕旳讪b原却EEIft帕相*宜PIL理扭11标不城中利用WTEFT雄fit的_LJIWE打軟屮ILI初■:廿11吧片3图3-1基于VTest的软件调试和测试过程首先,应了解真实目标系统的构成,包括系统中使用的CPU、内存、芯片、受控对象的特点、与其他系统的接口等等,对这些情况建立了解的目的是为构建虚拟目标系统做好准备。这些信息可以从软件任务书、相关的接口协议、接口地址表、目标机原理图等文档中获得。之后,根据真实目标系统的构成情况,构建虚拟目标系统。从仿真模型库中选取所需的CPU模拟器、虚拟芯片等仿真模型,如果当前的仿真模型库中没有所需的虚拟芯片,则需要利用VTest提供的编程接口开发所需的虚拟芯片。所需的虚拟芯片具备后,就可以在VTest项目文件中描述虚拟系统的构成。描述的内容包括系统使用的CPU类型、CPU主频、内存大小、使用的虚拟芯片、虚拟芯片的端口地址、连接关系VTest根据项目文件和所需的CPU模拟器、虚拟芯片,就可以在运行时动态构造出虚拟目标系统,虚拟目标系统与VTest提供的其他测试工具一起构成虚拟测试环境。VTest的应用自VTest虚拟测试环境框架软件研制成功后,近十年来航天五院全部姿控软件以及过半数的关键软件都在该环境中进行测试,包括载人航天工程、嫦娥工程的关键项目软件。利用该测试环境,发现了大量软件设计错误,对于提高软件的可信性发挥了重要作用。目前该测试环境已经应用于航天软件的开发过程,在更大范围内为软件的研制提供服务。在实践中,以VTest为基础,通过扩展测试脚本和测试用例库、被测对象仿真库,已经形成了功能较为完备和通用的姿轨

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论