软件系统的测试方法及装置的制作方法

文档序号:6609516阅读:153来源:国知局
专利名称:软件系统的测试方法及装置的制作方法
技术领域
本发明涉及软件测试领域,具体涉及基于公共对象请求代理结构(CORBA, Common Object Request Broker Architecture )的库欠寸牛系统的测^式 方法和测试装置。
背景技术
当前,全球性网络使线上的所有设备和软件成为全球共享的浩瀚的资 源,计算机环境也从集中式发展到分布式,并且开放式系统的发展使用户能源,因此,软件的分布式处理和应用集成自然而然地成为人们的共同要求。 目前的CORBA就是为软件实现分布式处理而引入的,CORBA为开发分布 式对象软件系统提供统一的标准,该标准与具体的软件开发平台、软件开发 语言和开发厂商无关。CORBA内部结构分为三部分核心部分对象请求4<理(ORB, Object Request Broker)、接口定义语言客户实现(IDL Stub )和接口定义语言对象 实现(IDL Skeleton)。所述ORB是客户应用软件能够调用远端对象方法的 一种机制;所述IDL Stub和IDL Skeleton是由接口定义语言编译器(IDL Complier)根据已定义的接口定义语言(IDL)自动编译生成。IDL是CORBA体系中的另一个重要组成部分,CORBA用IDL来描述 对象接口,这样的对象接口简称IDL接口 ,也可称为CORBA接口。所述 ORB使CORBA做到与软件开发平台无关,而IDL使CORBA做到与软件 开发语言无关。IDL的核心是将对象实现与对象接口相分离,在客户应用和 服务器应用之间建立一个标准的描述语言,描述在应用软件中需要用到的对象类型、对象接口、对象所支持的操作和操作时可能引发的异常,与具体的 实现语言和平台无关。在软件测试技术领域,目前对于基于CORBA的应用软件主要采用的测 试方法是人工测试。图1为现有的对基于CORBA的应用软件进行测试的方 案示意图。参见图1, CORBA对象实现单元101就是待测的应用软件,数 据转换器102可以是各种具有CORBA接口的网管系统,也可以是针对 CORBA对象实现单元101单独设计的系统,数据转换器102提供数据转换 功能,将数据转换为CORBA对象实现单元101可识别的数据。现有的测试 方法是在客户端编写专门的图形界面测试工具103,该图形界面测试工具 103与CORBA对象实现单元101连接,其中包括对所述CORBA对象实现 单元101的测试程序,图形界面测试工具103可以获取CORBA接口输出的 数据,显示在界面上,然后由人工将图形界面测试工具103显示的数据与数 据转换器的界面104上所显示的数据进行比较,并由人工判断所述CORBA 对象实现单元101所输出数据的准确性。上述现有的测试方法存在以下缺点首先,在每次测试时,数据转换器102输出给CORBA对象实现单元101 的数据是随机的,因此每次测试都需要人工进行比较判断,效率低,浪费人 力资源,并且利用图形界面测试工具103获取到的CORBA接口的数据量非 常庞大,而采用人工判断则非常容易出错,存在一定的测试泄漏;其次,对 于每一种CORBA对象实现单元101都需编写相对应的图形界面测试工具 103,图形界面测试工具103对于不同的CORBA对象实现单元101不能重 复使用,而编写图形界面测试工具103的工作量十分巨大,人力成本高。发明内容有鉴于此,本发明的主要目的在于提供一种软件系统的测试方法,以提 高测试效率,降j氐测试成本。本发明的另一目的在于提供一种软件系统的测试装置,实现测试的自动化,从而提高测试效率,降低测试成本。为了实现上述发明目的,本发明的主要技术方案为一种软件系统的测试方法,适用于基于公共对象请求代理结构CORBA 的软件系统,该方法包括设置基础数据,为CORBA的IDL接口设置对应的测试脚本,并确定所 述基础数据对应的数据模板;测试时,将基础数据输入CORBA软件系统,利用所述测试脚本驱动所 述CORBA软件系统的IDL接口输出测试数据;比较所述数据模板和所述测 试数据,确定比较结果。其中,所述确定基础数据对应的数据模板具体为将所述基础数据输入 CORBA软件系统,利用所述测试脚本驱动所述CORBA软件系统的IDL接 口输出初始测试数据;根据外部输入的修改指令修改所述初始测试数据;将 修改后的初始测试数据作为所述基础数据对应的数据模板。上述方案中,所述将基础数据输入CORBA软件系统具体为先将所述 基础数据转化为CORBA软件系统可识别的数据,再将转换后的数据输入到 CORBA软件系统。上述方案中,所述确定基础数据对应的数据模板具体为根据所述基础 数据与对应的数据模板之间存在的映射关系,设置所述基础数据对应的数据 模板。所述设置基础数据为预设数据描述,该数据描述中记录有基础数据 的配置及资源信息;设置符合所述数据描述的基础数据。上述方案中,所述利用测试脚本驱动CORBA软件系统的IDL接口输出 测试数据具体为,人预设的测试脚本中查询所述CORBA软件系统的IDL接 口对应的测试脚本,将所述测试脚本转换为IDL接口数据,利用该IDL接 口数据驱动所述IDL 4妄口运^f亍测试,输出测试数据。一种软件系统的测试装置,适用于基于CORBA的软件系统,该装置包括基础数据集单元,用于设置基础数据,将所述基础数据转换为CORBA软件系统可识别的数据并输入给所述CORBA软件系统;测试脚本解释器,用于设置CORBA的IDL接口所对应的测试脚本,利 用所述测试脚本驱动所述CORBA软件系统的IDL接口对基础数据集单元输 入的数据进行测试,转换输出IDL接口的测试数据;数据处理单元,用于生成数据模板,将测试脚本解释器输出的测试数据 与数据模板比较,输出比较结果;自动测试驱动平台,用于控制驱动所述测试脚本解释器和数据处理单元。其中,所述基础数据集单元包括数据描述模块,用于设置存储数据描 述信息;基础数据模块,用于依照所述数据描述信息创建对应的基础数据; 数据转换器,用于将所述基础数据转换为CORBA软件系统可识别的数据源 输入给CORBA软件系统。所述测试脚本解释器包括测试脚本库,用于设置存储与CORBA的每 一 IDL接口对应的测试脚本;测试脚本解释工具,用于将测试脚本转换为 IDL接口数据,利用IDL接口数据驱动IDL接口运行测试,将IDL接口的 运行测试结果转换为测试数据输出。所述数据处理单元包括数据输出模块,用于为测试脚本解释器输出的 测试数据打上时间标签,按照时间标签识别出所述测试脚本解释工具输出测 试数据的顺序,将所述测试脚本解释工具初始输出的测试数据发送给修改模 块,将所述测试脚本解释工具后续输出的测试数据输入给数据比较模块;修 改模块,用于显示所述初始输出的测试数据,根据外部输入的修改指令对所 述初始输出的测试数据进行修改,将修改后的测试数据保存为数据模板;数 据比较模块,用于将来自数据输出模块的测试数据与所述数据模板比较,输 出比较结果。所述自动测试驱动平台包括测试脚本工具驱动模块,用于控制所述测 试脚本解释工具;数据输出驱动模块,用于控制所述数据输出模块;数据比 较驱动模块,用于控制所述数据比较模块;主控模块,分别与所述测试脚本工具驱动模块、数据输出驱动模块和数据比较驱动模块连接,用于控制所述 脚本工具驱动模块、数据输出驱动模块和数据比较驱动模块间的通信及数据 处理。本发明的测试方法及装置基于CORBA,利用CORBA的IDL接口定义 与IDL接口实现的分离机制,预先为CORBA的IDL接口设置好对应的测 试脚本,进行IDL接口定义,在测试时,利用所述测试脚本驱动所述CORBA 软件系统的IDL接口,即运行所述IDL接口实现,输出测试数据,并根据 与基础数据对应的数据模板进行比较,从而自动确定比较结果。本发明与现有技术相比,由于所述数据模板不是随机的,因此可以重复 利用该数据模块进行比较,减少人工的参与,实现测试的自动化,提高测试 效率,降低人力资源成本;由于本发明为CORBA的IDL接口设置好对应的 测试脚本,在测试时,不论CORBA软件系统的版本是否相同,都可从预设 好的测试脚本重选出与所述CORBA软件系统的IDL接口对应的测试脚本, 通过该测试脚本驱动IDL接口输出测试数据,因此,本发明可实现IDL接 口的全面测试,测试数据和测试脚本的可重用性和可维护性得到保证,大大 提高软件测试效率及测试覆盖率,降低人力资源成本。本发明所提供的方法及装置可作为软件系统自动测试的系统解决方案, 包括测试数据规划、测试过程控制与管理和测试结论分析,特别为自动测试 提供捷径。


