一种基于虚拟机技术的机载软件系统测试通用平台的制作方法

文档序号:6384177阅读:240来源:国知局
专利名称:一种基于虚拟机技术的机载软件系统测试通用平台的制作方法
技术领域
本发明属于软件开发技术范围,更具体说是本发明涉及一种基于虚拟机技术的机载软件系统测试通用平台。
背景技术
现有的嵌入式软件的系统测试,由于与系统的具体功能、实现技术以及采用的平台密切相关,所以很难找到一种 由第三方提供的通用的软件系统测试工具。目前在航空电子领域,软件系统测试通常是利用特定的测试设备,针对特定的系统,编写特定的测试程序,对目标机直接进行软件系统测试。但是因为不同的产品所采用的CPU和外部接口的不同,这种测试方法对于不同的被测系统需要不同的真实的系统设备、仿真测试设备、测试工具、测试平台来实现,缺乏通用性。在真实的目标机系统上进行系统软件测试需要在被测系统工作的真实环境下去同其他系统协同工作、需要软件测试人员操作硬件、了解电压电流等软件不关心的产品硬件相关特性,在时间上和工作量上会因此增加测试成本和工作量,影响软件系统测试的进度,同时不利于第三方进行的系统独立测试。

发明内容
针对已有技术存在的不足,本发明的目的在于为所有的嵌入式系统软件提供一个基于虚拟机技术的通用软件系统测试平台,从而最大限度的避免测试设备的重复开发,缩短测试周期,提高测试效率,降低测试成本。本发明的发明目的是通过如下技术方案实现的。一种基于虚拟机技术的机载软件系统测试通用测试平台,基于虚拟机技术对被测设备进行全系统仿真实现,再将被测软件的可执行代码无缝运行在该仿真环境中,利用测试软件来实现软件系统测试平台。通用测试平台包括四部分第一部分用户界面输入部分,第二部分是被测目标机全系统仿真部分,第三部分是接口转换和通信代理部分,第四部分是测试用例池部分。用户界面输入部分提供给用户使用,该部分又分成两个部分,一部分为被测系统接口配置单元,它用于配置被测设备的硬件条件,如被测软件运行CPU,设备的接口数量及接口的端口地址等信息,并且提供被测软件可执行代码的输入接口,同时,用户可以保存该系统配置,用于下一次的测试。另一部分为测试用例输入及结果显示单元,它用于测试用例的输入,及测试结果的显示输出,并且用户可保存测试结果,用于以后的数据分析。用户界面输入部分与被测目标机全系统仿真部分和接口转换和通信代理部分相连,实现被测设备的全系统环境配置。用户界面输入部分与测试用例池部分相连,用于测试用例的输入和测试结果的输出。被测目标机全系统仿真部分通过虚拟机技术实现了各种CPU及其外围接口设备。基于虚拟机的跨平台特性以及各虚拟设备之间完全独立运行的特性,在该部分实现机载设备中常用的各种CPU及其外围设备的仿真,并将各仿真进行模块化处理,形成CPU、存储器及各种I/O接口的标准模块池,用于提供不同设备的硬件仿真支持,便于接口的扩展,使得该部分仿真实现的被测设备更具灵活性和通用性。当用户将被测配置通过界面输入后,被测目标机全系统仿真部分将按照用户需求生成用户所需的全系统仿真。并将被测代码加载至程序启动区正常运行。接口转换和通信代理部分与被测目标机全系统仿真部分和测试用例池部分相连,提供所执行的用例与被测软件之间的数据接口。测试用例池部分包含测试数据的输入与输出,测试用例执行,测试数据分析和用例执行结果输出。测试用例池部分与接口转换和通信代理部分相连,实现测试数据的输入和被测软件输出结果的记录和分析。测试用例池部分与用户界面输入部分相连,实现测试用例的数据输入与测试结果的输出显示,并可对测试用例和测试结果进行 保存,从而实现测试用例的复用。测试用例执行部分将用例的测试应力通过接口转换和通信代理部分送入被测软件,同时接收被测程序的测试数据的返回,并将接收的测试数据与期望数据进行比对分析,得出测试结论。发送与接收的数据提供专用空间存放,测试人员也可以通过对原始数据进行测试过程与结果的分析。用例执行结果输出部分则根据用例执行部分的测试结论,按照测试人员的要求,生成相应形式的测试报告,并可存储打印,提供给开发人员参考。上述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其中,测试不仅可实现设备的软件系统测试,同时可实现模块的软件配置项测试。测试结果可以通过自动判定和人工判定两种方式实现。上述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其中,测试用例池部分与接口转换和通信代理部分的通信采用事件触发方式进行,测试数据的格式由特定的测试用例来提供。发明效果通过本发明,可实现被测机载设备的软件系统测试,同时,也可以实现模块的软件配置项测试。为机载嵌入式软件的系统测试提供了一种基于虚拟机技术的机载软件系统测试通用测试方法。将本需测试设备和被测设备硬件才可进行的软件系统测试,在软件仿真平台中实现,从而有效降低了软件系统测试对硬件环境的依赖,并降低了测试设备的成本,提高测试效率。更重要的是,该平台可根据测试设备的不同,配置相应的测试仿真环境,由于采用了标准化和模块化设计,实现了测试设备的通用化,并且可实现测试用例的最大程度的复用。在平台资源足够的前提下,可以完成设备与接口的无限复制,最大限度地减低被测设备的软硬件成本。


