一种自动化测试用例生成方法和装置与流程

文档序号:15076567发布日期:2018-08-01 01:52阅读:118来源:国知局

本发明涉及自动化测试技术领域,具体涉及一种自动化测试用例生成方法和装置。



背景技术:

本部分向读者介绍可能与本发明的各个方面相关的背景技术,相信能够向读者提供有用的背景信息,从而有助于读者更好地理解本发明的各个方面。因此,可以理解,本部分的说明是用于上述目的,而并非构成对现有技术的承认。

自动化测试是一种以人为驱动的测试行为转化为机器执行的一种过程,是节省人力、时间成本,提高测试效率的测试方法。自动化测试技术在软件测试领域得到广泛应用,主要用以对待上线软件进行快速回归验证。自动化测试需要将手工测试用例转化成机器执行的脚本语言,这个过程称为自动化用例开发,这是自动化测试的重点和难点工作。

目前,自动化用例的实现方法主要有两类:一类是脚本开发模式,通过自动化软件的ui界面获取工具,获取被测系统界面元素,然后直接用脚本语言编写脚本,实现对界面元素的操作以及前后台操作结果的校验。后续界面变更需要修改用例对应的脚本。另一类是录制回放模式,先由手工完成一遍测试的流程,同时由计算机记录下整个流程期间客户端和服务器之间的通信信息,并形成特定的脚本;但录制模式不能检查操作结果的准确性、界面变更需要重新录制,且脚本对环境依赖强,很容易丢失对环境的操作而不能执行。因此,脚本开发模式在行业的应用普遍性较高。大型企业系统多而繁杂,业务需求旺盛,为快速响应需求功能,it系统需要快速频繁迭代实施it系统的上线。实践经验表明为了保障迭代的质量,自动化测试用例数量通常数万,每次变更导致的用例脚本变化成百上千,迫切需要一种简易的用例脚本开发模式,可以有效的降低开发维护成本,快速实现大规模的用例开发。现有的自动化用例的实现方法在脚本语言实现操作web页面来模拟人工业务操作,并检查后台业务处理逻辑的正确性,脚本涉及业务逻辑的开发,用例开发量大、难度高、系统变更用例维护成本高。回归用例数量庞大,成千上万,自动化用例通常依照手工用例开发,但往往仍覆盖不到关键业务逻辑。



技术实现要素:

要解决的技术问题是如何提供一种自动化测试用例生成方法和装置。

针对现有技术中的缺陷,本发明提供一种自动化测试用例生成方法和装置,可以自动化生成各种测试用例。

第一方面,本发明提供了一种自动化测试用例生成方法,包括:

搭建自动化测试用例生成框架,关联生成自动化用例的操作对象和操作对象的组件;

获取实现自动化测试用例的操作对象的属性信息;

根据所述操作对象的属性信息,解析操作对象的后台业务逻辑,根据自动化测试用例生成框架,形成操作对象之间的关联关系;

根据测试要求计算拓扑图中业务的核心处理测试路径;

按照核心处理测试路径中的顺序将选择出操作对象的组件组装成自动化测试用例。

可选地,所述搭建自动化测试用例生成框架包括:

以自动化测试用例脚本最小可操作对象为最小的静态元素,由操作对象与操作对象的行为形成组件,再由操作对象的组件拼装成用例,形成一个结构化的用例开发框架。

可选地,所述操作对象是界面静态元素,对应一种操作类型的脚本模板,脚本模板预先保存在脚本模板库中。

可选地,还包括:

在确定操作对象后,按操作对象顺序和类别关联对应的脚本模板,并在脚本中注入对象属性信息生成组件脚本。

可选地,所述组件存储在组件库中,所述组件库存储该组件关联的操作对象信息和组件脚本。

可选地,所述核心处理测试路径包括对象以及操作对象之间的测试顺序。

另一方面,本发明提供一种自动化测试用例生成装置,包括:

自动化测试用例框架生成单元,用于搭建自动化测试用例生成框架,关联生成自动化用例的操作对象和操作对象的组件;

属性信息获取单元,用于获取实现自动化测试用例的操作对象的属性信息;

解析单元,用于根据所述操作对象的属性信息,解析操作对象的后台业务逻辑,根据自动化测试用例生成框架,形成操作对象之间的关联关系;

核心处理测试路径获取单元,用于根据测试要求计算拓扑图中业务的核心处理测试路径;

自动化测试用例生成单元,用于按照核心处理测试路径中的顺序将选择出操作对象的组件组装成自动化测试用例。

可选地,所述自动化测试用例框架生成单元包括:

以自动化测试用例脚本最小可操作对象为最小的静态元素,由操作对象与操作对象的行为形成组件,再由操作对象的组件拼装成用例,形成一个结构化的用例开发框架。

可选地,所述操作对象是界面静态元素,对应一种操作类型的脚本模板,脚本模板预先保存在脚本模板库中。

可选地,还包括:

组件脚本生成单元,用于在确定操作对象后,按操作对象顺序和类别关联对应的脚本模板,并在脚本中注入对象属性信息生成组件脚本。

可选地,所述组件存储在组件库中,所述组件库存储该组件关联的操作对象信息和组件脚本。

可选地,所述核心处理测试路径包括对象以及操作对象之间的测试顺序。

由上述技术方案可知,本发明提供的自动化测试用例生成方法和装置,利用测试用例开发和脚本生成方法,实现测试用例自动生成,大大提升了用例开发维护效率,开发要求程度大大降低,尤其在敏捷开发测试过程中,可灵活有效的得到应用。本发明的测试用例的自动化生成,减少了手工用例的分析成本,有效提升用例测试深度和广度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一个实施例中一种自动化测试用例生成方法流程示意图;

图2为本发明一个实施例中一种自动化测试用例生成模型示意图;

图3为图1所示的实施例中测试用例脚本生成流程示意图;

图4为图1所示的实施例中用例脚本执行框架示意图;

图5为本发明一个实施例一种自动化测试用例生成装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

自动化测试是模拟用户的点击操作,脚本主要实现对被测系统界面元素、电脑键盘的操作,并通过数据库表检查业务逻辑是否正确,所以自动化脚本操作对象涉及前端界面元素、键盘、后台数据库表等。为了降低自动化用例开发的难度和需求改造引起的自动化脚本维护工作量,本发明以脚本最小可操作对象为最小的静态元素,由对象与行为形成组件,再由组件拼装成用例,后期某个对象或组件发生变化时,只需要将对象或组件替换即可,无需重构所有相关用例脚本。

如图1所示,本发明提供一种自动化测试用例生成方法,包括:搭建自动化测试用例生成框架,关联生成自动化用例的操作对象和操作对象的组件;获取实现自动化测试用例的操作对象属性信息;根据操作对象的属性信息,解析操作对象的后台业务逻辑,根据自动化测试用例生成框架,形成操作对象之间的关联关系;根据测试要求计算拓扑图中业务的核心处理测试路径;按照核心处理测试路径中的顺序将选择出操作对象组件组装成自动化测试用例。下面对本发明和提供的自动化测试用例生成方法展开详细的说明。

首先,介绍搭建自动化测试用例生成框架,关联生成自动化用例的操作对象和操作对象的组件。

自动化测试是模拟用户的点击操作,脚本主要实现对被测系统界面元素、电脑键盘的操作,并通过数据库表检查业务逻辑是否正确,所以自动化脚本操作对象涉及前端界面元素、键盘、后台数据库表等。

为了降低自动化用例开发的难度和需求改造引起的自动化脚本维护工作量,本发明以脚本最小可操作对象为最小的静态元素,由对象与行为形成组件,再由组件拼装成用例,搭建了一套操作对象->组件->用例的结构化开发框架。后期某个对象或组件发生变化时,只需要将对象或组件替换即可,无需重构所有相关用例脚本。

在本发明中,将组件最小化到对一个对象或多个常用对象的组合操作,可提升组件的复用程度,降低操作对象变化带来的组件维护成本。对每类对象的行为操作统一,所以针对不同类型的操作对象,制定对应的操作对象脚本,如下操作对象脚本模板定义示例。在确定操作对象后,后台自动按对象顺序和类别关联对应的脚本模板,并在脚本中注入对象name、id等属性信息,组成组件脚本。

在本发明中,操作对象是可操作的最小静态元素,是组件的操作对象,操作对象脚本模板定义如表1所示。

表1是操作对象脚本模板示例表:

在本发明中,组件是对对象的操作行为,将组件最小化到对一个对象或多个常用对象的组合操作,可提升组件的复用程度,降低操作对象变化带来的组件维护成本。在组件库中增加或复用组件,根据组件关联的操作对象类型,从脚本模板库中读入脚本到组件库中,并在脚本中注入对象属性name信息,生成组件对应的脚本。对每类操作对象的行为操作是统一的,所以针对不同类型的操作对象,制定对应的操作对象脚本,如下操作对象脚本模板定义示例。在确定操作对象后,后台自动按对象顺序和类别关联对应的脚本模板,并在脚本中注入对象name、id等属性信息,组成组件脚本。

其次,介绍获取实现自动化测试用例的操作对象属性信息。

具体地,如图2所示,用户在生成自动化测试用例时,首先分析用例涉及的操作对象,在操作对象库中增加或复用操作对象并保存操作对象name、id、type等属性信息用于唯一识别该操作对象。例如,获取待实现自动化用例的web页面操作对象的name、id等属性信息,web页面操作对象的name、id等属性可以唯一定位该操作对象,可以根据捕获的对象,在组件库中关联到对应的组件。组件库存储该组件关联的操作对象信息和脚本等。在本发明中,操作对象是平台开发人员编写操作对象脚本模板保存在操作对象脚本库中,支持自定义配置。

再次,介绍根据操作对象的属性信息,解析操作对象的后台业务逻辑,根据自动化测试用例生成框架,形成操作对象之间的关联关系。

