一种支持版本兼容的数字终端测试环境及其构建方法

文档序号:6599260阅读:173来源:国知局

专利名称::一种支持版本兼容的数字终端测试环境及其构建方法
技术领域
:本发明属于自动化测试领域,尤其针对数字终端的自动化测试领域。
背景技术
:随着普适计算技术的飞速发展,以智能手机、PDA、智能家电以及便携式媒体中心为代表的数字终端设备不断发展和成熟,拥有越来越丰富的第三方应用程序并且具有人机交互的软、硬件界面。对数字终端平台上的应用程序的功能、可信度和安全性进行测试已经成为程序数字终端厂商、数字终端操作系统提供商、移动运营商和移动用户面临的一个重要问题。目前,数字终端测试主要以人工测试为主。基于脚本的自动化测试工具是当前流行的自动化测试解决方案。如果能将自动化测试引入数字终端测试,上面的问题将很容易解决。主机-数字终端(HOST-TARGET)是一种有效的数字终端自动化测试方式,采用这种测试方式时,需要在数字终端上构建测试环境。数字终端生产厂商发布一个新版本系统后,测试人员为了实现对数字终端第三方应用程序进行全面、有效的测试,需要在新版本上构建新的测试环境。多版本的并行构建增加了开发成本,提高了测试环境的管理成本,同时增加了维护难度。另一方面,在较高系统上构建的测试环境无法在低版本系统上运行,造成了测试环境的复用率低,版本兼容性差。而较低版本系统开放的应用程序编程接口(API,ApplicationProgrammingInterface)种类非常少(Android数字终端系统2.0以前的版本未开放蓝牙API,无法调用蓝牙API实现具有通信功能的应用程序),仅依赖于软件开发工具包(SDK,SoftwareDevelopmentKit)的开发满足不了开发人员的需求,从而大大降低了测试环境的便捷性、灵活性,因此协调两者的矛盾是亟需解决的问题。数字终端厂商不断发布新的系统版本,新版本的系统有时会对实现相应功能的类和方法进行修改,这是造成测试环境版本兼容性差的主要原因。而Java反射机制是指Java程序可以于运行时加载、探知、使用编译期间完全未知的类,因此可以基于Java反射机制构建测试环境,测试环境能够在运行时获取系统版本,动态加载与当前系统版本对应的应用框架类以实现相应的功能。
发明内容针对上述需求,本发明将Java反射机制与HOST-TARGET测试架构相结合,提出一种支持版本兼容的数字终端测试化境的构建方法,主要利用Java反射机制动态加载具有通信、驱动以及捕获反馈功能的应用框架类,通过调用这些应用框架类实例的方法来实现相应的功能,辅助测试平台完成对数字终端的自动化测试。本发明提出的一种支持版本兼容的数字终端测试环境的构建方法,基于HOST-TARGET架构的测试平台构建数字终端的测试环境,在TARGET端构建测试环境具体包括下面步骤步骤一、将数字终端的测试环境分为三个功能模块通信模块、驱动模块、捕获反馈模块;步骤二、利用Java反射机制,根据实际需要为实现三个功能模块的应用框架类做封装类,实现封装类的方法,并设计封装类的自动获取机制;首先在实现通信模块方面,建立系统版本号、通信方式与通信应用框架类的映射表,在实现驱动模块方面,建立系统版本号与驱动应用框架类的映射表,在实现捕获反馈模块方面,建立系统版本号与捕获反馈应用框架类的映射表;然后在此基础上,为上述的三种应用框架类做封装类,封装类利用Java反射机制实现统一的接口;最后,利用抽象工厂模式创建封装类实例,实现封装类的自动获取机制;步骤三、在步骤二的基础上各模块根据当前系统版本号自动获取相应的封装类实例,通过调用封装类实例的方法实现各模块的功能;步骤四、将三个模块整合,并添加错误信息提示功能,完成数字终端测试环境的构建。最终,Java反射机制与HOST-TARGET测试架构相结合,提出一种支持版本兼容的数字终端测试环境的构建方法,实现了一种新的对数字终端进行自动化测试机制。该测试机制在一定程度上屏蔽不同版本API的差异性,能够大大提高测试环境的复用率、降低数字终端厂商的测试成本。本发明提出的支持版本兼容的数字终端测试环境,包括通信模块、驱动模块以及捕获反馈模块三部分。三个模块功能的实现都采用了Java反射机制。具体如下通信模块采用Java反射机制获取通信应用框架类,能通过多种通信方式与HOST进行连接,并负责将数字终端发送的数据转发到驱动模块,将数字终端本身的打包数据反馈给主机。驱动模块实现模拟用户输入的功能,接收通信模块转发过来的主机HOST的测试命令,通过模拟用户输入向数字终端注入测试激励以驱动数字终端的执行。因而,模拟用户输入是实现HOST-TARGET测试环境的关键环节。捕获反馈功能动态加载与当前系统版本对应的捕获反馈功能的应用框架类,实现对数字终端系统的实时捕获,并将反馈信息打包发送到通信模块回传。本发明的优点与积极效果在于(1)本发明构建的测试环境能够应用于多个数字终端系统版本之上,真正实现一次开发,多版本系统之上运行。(2)本发明提出的多版本兼容的测试环境的构建方法具有普适性,适用于Android和其他以Java为开发语言的数字终端平台。(3)扩展低版本的API,低版本数字终端系统对开发人员开放的API种类较少,无法满足开发人员的需求,本发明提出的基于Java反射机制的方法可以使开发人员在运行时动态加载应用框架类和方法完成所需的功能,从而摆脱对SDK中API的过度依赖。(4)本发明所述的构建方法提高了测试环境的数字终端系统版本兼容性,避免了测试环境的多版本并行构建,降低了测试环境的构建、维护成本。(5)本发明所述的构建环境在保证数字终端系统版本兼容性的同时,提高了测试环境的可扩展性,出现新版本系统时,可以对测试环境进行扩展,而不需重复开发,以支持新版本数字终端系统的测试。图1是基于HOST-TARGET测试平台的测试环境的整体架构图;图2是一种支持版本兼容的数字终端测试环境的构建方法流程图;图3是基于抽象工厂模式创建封装类实例图;图4是本发明构建的数字终端测试环境中通信模块获取封装类实例的执行流程图。具体实施例方式为了便于本领域普通技术人员理解和实施本发明,下面结合附图和实施例对本发明作进一步的详细和深入描述。本发明提供的构建方法基于主机-数字终端即HOST-TARGET架构的测试平台,通过该方法构建的数字终端测试环境,支持数字终端系统的自动化黑盒测试的实施,HOST端的测试环境负责向TARGET端测试环境发送测试命令,并对捕获反馈模块所捕获的信息保存和处理,以使测试平台能够利用数字终端反馈信息控制测试流程或进行结果验证。采用基于HOST-TARGET架构测试平台构建的测试环境,如图1所示,整体架构分为两个部分测试主机HOST用于运行测试平台实施测试,包括测试代码开发模块M01、测试代码保存模块M02、测试代码执行模块M03、测试数据处理模块M04与测试主机通信模块M05;数字终端TARGET端是被测系统,包括终端驱动模块M06、捕获反馈模块M07与数字终端通信模块M08。本发明提出的支持版本兼容的数字终端测试环境包括数字终端的三个模块通信模块、驱动模块和捕获反馈模块,分别对应上述数字终端TARGET端的数字终端通信模块M08、终端驱动模块M06和捕获反馈模块M07。数字终端与主机端结合一起进行测试过程中,各模块之间的关系如下测试代码开发模块M01,提供用户对测试代码和中断、异常代码的编写环境,包括代码的辅助生成工具,开发完测试代码后进入测试代码保存模块M02;测试代码保存模块M02,将测试代码以统一格式存储,并为测试代码执行模块M03提供读取接口;测试代码执行模块M03,根据测试配置解析测试代码并翻译成为测试指令,并将测试指令发送至测试数据处理模块M04进行处理;测试数据处理模块M04,用于接收测试指令,然后打包封装并发送到测试主机通信模块M05,另外接收测试主机通信模块M05返回的测试数据,进行测试结果的校验,同时根据返回的测试数据控制测试代码执行模块M03中测试代码的执行进度;测试主机通信模块M05,负责与数字终端TARGET通信,向数字终端通信模块M08发送由测试数据处理模块M04打包的数据,以及将数字终端通信模块M08的反馈数据转发到测试数据处理模块M04;数字终端通信模块M08,与测试主机HOST的测试主机通信模块M05相互通信,并负责将HOST发送的数据转发到终端驱动模块M06,并且将数字终端本身的打包数据反馈给测试主机;终端驱动模块M06,用于接收数字终端通信模块M08的测试指令,并将测试指令解析为终端动作驱动数字终端运行,实现模拟用户输入的功能;捕获反馈模块M07,负责捕获终端驱动后的反馈,并将反馈信息打包发送到数字终端通信模块M08回传。本发明提出的方法主要应用于数字终端TARGET端,图2给出了流程图。PO表示将在数字终端的测试环境分为三个模块来实现,三个模块分别为数字终端TARGET端的通信模块(对应图1中数字终端通信模块M08)、驱动模块(对应图1中终端驱动模块M06)和捕获反馈模块(对应图1中捕获反馈模块M07)。在实现数字终端的测试环境时,通信模块、驱动模块和捕获反馈模块三个模块的功能实现都采用Java反射机制,实现多版本兼容性时采用了相同的方法,由于通信模块除了要考虑多种版本以外还要考虑多种不同的通信方式,因而实现时更复杂,在此给出通信模块在实现多版本兼容时的设计,其他两部分依此实现即可。Pl表示实现通信模块的过程,首先,PlOl建立系统版本号、通信方式与通信应用框架类的映射;在此基础上,P102为通信应用框架类做封装类,封装类实现统一的接口,针对不同的版本具有不同的实现方式,实现时利用Java反射机制;P103实现封装类的自动获取机制,能够根据系统版本号和通信方式自动获取对应的通信方式的封装类;同理P3和P4分别是驱动模块功能和捕获反馈模块功能的设计。三个功能模块都设计完以后,P2、P5和P6分别利用上述的设计实现了三个模块的功能。P2根据系统版本号和通信方式自动获取通信封装类,调用封装类实例的方法实现通信功能。P5根据系统版本号自动获取驱动封装类,调用封装类实例的方法实现驱动功能。P6根据系统版本号自动获取捕获反馈封装类,调用封装类实例的方法实现捕获反馈功能。最终通过P7整合三个功能模块,实现具有版本兼容性的测试环境。下面主要以通信模块功能的实现为例来说明图2中Pl过程,具体包括下面三个步马聚ο步骤一、建立系统版本号、通信方式与应用框架类的映射。随着数字终端系统不断升级,许多功能的实现逻辑随着系统升级而更改,不同的系统版本实现通信功能时采用不同的应用框架类和方法,这是造成版本不兼容的主要原因。基于本发明的方法构建的版本兼容性的测试环境部署到具体的系统后,能够获取当前系统版本,根据查询映射表动态加载与当前系统对应的通信应用框架类。因而在设计通信模块时,需要查看系统已有的版本,建立系统版本号与通信应用框架类的映射表。现有通信方式、系统版本号与通信应用框架类名的映射对应如表1所示。表中列出了两种通信方式蓝牙(Bluetooth)与WI-FI,在每个版本中实现通信功能的应用框架类的名称,以版本1.0为例,实现蓝牙(Bluetooth)通信功能的应用框架类是RFCOMMSocket,实现WI-FI通信功能的应用框架类是Wifi,其他版本依此类推。其中,WI-FI是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术。表1通信方式、系统版本号与通信应用框架类的映射表<table>tableseeoriginaldocumentpage7</column></row><table>对于驱动模块功能的实现,在该步骤中需要建立系统版本号与驱动应用框架类的映射表,对于捕获反馈模块功能的实现,则需要建立系统版本号与捕获反馈应用框架类的映射表,如图2所示。步骤二、为实现通信功能的应用框架类做封装类,封装类实现统一的接口,针对不同的版本具有不同的实现方式,实现时利用Java反射机制。在步骤一中,建立了系统版本号与应用框架类的映射表,不同版本的应用框架类在实现通信功能时,可能使用不同的方法和控制逻辑。为了屏蔽不同版本的差异性,为每个通信应用框架类做封装类,封装类将应用框架类实例作为其私有属性,封装类实现统一的接口,接口方法的实现依赖于对应版本的应用框架类实例的方法,封装类的方法调用应用框架类实例的方法完成相应的功能。系统版本升级时可能未对通信应用框架类进行修改,此时的封装类与前一个版本的封装类完全相同。因而,不必为每个版本的应用框架类做封装类。在设计过程中,应该根据实际需要来创建封装类,下面给出是否需要创建封装类的判断标准系统版本升级时,若通信应用框架类未改变或者只修改了类名,则无需创建新的封装类,利用前一个版本的封装类即可。若应用框架类中的方法名或方法的功能改变,则需要创建新的封装类。封装类的版本号与升级后系统版本号相同。这样,既满足了屏蔽版本差异性的要求,又减少了封装类的个数。表2给出了系统版本号与封装类、通信应用框架类以及封装类版本号的映射关系,如表2中所示系统版本由1.0升级到1.1时,应用框架类的方法名和方法功能未发生变化,因而,未创建新的封装类,利用前一个版本1.0的封装类。系统版本升级到2.0时,应用框架类的方法名和方法功能发生变化,创建了新的封装类,封装类的版本为2.0。表2系统版本号与封装类、通信应用框架类以及封装类版本号的映射表<table>tableseeoriginaldocumentpage8</column></row><table>上述给出了何时创建封装类的判断方法,下面给出封装类内部实现方法。应用框架类实例是封装类的私有属性,封装类的方法通过调用应用框架类实例的方法完成通信的功能。因而在实现每个封装类的方法之前,需要完成应用框架类实例的初始化。封装类的构造方法完成动态加载应用框架类并创建应用框架类实例的过程。实现时,封装类的构造方法可以根据表2找到相应的应用框架类名,然后利用Java反射机制根据应用框架类名动态加载应用框架类的实例。由于一个封装类可能与多个应用框架类名相对应。在加载应用框架类实例时,需要根据系统版本号查询应用框架类的类名,加载对应的应用框架类实例。以表2中的封装类BluetoothVlJ)为例,若当前系统版本为1.0,其构造方法根据表2获得对应的应用框架类名为RFCOMMSocket,利用Java反射机制加载类名为RFCOMMSocket的类实例,若当前系统版本为1.1,其构造方法根据表2获得对应的应用框架类名为BluetoothSocket,利用Java反射机制加载类名为BluetoothSocket的类实例。在实现封装类的方法时,首先,针对每个封装类的方法,确定实现该封装类的方法时所使用的应用框架类实例方法和调用顺序。然后,封装类的方法利用Java反射机制依次调用这些应用框架类实例的方法完成相应功能。在实现通信模块功能时,封装类接口可以使用四个方法,分别是connect(连接),send(发送),receive(接收),disconnect(断开)。在不同的封装类中四个方法根据不同的版本具有不同的实现逻辑,它们利用Java反射机制动态调用当前版本应用框架类实例的方法实现相应的功能。以connect方法为例,封装类BluetoothVlJ)是版本1.O和1.1的封装类,如果系统版本号为1.0,其connect方法调用应用框架类RFCOMMSocket实例的方法实现连接功能,否则调用类BluetoothSocket实例的方法,而封装类BluetOOthV2_0的connect方法调用应用框架类BluetoothClass实例的方法实现连接功能。具体实现时用到映射数据结构,在此主要用到两个映射,HashMap<String,String>v2vmap是系统版本号到封装类版本号的映射,其中HaShMap<String,String)是Java容器中的映射类型,此处是String类型到String类型的映射,v2vmap是定义的变量名。这个映射使开发环境能够根据当前的系统版本号获得封装类版本号。HashMapKString,String>v2classnamemap是系统版本号到应用框架类名的映射,其中v2classnamemap是映射的变量名,封装类根据这个映射动态加载与当前系统版本对应的应用框架类实例。对于驱动模块功能的实现,在该步骤中需要建立系统版本号与封装类、驱动应用框架类以及封装类版本号的映射表,并为驱动应用框架类做封装类,对于捕获反馈模块功能的实现,在该步骤中则需要建立系统版本号与封装类、捕获反馈应用框架类以及封装类版本号的映射表,并为捕获反馈应用框架类做封装类。步骤三、利用抽象工厂模式实现封装类的自动获取机制,使开发人员能够根据系统版本号和通信方式自动获取通信封装类。通信模块有多种不同的通信方式,每种通信方式在不同版本系统上实现具有差异性,为了实现版本兼容,将基于本发明实现的测试环境部署到数字终端后,需要能够获取系统的版本,然后根据系统版本和通信方式获取相应的封装类。在此,给出了封装类的自动获取机制。为了阐述实现机理,这里只给出了两种通信方式,分别是蓝牙通信和WI-FI通信,在实际操作过程中,可以根据需要扩充通信方式。通信模块封装类的自动获取机制采用了抽象工厂模式,通过此种方式实现时,对用户隐藏了封装类的创建过程,选择通信方式和获取系统版本后,调用CommunicationClass类实例的getConcreteClass(Stringmode,Stringmapversion)方法即可完成初始化,获得封装类实例,其中参数mode表示通信方式,mapversion表示封装类的版本号,类型是String。采用抽象工厂模式的结构如图3所示。图中用统一建模语言(UML,UnifiedModelingLanguage)图给出了类的关系,图中虚线表示类的依赖关系,实线表示类的继承关系,数据类型表示Java类,接口表示Java接口。类Creator是创建者角色,有两个具体创建者角色,分别是类CreatorVlJ)和类CreatOrV2_0,它们都调用两个工厂方法bluetoothFactoryO和wifiFactoryO创建具体的通信类实例,这两个工厂方法与右侧的封装类——对应,CreatorVl_0中的bluetoothFactory()方法创建封装类BluetoothVl_0的类实例,wifiFactory()方法创建封装类WifiVl_0的类实例,CreatorV2_0中的bluetoothFactory()方法创建封装类BluetoothV2_0的类实例,wifiFactory()方法创建封装类WifiV2_0的类实例。类CommunicationClass负责通信类的创建,通过方法getConcreteClass(Stringmode,Stringmapversion)完成这——功能,i亥方法实现时4衣赖于上文提到的具体创建者角色CreatorVl_0和CreatorV2_0,若getConcreteClass方法的参数mapversion为1.0,则创建具体工厂类CreatorVl_0的实例,否则创建具体工厂类CreatorV2_0的实例,获得具体工厂类的实例后,getConcreteClass方法根据参数mode选择调用具体工厂类实例的方法,若mode为bluetooth,则调用bluetoothFactoryO方法,若mode为WI-FI,则调用wifiFactory()方法。右侧是通信类的继承关系,蓝牙通信类Bluetooth和WI-FI通信类Wifi实现了Communication接口,Communication接口是个统一的实现通信功能的接口,它包含了实现通信功能的方法connect(连接),send(发送),receive(接收),disconnect(断开)。由于数字终端系统存在多个版本,通信类派生出多个封装类。采用上述设计方法,测试环境获得通信方式mode和封装类版本mapversion后,通过仓ll建CommunicationClass类的实例并调用其getConcreteClass(Stringmode,Stringmapversion)方法即可完成封装类的自动获取。步骤二中完成了多个版本的封装类的内部实现,步骤三借助步骤一和步骤二中的映射表,完成了封装类的自动获取。开发人员获取系统版本号和通信方式后,通过步骤三,仅调用方法getConcreteClass(Stringmode,Stringmapversion)艮口可实现获取封装类这一过程。如图2所示,对于驱动模块功能的实现,在步骤三中能够根据系统版本号自动获取驱动封装类,调用封装类实例的方法实现驱动功能;对于捕获反馈模块功能的实现,在步骤三中能够根据系统版本号自动获取捕获反馈封装类,调用封装类实例的方法实现捕获反馈功能。通过以上三步,开发人员可以获取封装类实例并执行其方法,以实现通信模块为例,通过封装类的构造方法创建封装类实例时,实现了应用框架类实例的创建。获取封装类的实例主要过程是首先根据通信方式和系统版本号获取封装类,在以实现通信模块为例的步骤三中给出了自动获取封装类的详细设计,通过这个设计,开发人员仅需调用一个getConcreteClass方法即可实现获取封装类这一过程;然后调用封装类的构造方法创建封装类的实例,以实现通信功能为例的步骤二中封装类的构造方法实现了利用Java反射机制动态加载与当前版本对应的应用框架类,创建与当前系统版本对应的应用框架类实例,并将应用框架类实例赋值给自身的私有数据成员。获取封装类的实例后,因为不同的封装类实例实现了统一的接口,所以它们的方法名称和参数相同,封装类实例方法依赖于应用框架类实例方法完成相应功能,在不同的版本系统中,应用框架类在实现某一特定功能时具有不同的逻辑,因而封装类实例方法的内部执行过程为根据当前版本应用框架类实例实现接口方法时使用的应用框架方法和调用顺序,利用Java反射机制依次调用这些应用框架实例的方法完成相应功能。在步骤二中,给出了封装类的方法的实现方法。图4给出了在1.1版本的系统上部署测试环境,测试人员选用蓝牙通信方式,以数字终端测试环境中的通信模块为例,获取封装类实例的流程,包括步骤P01-P20,具体是当测试人员将测试环境部署到版本为1.1的系统上以后,运行开始前,执行P01配置测试环境,选择蓝牙通信方式Bluetooth;然后执行P02获取当前的系统版本,此处版本为1.1;此后,执行P03测试环境开始初始化;P04查询系统版本到封装类版本的映射表v2vmap,由于1.1版本不是通过主版本升级而来,没有自己的封装类,需要获取1.0的封装类BlUetOOthVl_0,P05判断查询映射表是否成功,若成功将会获得封装类版本为1.0,执行步骤P06,若查询不成功转步骤P14;P06通过创建CommunicationClass类的实例,并调用实例的getConcreteClass(“Bluetooth”,“1.0”)方法实现封装类实例的创建;P07根据getConcreteClass的参数“1.0”创建了具体工厂类CreatorVl_0的类实例creatorvl_0;P08根据参数“Bluetooth”调用creatorvl_0的bluetoothFactory()方法;P09中bluetoothFactoryO查询系统版本号到实现蓝牙功能的应用框架类名的映射并获取应用框架类名;P10判断查询是否成功,若成功将会获得应用框架类名为BluetoothSocket,执行步骤P11,若不成功转步骤P14;P11中bluetoothFactory()调用newBluetoothVl_0("BluetoothSocket")创建封装类的实例bluetoothvl_0;P12BluetoothVl_0构造函数利用Java反射机制动态创建应用框架类BluetoothSocket的实例,封装类的接口方法要利用Java反射机制调用这个类实例实现相应的功能(图2中M2);最终,P13初始化完成,获得封装类实例bluetoothvlj)。如果P05和P10中查找映射表失败,则P14给出错误提示信息。查询映射表失败可能是由于当前系统是新版本,测试环境不支持造成的;P15检验查询映射表失败是不是由于新版本造成的;如果当前版本是新版本,则进行P16为新版本系统中的应用框架类做封装类;然后执行P17,针对新版本系统通信功能的逻辑,实现封装类的统一接口;添加后P18更新两个映射表;P19将修改的测试环境重新部署到新版本上运行;如果P15经过检验,当前的系统不是新的版本,则查询映射失败可能由映射表出现错误或者测试环境出现错误造成的。此时,开发人员应该调试测试环境,找出问题所在,执行P20修正映射表、修改程序错误,然后执行P19将测试环境重新部署到数字终端上执行。在本发明中应用框架,特指手机开发领域中,程序间共同的结构,让该领域中的程序设计人员,依共同结构开发应用程序,应用框架中使用的类就称为应用框架类,比如Android中的应用框架类。本发明提到的封装类是为了屏蔽不同版本应用框架类,为应用框架类做的包装类,将应用框架类封装到一个新类中,应用框架类的实例作为封装类的私有属性,装类的方法实现功能时要调用应用框架类实例的方法。权利要求一种支持版本兼容的数字终端测试环境的构建方法,该方法基于主机-数字终端架构的测试平台构建数字终端的测试环境,其特征在于,具体包括下面步骤步骤一、将数字终端的测试环境分为三个功能模块通信模块、驱动模块、捕获反馈模块;步骤二、利用Java反射机制,根据实际需要为实现三个功能模块的应用框架类做封装类,实现封装类的方法,并设计封装类的自动获取机制;首先在实现通信模块方面,建立系统版本号、通信方式与通信应用框架类的映射表,在实现驱动模块方面,建立系统版本号与驱动应用框架类的映射表,在实现捕获反馈模块方面,建立系统版本号与捕获反馈应用框架类的映射表;然后在此基础上,为上述的三种应用框架类做封装类,封装类利用Java反射机制实现统一的接口;最后,利用抽象工厂模式实现封装类的自动获取机制;步骤三、在步骤二的基础上各模块根据当前系统版本号自动获取相应的封装类实例,通过调用封装类实例的方法实现各模块的功能;步骤四、将三个模块整合,并添加错误信息提示功能,完成数字终端测试环境的构建。2.应用权利要求1所述的方法构建的支持版本兼容的数字终端测试环境,其特征在于,所述的数字终端测试环境包括通信模块、驱动模块和捕获反馈模块三个模块所述的通信模块通过多种方式与主机进行连接通信,并负责将数字终端发送的数据转发到驱动模块,将数字终端本身的打包数据反馈给主机;所述的驱动模块实现模拟用户输入,接收通信模块的测试命令,通过模拟用户输入向数字终端注入测试激励以驱动数字终端执行;所述的捕获反馈模块动态加载与当前系统版本对应的捕获反馈功能类,实现对数字终端系统的实时捕获,并将反馈信息打包发送到通信模块回传;所述的三个模块的功能都采用了Java反射机制实现。3.根据权利要求1所述的构建方法,其特征在于,步骤二中所述的根据实际需要来创建封装类,判断是否需要创建封装类的标准是数字终端系统版本升级时,若对应一个功能模块的应用框架类未改变或者只修改了类名,则无需创建新的封装类,利用前一个版本的封装类即可;若应用框架类中的方法名或方法的功能改变,则创建新的封装类,封装类的版本号与升级后系统版本号相同。4.根据权利要求1所述的构建方法,其特征在于,步骤二中所述的为应用框架类做封装类的具体过程为首先,建立系统版本号、封装类、应用框架类以及封装类版本号的映射表,然后封装类的构造方法通过查该映射表找到相应的应用框架类名,再利用Java反射机制根据应用框架类名动态加载应用框架类实例;然后,针对每个封装类的方法,确定实现该封装类的方法时所使用的应用框架类实例的方法和调用顺序;最后,封装类的方法利用Java反射机制依次调用这些应用框架类实例的方法完成相应功能。5.根据权利要求1所述的构建方法,其特征在于,步骤三中,对于通信模块的实现,根据系统版本号和通信方式自动获取通信封装类,调用封装类实例的方法实现通信功能;对于驱动模块功能的实现,根据系统版本号自动获取驱动封装类,调用封装类实例的方法实现驱动功能;对于捕获反馈模块功能的实现,根据系统版本号自动获取捕获反馈封装类,调用封装类实例的方法实现捕获反馈功能。6.根据权利要求1所述的构建方法,其特征在于,步骤四中所述的添加错误信息提示的功能,使得构建的测试环境在数字终端运行出现错误提示信息时,开发人员能够快速定位错误并解决问题,具体是出现错误提示信息时,判断当前系统版本是否是新的,如果不是新版本,通过修改映射表、修改程序错误调整测试环境,然后将测试环境重新部署到数字终端上执行;如果是新版本,则利用Java反射机制为新版本系统中的应用框架类做封装类,针对新版本的功能逻辑实现封装类的统一接口,并更新两个映射表,然后将测试环境重新部署到数字终端上执行。全文摘要本发明公开了一种支持版本兼容的数字终端测试环境及其构建方法,基于HOST-TARGET架构的测试平台构建数字终端的测试环境,在TARGET端利用Java反射机制来实现。所述的数字终端测试环境包括通信模块、驱动模块和捕获反馈模块,实现每一个功能模块时,首先建立系统版本号与应用框架类的映射表,在此基础上,为应用框架类做封装类,封装类利用Java反射机制实现统一的接口,最后,利用抽象工厂模式创建封装类实例,调用封装类实例的方法实现相应的功能,最终,在Java反射机制的基础上,为数字终端的自动化测试实施提供了可行方法。基于本方法构建的测试环境,能应用于不同版本的数字终端,降低了测试环境对终端系统的依赖性。文档编号G06F11/36GK101807168SQ20101012539公开日2010年8月18日申请日期2010年3月15日优先权日2010年3月15日发明者刘志方,周汉清,李晖,王丽娜,高小鹏,龙翔申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1