图I本发明的总体结构框图;图2本发明中的用户界面输入部分结构框图;图3本发明中的被测目标机全系统仿真部分结构框图;图4本发明中的接口转换和通信代理部分结构框图;图5本发明中的测试用例池部分结构框图。
具体实施方式
下面结合附图I-图5进一步说明本发明是如何实现的。实施例本发明利用虚拟机技术的跨平台运行的优势,在普通的PC机上实现PPC,X86等CPU的仿真模拟。达到在同一个平台上实现不同CPU的全系统仿真,从而实现该环境的通用性设计的目标。为实现平台良好的可移植性和通用性,对所用接口实行标准化设计,达到所设计测试用例的最大重复使用。如图I所示,本发明是基于虚拟机技术的软件系统测试平台3,包括四部分第一部分用户界面输入部分3-1,第二部分是被测目标机全系统仿真部分3-2,第三部分是接口转换和通信代理部分3-4,第四部分是测试用例池部分3-3。其运行在主机平台I和操作系统与应用程序2上。在此环境中实现软件系统测试。 主机平台物理上是一台运行Windows XP的个人电脑。操作系统与应用程序2是Windows XP的操作系统相关的应用程序。虚拟机软件可在该环境中调试运行。在进行软件系统测试前,需要先对被测软件的运行环境进行配置。如图2所示,用户界面输入部分3-1提供友好的人机交互界面。通过用户界面输入部分3-1的被测系统接口配置单元3-1-1,首先输入软件运行的CPU,如80c286 ;软件需要访问的I/O接口的类型和端口地址及端口的个数,如2路RS422接口,波特率为19200bps,数据格式为8位数据位,I位停止位,奇校验;端口地址为0x200 ;以及软件需要访问的存储器大小和访问的基地址等软件运行的相关信息,再将被测软件的可执行二进制代码加载到环境中。根据用户界面输入部分3-1的输入内容,被测目标机全系统仿真部分3-2利用虚拟机技术进行被测设备的全系统仿真。如图2所示,用户输入的被测设备信息进入被测系统接口配置输入部分,再由配置输入部分在全仿真池中匹配相应地资源,完成系统硬件的组合配置。如在仿真环境中可利用函数memoy_region_init_ram (ram, NULL, " ram" , 0x3ffff)开辟一块 0x3ffff 大小的 RAM 空间,利用函数 memory_region_init_io (&isa->io, &serial_io_ops, s, " MD8259" , 4)为中断仿真申请寄存器空间。被测系统仿真完成后,将被测软件的二进制代码加载至该仿真的系统启动程序部分,实现被测软件在不需要修改的情况下就可以在仿真环境中正确运行。同时,如图4所示,接口转换和通信代理部分3-4根据用户界面输入部分3-1的输入内容,进行输入输出接口的标准化转换,生成与被测目标机全系统仿真部分3-2进行数据通讯的相关接口,实现测试用例与被测设备之间的数据交换。这样就完成了被测设备及其接口的全系统仿真,并且被测代码也可在该环境中正确运行。完成被测设备的配置后,就需要进行测试用例的设计了。测试用例池部分结构图如图5所示,它用于实现测试数据的输入输出、测试用例的执行操作、测试数据的分析及测试结果的输出。根据软件需求规格说明的要求设计测试用例,进行测试用例的编程工作,通过用户界面输入部分3-1的测试用例输入及结果显示单元3-1-2实现测试用例的输入。由于脚本语言具有高效执行力的特点,测试用例采用脚本语言(python)进行编写,设计完成的测试用例则通过测试用例池部分3-3进行调试运行。测试用例池部分3-3生成的测试数据需要同接口转换和通信代理部分3-4通讯,实现基于SOCKET通信机制进行的测试数据的输入和输出。由于数据的类型、目的端口和传输方向不同将各个总线的操作和数据封装在自定义的 python class 内,使用类似 bus_xxxx_class. setValue (data)或 bus_xxxx_class. getValueO的命令实现数据输入或输出,并与接口转换和通信代理部分3-4进行数据交互。测试用例生成的测试数据经过接口转换和通信代理部分3-4传递给被测目标机全系统仿真部分3-2,被测目标机全系统仿真部分3-2接收到数据后,对数据进行分析,并执行相应的操作,然后把被测软件运行后的结果发送出来,测试的结果数据再经过接口转换和通信代理部分3-4传递给测试用例池部分3-3,测试用例池部分3-3对接收到的结果数据与预期的正确结果进行比对,从而得出测试结论。测试人员也可以通过测试设备收集的原 始测试数据进行分析,得出测试结论。测试用例池部分3-3将测试结论发送给用户界面输入部分3-1的测试用例输入及结果显示单元3-1-2进行显示。测试人员可根据需求,将测试结果按照特定的格式进行保存和输出,便于以后对问题的理解和分析。
权利要求
1.一种基于虚拟机技术的机载软件系统测试通用测试平台,其运行在主机平台和操作系统与应用程序上,测试平台包括用户界面输入部分,被测目标机全系统仿真部分,测试用例池部分,接口转换和通信代理部分,其特征在于 所述用户界面输入部分包括两部分一部分用于配置被测设备硬件条件的被测系统接口配置单元,另一部分为测试用例输入及结果显示单元,用户界面输入部分和被测目标机全系统仿真部分与接口转换和通信代理部分相连,用户界面输入部分与测试用例池部分相连; 所述被测目标机全系统仿真部分实现了机载设备中常用的各种CPU及其外围设备的 仿真,并将各仿真进行模块化处理形成CPU、存储器及各种I/O接口的标准模块池,将被测配置通过界面输入后,被测目标机全系统仿真部分将按照需求生成用户所需的全系统仿真,并将被测代码加载至应用程序的启动区正常运行; 所述接口转换和通信代理部分与被测目标机全系统仿真部分和测试用例池部分相连,提供所执行的用例与被测软件之间的数据接口; 测试用例池部分包含测试数据的输入与输出,测试用例执行,测试数据分析和用例执行结果输出,测试用例池部分与接口转换和通信代理部分和用户界面输入部分相连,对测试用例和测试结果进行保存。
2.根据权利要求I所述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其特征在于所述被测系统接口配置单元,是用于配置被测设备的硬件条件,并且提供被测软件可执行代码的输入接口,用户保存该系统配置,用于下一次的测试。
3.根据权利要求I所述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其特征在于所述被测设备的硬件条件包括被测软件运行CPU,设备的接口类型、数量及接口的端口地址信息。
4.根据权利要求I所述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其特征在于所述测试用例输入及结果显示单元,用于测试用例的输入,及测试结果的显示输出,并且用户可保存测试结果,用于以后的数据分析。
5.根据权利要求I所述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其特征在于测试用例执行部分将用例的测试应力通过接口转换和通信代理部分送入被测软件,同时接收被测程序的测试数据的返回,并将接收的测试数据与期望数据进行比对分析,得出测试结论。
6.根据权利要求I所述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其特征在于所述测试平台的测试结果通过自动判定和人工判定两种方式实现。
7.根据权利要求I所述的一种基于虚拟机技术的机载软件系统测试通用测试平台,其特征在于测试用例池部分与接口转换和通信代理部分的通信采用事件触发方式进行。
全文摘要
本发明公开了一种基于虚拟机技术的机载软件系统测试通用测试平台,包括用户界面输入部分,被测目标机全系统仿真部分,接口转换和通信代理部分和测试用例池部分。本发明基于虚拟机技术对被测设备进行全系统仿真实现,再将被测软件的可执行代码无缝运行在该仿真环境中,利用测试软件来实现软件系统测试平台。本发明测试平台具有最大限度的避免测试设备的重复开发,缩短测试周期,提高测试效率,降低测试成本等优点。
文档编号G06F11/36GK102968377SQ201210540388
公开日2013年3月13日 申请日期2012年12月13日 优先权日2012年12月13日
发明者鲍颖力 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1