具体地,如图3所示,例如可以根据web页面操作对象的name、id等属性信息,解析页面后台业务逻辑,根据自动化测试用例生成框架中预先存储的生成自动化用例的操作对象和操作对象的组件的关联关系形成操作对象之间关系拓扑图。该逻辑关系有多种,例如:物理逻辑关系(某一对象中包括另一对象)和业务逻辑关系(某一控件的值与另一控件的值相同)等。

第四,介绍根据测试要求计算拓扑图中业务的核心处理测试路径。

具体地,如图3所示,计算拓扑图中业务的核心处理路径。核心处理测试路径包括对象以及操作对象之间的测试顺序。不同的测试要求(例如:测试目的、测试时间、测试资源)对测试用例确定影响较大。例如,如果测试要求为测试web页面所涉及的所有控件是否满足开发要求,此时需要对操作对象关系拓扑图中所有控件进行测试。具体包括业务关系是否满足要求、位置关系是否满足要求等。如果测试要求为测试web页面所涉及的业务1的控件之间是否满足业务1的要求,此时仅需对象关系拓扑图中部分控件进行测试。因此,在得到对象关系拓扑图后,需要根据测试要求确定核心处理测试路径,以用最少的资源达到测试目的。

最后,介绍按照核心处理测试路径中的顺序将选择出操作对象组件组装成自动化测试用例。

如图3、图4所示,在得到核心处理测试路径后,添加测试数据就生成自动化用例脚本。生成的组件被测试用例引用,可以选择与核心处理测试路径所涉及的操作对象对应的测试用例。根据测试用例的操作步骤依次关联相应的一个或多个组件,基于核心处理测试路径中的测试顺序将选择出对象组件组装成新的可以满足逻辑关系的测试用例。由于业务变更导致系统界面、库表等发生变化时,只需要将对应对象或组件修改或替换即可,无需重构所有相关用例。用例脚本需要依赖自动化任务发起时生成的json文件调用,完成自动化测试。

为进一步体现本发明提供的自动化测试用例生成方法的优越性,本发明还提供一种应用上述方法的自动化测试用例生成装置,如图5所示,该装置包括:自动化测试用例框架生成单元,用于搭建自动化测试用例生成框架,关联生成自动化用例的操作对象和操作对象的组件;属性信息获取单元,用于获取实现自动化测试用例的操作对象的属性信息;解析单元,用于根据操作对象的属性信息,解析操作对象的后台业务逻辑,根据自动化测试用例生成框架,形成操作对象之间的关联关系;核心处理测试路径获取单元,用于根据测试要求计算拓扑图中业务的核心处理测试路径;自动化测试用例生成单元,用于按照核心处理测试路径中的顺序将选择出操作对象的组件组装成自动化测试用例。下面对本发明和提供的自动化测试用例生成装置展开详细的说明,本发明提供的自动化测试用例生成装置的工作过程与上述的自动化测试用例生成方法大致相同,请参考自动化测试用例生成方法处理流程,再此不再一一赘述了。

在本发明中,自动化测试用例框架生成单元包括:以自动化测试用例脚本最小可操作对象为最小的静态元素,由操作对象与操作对象的行为形成组件,再由操作对象的组件拼装成用例,形成一个结构化的用例开发框架。本发明以脚本最小可操作对象为最小的静态元素,由对象与行为形成组件,再由组件拼装成用例,搭建了一套操作对象->组件->用例的结构化开发框架。后期某个对象或组件发生变化时,只需要将对象或组件替换即可,无需重构所有相关用例脚本。在本发明中,将组件最小化到对一个对象或多个常用对象的组合操作,可提升组件的复用程度,降低操作对象变化带来的组件维护成本。

本发明提供的自动化测试用例生成装置,还包括:组件脚本生成单元,用于在确定操作对象后,按操作对象顺序和类别关联对应的脚本模板,并在脚本中注入对象属性信息生成组件脚本。在本发明中,组件是对对象的操作行为,将组件最小化到对一个对象或多个常用对象的组合操作,可提升组件的复用程度,降低操作对象变化带来的组件维护成本。在组件库中增加或复用组件,根据组件关联的操作对象类型,从脚本模板库中读入脚本到组件库中,并在脚本中注入对象属性name信息,生成组件对应的脚本。对每类操作对象的行为操作是统一的,所以针对不同类型的操作对象,制定对应的操作对象脚本,如下操作对象脚本模板定义示例。在确定操作对象后,后台自动按对象顺序和类别关联对应的脚本模板,并在脚本中注入对象name、id等属性信息,组成组件脚本。

综上,本发明提供的自动化测试用例生成方法和装置,利用测试用例开发和脚本生成方法,实现测试用例自动生成,大大提升了用例开发维护效率,开发要求程度大大降低,尤其在敏捷开发测试过程中,可灵活有效的得到应用。本发明的测试用例的自动化生成,减少了手工用例的分析成本,有效提升用例测试深度和广度。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1