图1为现有的对基于CORBA的应用软件进行测试的方案示意图; 图2为本发明所述基于CORBA软件系统的测试方法的处理流程图; 图3为本发明所述CORBA软件系统的测试装置的结构示意图; 图4为本发明所述测试装置的内部模块结构示意图。
具体实施方式
下面通过具体实施例和附图对本发明啦文进 一 步详细^说明。图2为本发明所述基于CORBA软件系统的测试方法的处理流程图,参 见图2,本发明所述测试方法包括 步骤201、设置基础数据。所述设置基础数据的具体方法可以为预设数据描述,该数据描述中记 录有基础数据的配置及资源信息,然后再设置符合所述数据描述的基础数 据。此外,所述基础数据也可由数据转换器直接设置,例如将通过网管备份 的数据设置为基础数据。步骤202、为CORBA的IDL接口设置对应的测试脚本。可预先针对CORBA的每一个IDL接口设置对应的测试脚本,形成由所 设置的测试脚本组成的测试脚本库。本领域的技术人员知道,所述测试脚本 可以采用各种通用的脚本语言进行编写设置,例如根据IDL定义的接口方法 编写 一一对应的java脚本(JavaScript)。步骤203、确定所述基础数据对应的数据模板。所述数据模板为基础数据经过CORBA软件系统处理后的一个理想的数 据,可以作为衡量软件系统质量的测试标准, 一组基础数据与一个数据模板 严格对应。本步骤203中的具体确定数据模板的方法可以为将所述基础数据输入 CORBA软件系统,利用所述测试脚本驱动所述CORBA软件系统的IDL接 口输出初始测试数据,所述初始测试数据是指所述基础数据第 一 次输入 CORBA软件系统处理后输出的测试数据;此时测试人员可以查看和修改所 述初始测试数据,测试系统可以根据测试人员输入的》务改指令》务改所述初始 测试数据;将修改后的初始测试数据作为所述基础数据对应的数据模板保 存。由于所述基础数据与对应的数据模板之间存在的映射关系是已知的,因此本步骤203还可以根据所述映射关系设置所述基础数据对应的数据模板。 步骤204、确定所述基础数据对应的数据模板后,在对所述CORBA软件系统进行测试时,将基础数据输入CORBA软件系统,利用所述测试脚本驱动所述CORBA软件系统的IDL接口输出测试数据。步骤205、比较所述数据模板和所述测试数据,确定比较结果。 具体的,可先将所述基础数据转化为CORBA软件系统可识别的数据,再将转换后的数据输入到CORBA软件系统;从预设的测试脚本中查询所述IDL接口对应的测试脚本,将所述测试脚本转换为IDL接口数据,利用该IDL接口数据驱动所述IDL接口运行测试,输出测试数据。对于初始测试数据,即 一种基础数据第一次输入CORBA软件系统处理后输出的测试数据,正如步骤203所述,可以根据该初始测试数据设置当前基础数据对应的数据模板,在设置好数据模板后,对于该数据模板所对应的基础数据生成的后续测试数据,即同一种基础数据第二次和以后输入CORBA软件系统处理后输出的测试数据,则可以通过比较该后续的测试数据和所述数据模板,从而确定比较结果。上述步骤201至步骤203没有严格的顺序关系,图2中的执行顺序只是本发明的一种实施例,只要包括上述步骤,其它实施例中也可按其它顺序执行。图3为本发明所述CORBA软件系统的测试装置的结构示意图。参见图 3,该装置包括基础数据集单元301、测试脚本解释器302、数据处理单元 303和自动测试驱动平台304。图中的CORBA对象实现单元101就是所要 测试的CORBA库欠件系统。所述基础数据集单元301用于设置基础数据,将所述基础数据转换为 CORBA软件系统可识别的数据,并输入给所述CORBA软件系统。基础数 据集单元301可保证自动测试数据的一致性,同时为CORBA对象实现单元 IOI提供数据源。所述测试脚本解释器302用于设置CORBA的IDL接口所对应的测试脚本,利用所述测试脚本驱动所述CORBA软件系统的IDL接口对基础数据集 单元301输入的数据进行测试,并转换输出IDL接口的测试数据。所述数据处理单元303用于生成数据模板,将测试脚本解释器302输出 的测试数据与数据模板比较,输出比较结果。自动测试驱动平台304用于控制驱动所述测试脚本解释器302和数据处 理单元303,为测试装置的整体工作流程提供支持和控制。图4为本发明所述测试装置的内部模块结构示意图。参见图4,所述基础数据集单元301包括数据描述模块401、基础数据模块402和 数据转换器403,其中所述数据描述模块401用于设置存储数据描述信息,保证基础数据的一 致性。数据描述信息可以采用文本或表格方式存储,如采用Excel表格,其 中主要包括基础数据的各种配置及资源信息,对基础数据具有约束作用,保 证基础数据的一致性。所述基础数据模块402用于依照所述数据描述信息创建对应的基础数 据。基础数据是进行自动测试的基础,也是形成数据模板的必要条件。基础 数据的建立要符合数据描述中的约束,并且是数据转换器403可以识别的数 据。基础数据也可由数据转换器403直接生成,例如当所述数据转换器403 为网管系统时,可以是通过网管系统备份生成的数据。所述数据转换器403用于将所述基础数据转换为CORBA软件系统可识 别的数据源输入给CORBA软件系统,数据转换器403可以是各种具有 CORBA接口的网管系统,如ZXONM E300传输网管系统,也可以是针对 CORBA对象实现单元101单独设计的系统。所述测试脚本解释器302包括测试脚本库404和测试脚本解释工具405, 其中所述测试脚本库404用于设置存储与CORBA的每一 IDL接口对应的测 试脚本。所述测试脚本是IDL接口的测试程序,可以采用各种通用的测试脚 本语言进行编写,例如可根据IDL定义的接口方法编写——对应的Java脚本语言的测试脚本。所述测试脚本解释工具405用于将测试脚本转换为IDL接口数据,利用 IDL接口数据驱动IDL接口运行测试,将IDL接口的运行测试结果转换为 人工容易识别的测试数据输出,例如将测试结果转换为文字形式的数据以 方便识别比较。所述的测试脚本解释工具405可以是现有技术中较为成熟的 测试脚本编译器,如CORBA Explore工具;也可以是针对特定测试脚本自 行开发的编译器。所述数据处理单元303包括数据输出模块406、修改模块407和数据比 较模块408,其中所述数据输出模块406用于为测试脚本解释器302输出的测试数据打上 时间标签,按照时间标签识别出所述测试脚本解释工具405输出测试数据的 顺序,将所述测试脚本解释工具405初始输出的测试数据发送给修改模块 407,将所述测试脚本解释工具405后续输出的测试数据输入给数据比较模 块408。所述测试脚本解释工具405后续输出的测试凄t据可以称为过程测试 数据。所述修改模块407用于显示所述初始输出的测试数据以供用户修改,再 根据用户输入的修改指令修改所述初始输出的测试数据,并将修改后的测试 数据作为数据模板保存。如上所述,数据模板的生成依赖于基础数据和数据输出模块406,与基 础数据具有严格的一致性,图4中用双点划线表示基础数据与数据模板的一 一对应关系。所述数据模板可以以文本、表格或XML文件存储;数据模板 和过程测试数据为数据比较模块408提供数据源。所述数据比较模块408用于将来自数据输出模块406的测试数据与所述 数据模板进行比较验证,输出含有比较结果的测试报告。所述的验证手段可 以通过现有的商用比较工具或自定义编码工具实现。所述自动测试驱动平台304包括脚本工具驱动模块409、数据输出驱 动模块410、数据比较驱动模块411以及主控模块412,可以釆用现有的自动测试执行工具来实现其功能,例如采用Rational Robot。所述主控模块412分别与所述脚本工具驱动模块409、数据输出驱动模 块410和数据比较驱动模块411连接,用于控制所述脚本工具驱动模块409、 数据输出驱动模块410和数据比较驱动模块411间的通信及数据处理。所述 主控模块412可控制整个自动测试装置的工作流程,并为用户提供本测试装 置的驱动4妄口。所述测试脚本工具驱动模块409用于实现对测试脚本解释工具405的控 制。主要包括如下功能自动初始化测试脚本解释工具405;自动调用测试 脚本支持的平台;自动配置测试脚本相关的参数;自动载入目的IDL接口的 测试脚本文件。所述数据输出驱动模块410用于实现对数据输出模块406的控制。主要 包括如下功能自动从所述测试脚本解释工具405获取相关IDL接口的测试 数据;自动初始测试数据保存为数据模板;通过时间标签自动识别用于生成 数据模板的初始测试数据和和后续的过程测试数据。所述比较驱动模块用于实现对数据比较模块408的控制。主要包括如下 功能自动获取过程测试数据和数据模板;自动实现过程测试数据和数据模 板间的对比验证;自动生成测试结果。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1. 一种软件系统的测试方法,适用于基于公共对象请求代理结构CORBA的软件系统,其特征在于,该方法包括设置基础数据,为CORBA的IDL接口设置对应的测试脚本,并确定所述基础数据对应的数据模板;测试时,将基础数据输入CORBA软件系统,利用所述测试脚本驱动所述CORBA软件系统的IDL接口输出测试数据;比较所述数据模板和所述测试数据,确定比较结果。
2、 根据权利要求l所述的方法,其特征在于,所述确定基础数据对应的 数据模板具体为将所述基础数据输入CORBA软件系统,利用所述测试脚本驱动所述 CORBA软件系统的IDL接口输出初始测试数据;才艮据外部输入的修改指令修 改所述初始测试数据;将修改后的初始测试数据作为所述基础数据对应的数 据模板。
3、 根据权利要求1或2所述的方法,其特征在于,所述将基础数据输入 CORBA软件系统具体为先将所述基础数据转化为CORBA软件系统可识别的数据,再将转换后 的数据输入到CORBA软件系统。
4、 根据权利要求l所述的方法,其特征在于,所述确定基础数据对应的 数据模板具体为根据所述基础数据与对应的数据模板之间存在的映射关系,设置所述基 础数据对应的数据模板。
5、 根据权利要求l所述的方法,其特征在于,所述设置基础数据为 预设数据描述,该数据描述中记录有基础数据的配置及资源信息;设置符合所述数据描述的基础数据。
6、 根据权利要求l所述的方法,其特征在于,所述利用测试脚本驱动CORBA软件系统的IDL接口输出测试数据具体为从预设的测试脚本中查询所述CORBA软件系统的IDL接口对应的测试 脚本,将所述测试脚本转换为IDL接口数据,利用该IDL接口数据驱动所述 IDL接口运行测试,输出测试数据。
7、 一种软件系统的测试装置,适用于基于CORBA的软件系统,其特征 在于,该装置包括基础数据集单元,用于设置基础数据,将所述基础数据转换为CORBA 软件系统可识别的数据并输入给所述CORBA软件系统;测试脚本解释器,用于设置CORBA的IDL接口所对应的测试脚本,利用 所述测试脚本驱动所述CORBA软件系统的IDL接口对基础数据集单元输入 的数据进行测试,转换输出IDL接口的测试数据;数据处理单元,用于生成数据模板,将测试脚本解释器输出的测试数据 与数据模板比较,输出比较结果;自动测试驱动平台,用于控制驱动所述测试脚本解释器和数据处理单元。
8、 根据权利要求7所述的装置,其特征在于,所述基础数据集单元包括 数据描述模块,用于设置存储数据描述信息;基础数据模块,用于依照所述数据描述信息创建对应的基础数据; 数据转换器,用于将所述基础数据转换为CORBA软件系统可识别的数 据源输入给CORBA软件系统。
9、 根据权利要求7所述的装置,其特征在于,所述测试脚本解释器包括 测试脚本库,用于设置存储与CORBA的每一IDL接口对应的测试脚本; 测试脚本解释工具,用于将测试脚本转换为IDL接口数据,利用IDL接口数据驱动IDL接口运行测试,将IDL接口的运行测试结果转换为测试数据 输出。
10、 根据权利要求9所述的装置,其特征在于,所述数据处理单元包括 数据输出模块,用于为测试脚本解释器输出的测试数据打上时间标签,按照时间标签识别出所述测试脚本解释工具输出测试数据的顺序,将所述测 试脚本解释工具初始输出的测试数据发送给修改模块,将所述测试脚本解释工具后续输出的测试数据输入给数据比较模块;修改模块,用于显示所述初始输出的测试数据,根据外部输入的修改指 令对所述初始输出的测试数据进行修改,将修改后的测试数据保存为数据模 板;数据比较模块,用于将来自数据输出模块的测试数据与所述数据模板比 较,输出比较结果。
11、根据权利要求7所述的装置,其特征在于,所述自动测试驱动平台 包括测试脚本工具驱动模块,用于控制所述测试脚本解释工具;数据输出驱动模块,用于控制所述数据输出模块;数据比较驱动模块,用于控制所述数据比较模块;主控模块,分别与所述测试脚本工具驱动模块、数据输出驱动模块和数 据比较驱动模块连接,用于控制所述脚本工具驱动模块、数据输出驱动模块 和数据比较驱动模块间的通信及数据处理。
全文摘要
本发明公开了一种软件系统的测试方法及装置,适用于基于公共对象请求代理结构(CORBA)的软件系统,方法包括设置基础数据;为CORBA的IDL接口设置对应的测试脚本;确定所述基础数据对应的数据模板;测试时,将基础数据输入CORBA软件系统,利用所述测试脚本驱动所述CORBA软件系统的IDL接口输出测试数据;比较所述数据模板和所述测试数据,确定比较结果。所述测试装置包括基础数据集单元、用测试脚本驱动IDL接口的测试脚本解释器、和用于比较数据模板与测试数据的数据处理单元。本发明利用CORBA的IDL接口定义与IDL接口实现的分离机制,以脚本驱动的方式实现软件的自动测试,可以提高测试效率,降低测试成本。
文档编号G06F11/36GK101266570SQ20071010844
公开日2008年9月17日 申请日期2007年6月14日 优先权日2007年3月15日
发明者徐振良 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1