一种测试方法、装置及测试设备与流程

文档序号:16811361发布日期:2019-02-10 13:41阅读:131来源:国知局
一种测试方法、装置及测试设备与流程

本申请涉及互联网领域,尤其涉及一种测试方法、装置及测试设备。



背景技术:

自动化测试是将以人为驱动的测试行为转化为机器执行的一种过程。通常情况下,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。自动化测试可以通过使用自动测试工具,自动化的完成功能测试和性能测试,以减少测试人员的工作。其中,功能测试包括测试所有功能(如支付流程,注册流程等)是否可用,是否出现bug现象等,性能测试包括验证cpu(centralprocessingunit,中央处理器)、内存、网络、电量、流量的性能指标等。

在目前的自动化测试过程中,为了实现自动化测试,则会涉及到如下过程:测试人员编写自然语言的测试用例;测试人员根据该测试用例编写测试代码。然后,就可以利用该测试代码执行自动化测试流程,以实现自动化测试。

但是,上述“测试人员编写测试用例”、“测试人员编写测试代码”的过程,均需要测试人员手工完成,工作量较大,自动化测试的效率很低。



技术实现要素:

本申请提供一种测试方法,所述方法包括:

获取第一测试用例;

查询映射表,得到与所述第一测试用例对应的测试代码;其中,所述映射表用于记录测试用例与测试代码的对应关系;

利用所述测试代码进行测试。

本申请提供一种测试方法,所述方法包括:

采集用户访问数据,并根据所述用户访问数据确定第二测试用例;

将所述第二测试用例转换成测试代码;

在映射表中记录所述第二测试用例与所述测试代码的对应关系。

本申请提供一种测试方法,所述方法包括:

获取第三测试用例、以及与所述第三测试用例对应的测试代码;

在映射表中记录所述第三测试用例与所述测试代码的对应关系。

本申请提供一种测试装置,所述装置包括:

获取模块,用于获取第一测试用例,查询映射表,得到与所述第一测试用例对应的测试代码;所述映射表用于记录测试用例与测试代码的对应关系;

测试模块,用于利用所述测试代码进行测试。

本申请提供一种测试装置,所述装置包括:

确定模块,用于采集用户访问数据,根据用户访问数据确定第二测试用例;

转换模块,用于将所述第二测试用例转换成测试代码;

记录模块,用于在映射表中记录第二测试用例与该测试代码的对应关系。

本申请提供一种测试装置,所述装置包括:

获取模块,用于获取第三测试用例、与第三测试用例对应的测试代码;

记录模块,用于在映射表中记录第三测试用例与该测试代码的对应关系。

本申请提供一种测试设备,所述测试设备包括:处理器,用于获取第一测试用例;查询映射表,得到与所述第一测试用例对应的测试代码;其中,所述映射表用于记录测试用例与测试代码的对应关系;利用所述测试代码进行测试。

本申请提供一种测试设备,所述测试设备包括:处理器,用于采集用户访问数据,并根据所述用户访问数据确定第二测试用例;将所述第二测试用例转换成测试代码,在映射表中记录所述第二测试用例与所述测试代码的对应关系。

本申请提供一种测试设备,所述测试设备包括:处理器,用于获取第三测试用例、以及与所述第三测试用例对应的测试代码;在映射表中记录所述第三测试用例与所述测试代码的对应关系。

基于上述技术方案,本申请实施例中,在获得测试用例后,可以通过查询映射表,得到与该测试用例对应的测试代码,并利用该测试代码进行测试。上述方式可以自动生成测试代码,而不用测试人员手工编写测试代码,从而减少测试人员的工作量,避免测试人员的大量重复工作,提高测试的效率,减少测试工作量,节省了人工编写测试代码的时间。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中所记载的一些实施例,对于本领域的普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。

图1a是本申请一种实施方式中的测试用例的示例;

图1b是本申请一种实施方式中的测试代码的示例;

图2a-图2c是本申请一种实施方式中的测试方法的流程图;

图3是本申请一种实施方式中的测试装置的结构图;

图4是本申请另一种实施方式中的测试装置的结构图;

图5是本申请另一种实施方式中的测试装置的结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例提出一种测试方法,该方法可以应用于测试设备,该测试设备可以是pc(personalcomputer,个人计算机)、笔记本电脑、移动终端、终端设备、服务器、数据平台、电商平台,对此测试设备的类型不做限制。

在一个例子中,该测试设备用于进行测试(如自动化测试,后续以测试为例进行说明),而为了完成测试,需要使用测试用例和测试代码。

其中,测试用例可以包括但不限于:基于文字形式编写的测试用例;或者,基于语音形式编写的测试用例;或者,基于图形形式编写的测试用例。当然,测试用例还可以是其它形式,对此不做限制。

如图1a所示,为基于文字形式编写的测试用例的示例,针对基于语音形式编写的测试用例、基于图形形式编写的测试用例,其内容与图1a类似,其区别在于:图1a中的测试用例是使用文字,而基于语音形式编写的测试用例,其测试用例是使用语音,而基于图形形式编写的测试用例,其测试用例是使用图形。

参见图1a所示,测试用例是一个使用自然语言编辑,能够被测试人员理解,但是,测试设备无法直接基于测试用例进行测试,而是需要先将测试用例转换成测试代码,然后,测试设备才能够基于测试代码进行测试。

测试代码又可以称为测试脚本,是根据测试用例得到的代码,测试设备能够基于测试代码进行测试。参见图1b所示,是测试代码的一个示例。图1b所示的测试代码,是与图1a所示的测试用例相对应的。

在传统方式中,针对测试方法,需要测试人员手工编写测试用例,并手工编写测试代码,然后,执行该测试代码。在上述方式下,测试人员的工作量较大,测试的效率很低。

针对上述问题,考虑到测试用例和测试代码具有关联性,每个测试用例都是一些操作的集合,而这些操作都与测试代码一一对应。因此,本申请实施例中,可以通过查询映射表(用于记录测试用例与测试代码的对应关系),得到与测试用例对应的测试代码,然后,利用测试代码进行测试。具体的,在测试方法中,可以将测试用例转换成测试代码,即根据人类语言(包括但不限于文字形式、语音形式、图形形式等)编写的测试用例,自动生成测试代码,不用测试人员手工编写测试代码,避免大量人工的重复工作,显著减少测试工作量。

本申请实施例中,为了完成测试,需要生成映射表,该映射表用于记录测试用例与测试代码的对应关系。然后,基于映射表查询到测试代码,并利用测试代码进行测试。针对生成映射表的过程,可以参见图2a和图2b所示,针对基于映射表查询到测试代码的过程,可以参见图2c所示。

参见图2a所示,为生成映射表的一个示例,该方法可以包括以下步骤:

步骤211,获取用户访问数据,并根据该用户访问数据确定第二测试用例。其中,为了区分方便,可以将映射表生成过程中的测试用例称为第二测试用例。

在一个例子中,在用户访问网络的过程中,会产生用户访问数据(也可以称为基础源数据),各实体可以存储这些用户访问数据,且测试设备可以从该实体获取到用户访问数据。其中,向测试设备提供用户访问数据的实体可以包括但不限于以下之一或者任意组合:adps(automaticdataprocessingsystem,自动数据处理系统)、数据库、ut(userterminal,用户终端)、crashlog(崩溃日志)、wdm(用户路径)、服务端等,对此向测试设备提供用户访问数据的实体不做限制,只要测试设备能够从该实体获取到用户访问数据即可。

在一个例子中,该用户访问数据可以包括但不限于:页面信息、控件信息和操作信息,而页面信息、控件信息和操作信息,共同组成用户的真实使用路径(即网络访问路径)。当然,该用户访问数据还可以包括其它内容,如国家、地区、时间(忙时/闲时)、人群特征(性别、年龄、偏好、职业类型)、活动(大促、小促、日常活动)、行业等,对此用户访问数据的内容不做限制,后续以用户访问数据包括页面信息、控件信息和操作信息为例进行说明。

在一个例子中,第二测试用例也可以包括但不限于:页面信息、控件信息和操作信息,基于此,针对“根据该用户访问数据确定第二测试用例”的过程,可以包括但不限于如下方式:从该用户访问数据中解析出页面信息、控件信息和操作信息,并根据解析出的页面信息、控件信息和操作信息确定第二测试用例,即该第二测试用例可以包括解析出的页面信息、控件信息和操作信息。

例如,假设从用户访问数据中解析出页面信息“首页”、控件信息“交易(deals)”、操作信息“点击”时,确定第二测试用例为“首页、交易、点击”。又例如,从用户访问数据中解析出页面信息“交易列表(dealslist)”、控件信息“滚动视图(scrollview)”、操作信息“滑动”时,确定第二测试用例为“交易列表、滚动视图、滑动”。又例如,从用户访问数据中解析出页面信息“交易列表”、控件信息“表格(cell)”、操作信息“点击”时,确定第二测试用例为“交易列表、表格、点击”。又例如,从用户访问数据中解析出页面信息“交易细节(dealsdetail)”、控件信息“按钮(button)”、操作信息“点击”时,确定第二测试用例为“交易细节、按钮、点击”。又例如,从用户访问数据中解析出页面信息“搜索”、控件信息“搜索(search)”、操作信息“输入:string”时,确定第二测试用例为“搜索、搜索、输入string”。又例如,从用户访问数据中解析出页面信息“搜索”、控件信息“进入(enter)”、操作信息“等待”时,确定第二测试用例为“搜索、进入、等待”。又例如,从用户访问数据中解析出页面信息“购物车”、控件信息“商品a”、操作信息“存在”时,确定第二测试用例为“购物车、商品a、存在”。又例如,从用户访问数据中解析出页面信息“订单列表”、控件信息“第一个列表”、操作信息“点击”时,确定第二测试用例为“订单列表、第一个列表、点击”。又例如,从用户访问数据中解析出页面信息“搜索列表”、控件信息“第一个商品”、操作信息“长按”时,确定第二测试用例为“搜索列表、第一个商品、长按”。又例如,从用户访问数据中解析出页面信息“首页”、控件信息“商品列表”、操作信息“拖动”时,确定第二测试用例为“首页、商品列表、拖动”。

当然,上述只是给出了第二测试用例的几个示例,实际应用中并不局限于此,针对获取到的每个用户访问数据,均可以采用上述方式确定第二测试用例。

在上述过程中,为了从用户访问数据中解析出页面信息、控件信息和操作信息,还可以采用数据挖掘等方式,从线上的用户访问数据中分析出页面信息、控件信息和操作信息等内容,对此数据挖掘的方式不做限制,只要能够从线上的用户访问数据中分析出页面信息、控件信息和操作信息等内容即可。

步骤212,将该第二测试用例转换成测试代码。

针对“将该第二测试用例转换成测试代码”的过程,可以包括但不限于:

方式一、确定该第二测试用例对应的测试类型和测试参数,并查询该测试类型对应的转换策略,并通过该转换策略将该测试参数转换成测试代码。

针对“确定第二测试用例对应的测试类型”的过程,可以根据第二测试用例的页面信息确定测试类型,例如,当页面信息是“首页”时,则测试类型可以是首页类型,当页面信息是“购物车”时,则测试类型可以是购物车类型。

针对“确定第二测试用例对应的测试参数”的过程,第二测试用例的页面信息可以包括页面参数,如www.xxx.com,其表示首页地址是www.xxx.com;如www.xxx.com/aaa/bbb,其表示交易列表地址是www.xxx.com/aaa/bbb。第二测试用例的控件信息可以包括控件参数,如针对“滚动视图”的控件参数可以包括:滚动速度、滚动方向(如垂直方向滚动或者水平方向滚动)、滚动高度、滚动布局等。第二测试用例的操作信息可以包括操作参数,如针对“滑动”的操作参数可以包括:滑动前的坐标(x、y轴坐标)、滑动后的坐标(x、y轴坐标)、滑动时间(从触摸动作开始到触摸动作离开的时间)、滑动速度等。

综上所述,可以将页面参数、控件参数和操作参数确定为测试参数。

针对“查询该测试类型对应的转换策略,并通过该转换策略将该测试参数转换成测试代码”的过程,可以为每个测试类型配置对应的转换策略,如为“首页类型”配置转换策略a,为“购物车类型”配置转换策略b。其中,转换策略a用于将“首页类型”的测试参数转换成测试代码,对此转换策略a的内容不做限制,只要能够将“首页类型”的测试参数转换成测试代码即可;转换策略b用于将“购物车类型”的测试参数转换成测试代码,对此转换策略b的内容不做限制,只要能够将“购物车类型”的测试参数转换成测试代码即可。基于此,通过转换策略a可以将“首页类型”的测试参数转换成测试代码,通过转换策略b可以将“购物车类型”的测试参数转换成测试代码。

方式二、可以确定页面信息对应的页面类型和页面参数,并查询该页面类型对应的页面转换策略,并通过该页面转换策略将该页面参数转换成页面子代码。可以确定控件信息对应的控件类型和控件参数,并查询该控件类型对应的控件转换策略,并通过该控件转换策略将该控件参数转换成控件子代码。可以确定操作信息对应的操作类型和操作参数,并查询该操作类型对应的操作转换策略,并通过该操作转换策略将该操作参数转换成操作子代码。进一步的,可以将该页面子代码、该控件子代码、该操作子代码组合成测试代码。

针对“确定页面信息对应的页面类型”的过程,当页面信息是“首页”时,页面类型可以是首页类型,当页面信息是“购物车”时,页面类型可以是购物车类型。针对“确定页面信息对应的页面参数”的过程,第二测试用例的页面信息可以包括页面参数,如www.xxx.com,其表示首页地址是www.xxx.com;如www.xxx.com/aaa/bbb,其表示交易列表地址是www.xxx.com/aaa/bbb。

针对“查询该页面类型对应的页面转换策略,并通过该页面转换策略将该页面参数转换成页面子代码”的过程,测试设备可以获取并记录页面类型与页面转换策略的对应关系,例如,为每个页面类型配置对应的页面转换策略,测试设备可以在数据库存储页面类型与页面转换策略的对应关系。例如,为“首页类型”配置页面转换策略1,为“购物车类型”配置页面转换策略2。其中,页面转换策略1用于将“首页类型”的页面参数转换成页面子代码,对此页面转换策略1的内容不做限制,只要能够将“首页类型”的页面参数转换成页面子代码即可;页面转换策略2用于将“购物车类型”的页面参数转换成页面子代码,对此页面转换策略2的内容不做限制,只要能够将“购物车类型”的页面参数转换成页面子代码即可。基于此,在得到页面参数后,若该页面参数是“首页类型”的页面参数,则可以通过页面转换策略1将“首页类型”的页面参数转换成页面子代码,或者,若该页面参数是“购物车类型”的页面参数,则可以通过页面转换策略2将“购物车类型”的页面参数转换成页面子代码。

其中,每个页面类型可以对应一个页面转换策略,如针对“首页类型”的页面转换策略1的示例可以为rrrrr:rrrrr,“rrrrr”表示固定部分,即与页面参数无关的部分,rrrrr表示可变部分,即与页面参数有关的部分。例如,当页面参数是www.xxx.com时,则页面转换策略1可以将该页面参数转换成页面子代码rrrrr:www.xxx.com;当页面参数是www.yyy.com时,则页面转换策略1可以将该页面参数转换成页面子代码rrrrr:www.yyy.com,以此类推。

针对“确定控件信息对应的控件类型”的过程,当控件信息是“滚动视图”时,控件类型可以是滚动视图类型,当控件信息是“按钮”时,控件类型可以是按钮类型。针对“确定控件信息对应的控件参数”的过程,第二测试用例的控件信息可以包括控件参数,如针对“滚动视图”的控件参数可以包括:滚动速度、滚动方向(如垂直方向滚动或水平方向滚动)、滚动高度、滚动布局等。

针对“查询该控件类型对应的控件转换策略,并通过该控件转换策略将该控件参数转换成控件子代码”的过程,测试设备可以获取并记录控件类型与控件转换策略的对应关系,如为每个控件类型配置对应的控件转换策略,测试设备可以在数据库存储控件类型与控件转换策略的对应关系。例如,为“滚动视图类型”配置控件转换策略1,为“按钮类型”配置控件转换策略2。控件转换策略1用于将“滚动视图类型”的控件参数转换成控件子代码,对此控件转换策略1的内容不做限制,只要能够将“滚动视图类型”的控件参数转换成控件子代码即可;控件转换策略2用于将“按钮类型”的控件参数转换成控件子代码,对此控件转换策略2的内容不做限制,只要能够将“按钮类型”的控件参数转换成控件子代码即可。基于此,在得到控件参数后,若该控件参数是“滚动视图类型”的控件参数,则可以通过控件转换策略1将“滚动视图类型”的控件参数转换成控件子代码,或者,若该控件参数是“按钮类型”的控件参数,则可以通过控件转换策略2将“按钮类型”的控件参数转换成控件子代码。

其中,每个控件类型可以对应一个控件转换策略,如针对“滚动视图类型”的控件转换策略1的示例可以为ttttt:ttttt,“ttttt”表示固定部分,即与控件参数无关的部分,ttttt表示可变部分,即与控件参数有关的部分。例如,当控件参数是abcd时,则控件转换策略1可以将该控件参数转换成控件子代码ttttt:abcd,abcd表示滚动速度、滚动方向、滚动高度、滚动布局等;当控件参数是efgh时,控件转换策略1可以将该控件参数转换成控件子代码ttttt:efgh,efgh表示滚动速度、滚动方向、滚动高度、滚动布局等,以此类推。

针对“确定操作信息对应的操作类型”的过程,当操作信息是“滑动”时,操作类型可以是滑动类型,当操作信息是“点击”时,操作类型可以是点击类型。针对“确定操作信息对应的操作参数”的过程,第二测试用例的操作信息包括操作参数,如针对“滑动”的操作参数可以包括:滑动前的坐标、滑动后的坐标、滑动时间(从触摸动作开始到触摸动作离开的时间)、滑动速度等。

针对“查询该操作类型对应的操作转换策略,并通过该操作转换策略将该操作参数转换成操作子代码”的过程,测试设备可以获取并记录操作类型与操作转换策略的对应关系,例如,可以为每个操作类型配置对应的操作转换策略,测试设备可以在数据库存储操作类型与操作转换策略的对应关系。例如,为“滑动类型”配置操作转换策略1,并为“点击类型”配置操作转换策略2。其中,操作转换策略1用于将“滑动类型”的操作参数转换成操作子代码,对此操作转换策略1的内容不做限制,只要能够将“滑动类型”的操作参数转换成操作子代码即可;操作转换策略2用于将“点击类型”的操作参数转换成操作子代码,对此操作转换策略2的内容不做限制,只要能够将“点击类型”的操作参数转换成操作子代码即可。基于此,在得到操作参数之后,若该操作参数是“滑动类型”的操作参数,则可以通过该操作转换策略1将“滑动类型”的操作参数转换成操作子代码,或者,若该操作参数是“点击类型”的操作参数,则可以通过该操作转换策略2将“点击类型”的操作参数转换成操作子代码。

其中,每个操作类型可以对应一个操作转换策略,如针对“滑动类型”的操作转换策略1为kkkkk:kkkkk,“kkkkk”表示固定部分,即与操作参数无关的部分,kkkkk表示可变部分,即与操作参数有关的部分。如当操作参数是lmn时,则操作转换策略1可以将该操作参数转换成操作子代码kkkkk:lmn,lmn表示滑动前的坐标、滑动后的坐标、滑动时间、滑动速度等;当操作参数是xyz时,则操作转换策略1可以将该操作参数转换成操作子代码kkkkk:xyz,xyz表示滑动前的坐标、滑动后的坐标、滑动时间、滑动速度等,以此类推。

经过上述处理,就可以得到页面子代码、控件子代码、操作子代码,然后,可以将该页面子代码、该控件子代码、该操作子代码组合成测试代码。

步骤213,在映射表中记录第二测试用例与测试代码的对应关系。

在一个例子中,针对“在映射表中记录第二测试用例与测试代码的对应关系”的过程,可以包括但不限于如下方式:方式一、在映射表中记录第二测试用例(包括页面信息、控件信息和操作信息)与测试代码(包括页面子代码、控件子代码、操作子代码)的对应关系。方式二、在映射表中记录页面信息(包括页面参数)与页面子代码的对应关系、控件信息(包括控件参数)与控件子代码的对应关系、操作信息(包括操作参数)与操作子代码的对应关系。

参见图2b所示,为生成映射表的另一个示例,该方法可以包括以下步骤:

步骤221,获取第三测试用例、以及与第三测试用例对应的测试代码。其中,为了区分方便,可以将本映射表生成过程中的测试用例称为第三测试用例。

在历史数据库中,可以存储测试人员编写的大量测试用例以及测试代码,测试设备可以从历史数据库中获取到测试人员编写的测试用例(后续称为第三测试用例),并从历史数据库中获取到与该第三测试用例对应的测试代码。

步骤222,在映射表中记录该第三测试用例与该测试代码的对应关系。

在一个例子中,针对“在映射表中记录该第三测试用例与该测试代码的对应关系”的过程,可以包括但不限于如下方式:测试设备确定该第三测试用例对应的第一特征值,并在映射表中记录该第一特征值与该测试代码的对应关系。或者,测试设备确定该第三测试用例对应的第一特征值、该测试代码对应的第二特征值,并在映射表中记录该第一特征值与该第二特征值的对应关系,以及,在映射表中记录该第二特征值与该测试代码的对应关系。

在一个例子中,针对“测试设备确定该第三测试用例对应的第一特征值”的过程,可以在测试设备上配置第一解析策略,该第一解析策略用于从第三测试用例中解析出第一特征值,对此第一解析策略不做限制,只要能够从第三测试用例中解析出第一特征值即可,且第一特征值可以为第三测试用例中的操作。

例如,第一特征值可以包括配置规则类的特征值和操作规则类的特征值。

其中,配置规则类的特征值可以包括以下内容之一或者任意组合:测试用例名称:用于表示测试用例的名称。创建时间:用于表示测试用例的生成时间。测试用例简述:用于对测试用例进行概述,如入口、测试数据、登录状态等。核心检测点:用于表示测试用例的核心检测点,以突出测试用例的重点。执行步骤:即具体的执行步骤,该执行步骤又可以划分为类型(用于区分测试代码的编写语言,如iosapp、androidapp、website等)、语言信息、国家信息、币种信息、登录状态信息、注释等。当然,上述过程只是给出了配置规则类的第一特征值的几个示例,对此配置规则类的第一特征值的内容不做限制。

其中,操作规则类的特征值可以包括以下内容之一或者任意组合:点击某个名称的控件[控件名称];去到某个名称的页面[页面名称];判断某个名称的控件是否存在[控件名称];输入框[名字]中输入字符串(****);选择列表中的第几个等待[*]秒;调用某方法[方法名],参数(参数一、参数二、参数三);引入某个文件,文件路径[文件地址];拖动某个元素[元素名称];长按某个元素[元素名称];开始监听客户端-服务端之间请求;停止监听客户端-服务端之间请求;封装成[函数]函数;引入[文件名]文件。当然,上述过程只是给出了操作规则类的第一特征值的几个示例,对此操作规则类的第一特征值的内容不做限制。

针对“测试设备确定该测试代码对应的第二特征值”的过程,可以在测试设备上配置第二解析策略,该第二解析策略用于从测试代码中解析出第二特征值,对此第二解析策略的内容不做限制,只要能够从测试代码中解析出第二特征值即可,且第二特征值可以为测试代码中的操作。对于第二特征值,也可以包括配置规则类的特征值和操作规则类的特征值,在此不再赘述。

上述图2a和图2b所示的流程,给出了两种生成映射表的方式,基于此映射表,本申请实施例中提出的测试方法,其流程可以参见图2c所示。

步骤231,获取第一测试用例。其中,为了区分方便,可以将映射表生成之后,针对测试过程中的测试用例称为第一测试用例。

针对图2a所示的流程,获取第一测试用例的过程可以包括:测试人员编写第一测试用例,并将该第一测试用例提供给测试设备。或者,测试设备还可以根据业务需求,从第二测试用例的集合中选取部分第二测试用例,并将选取的第二测试用例组合成第一测试用例。例如,测试设备可以选取出第二测试用例1(如“首页、交易、点击”)、第二测试用例2(如“交易列表、滚动视图、滑动”)、第二测试用例3(如“交易列表、表格、点击”)、第二测试用例4(如“交易细节、按钮、点击”),并将选取的第二测试用例1、第二测试用例2、第二测试用例3和第二测试用例4组合成第一测试用例。

针对图2b所示的流程,则获取第一测试用例的过程可以包括:测试人员编写第一测试用例,并将该第一测试用例提供给测试设备。

在一个例子中,上述第二测试用例和第三测试用例可以为一个测试用例,而第一测试用例可以为多个测试用例的组合。进一步的,为了方便描述,以第一测试用例、第二测试用例和第三测试用例均为一个测试用例为例进行说明。

步骤232,查询映射表,得到与该第一测试用例对应的测试代码。

其中,该映射表用于记录测试用例与测试代码的对应关系,如采用图2a/2b所示的流程,在映射表中记录测试用例与测试代码的对应关系。

在一个例子中,针对“查询映射表,得到与该第一测试用例对应的测试代码”的过程,还可以包括但不限于如下情况:

情况一、当采用图2a所示的流程生成映射表时,如果在映射表中记录第二测试用例(包括页面信息、控件信息和操作信息)与测试代码(包括页面子代码、控件子代码、操作子代码)的对应关系,则:可以直接通过该第一测试用例查询映射表,找到与该第一测试用例匹配的第二测试用例,而该第二测试用例对应的测试代码,也就是与该第一测试用例对应的测试代码。

如果在映射表中记录页面信息(包括页面参数)与页面子代码的对应关系、控件信息(包括控件参数)与控件子代码的对应关系、操作信息(包括操作参数)与操作子代码的对应关系,则:可以先确定第一测试用例对应的页面信息、控件信息和操作信息;然后,通过第一测试用例对应的页面信息查询映射表,得到与该页面信息对应的页面子代码;通过第一测试用例对应的控件信息查询映射表,得到与该控件信息对应的控件子代码;通过第一测试用例对应的操作信息查询映射表,得到与该操作信息对应的操作子代码;然后,测试设备可以将得到的页面子代码、控件子代码、操作子代码组合成测试代码。

在一个例子中,针对“确定第一测试用例对应的页面信息、控件信息和操作信息”的过程,与图2a所示的流程中,确定第二测试用例对应的页面信息、控件信息和操作信息的过程类似,在此不再重复赘述。此外,由于映射表中记录有页面信息与页面子代码的对应关系,因此,通过第一测试用例对应的页面信息查询映射表时,可以得到与该页面信息对应的页面子代码。由于映射表中记录有控件信息与控件子代码的对应关系,因此,通过第一测试用例对应的控件信息查询映射表时,可以得到与该控件信息对应的控件子代码。由于映射表中记录有操作信息与操作子代码的对应关系,因此,通过第一测试用例对应的操作信息查询映射表时,可以得到与该操作信息对应的操作子代码。

情况二、当采用图2b所示的流程生成映射表时,如果在映射表中记录第三测试用例对应的第一特征值与测试代码的对应关系,则:可以确定第一测试用例对应的第三特征值,并通过该第三特征值查询映射表,得到与该第三特征值对应的测试代码。例如,从映射表中找到与该第三特征值匹配的第一特征值,而该第一特征值对应的测试代码,也就是第三特征值对应的测试代码。

如果在映射表中记录第一特征值与第二特征值的对应关系,并在映射表中记录第二特征值与测试代码的对应关系,则:可以确定该第一测试用例对应的第三特征值,并通过该第三特征值查询映射表,得到与该第三特征值对应的第二特征值,然后通过该第二特征值查询映射表,得到与该第二特征值对应的测试代码。例如,先从映射表中找到与该第三特征值匹配的第一特征值,而该第一特征值对应的第二特征值,也就是该第三特征值对应的第二特征值,然后,从映射表中找到与该第二特征值对应的测试代码,该测试代码也就是第三特征值对应的测试代码,即得到与第一测试用例对应的测试代码。

其中,针对“确定第一测试用例对应的第三特征值”的过程,与图2b所示的流程中,确定第三测试用例对应的第一特征值的过程类似,在此不再赘述。

步骤233,利用得到的测试代码进行测试。

其中,在得到测试代码后,就可以利用该测试代码进行测试,如功能测试、专项测试、回归测试等,对此测试过程不做限制。

基于上述技术方案,本申请实施例中,在获得测试用例后,可以通过查询映射表,得到与该测试用例对应的测试代码,并利用该测试代码进行测试。上述方式可以自动生成测试代码,而不用测试人员手工编写测试代码,从而减少测试人员的工作量,避免测试人员的大量重复工作,提高测试的效率,减少测试工作量,节省了人工编写测试代码的时间。

在上述实施例中,测试用例和测试代码的语言,可以根据实际需要选择,对此测试用例和测试代码的语言不做限制,二者可以相同,也可以不同。

在上述实施例中,测试用例和测试代码可以是针对web端的测试用例和测试代码,可以是针对ios系统的测试用例和测试代码,还可以是针对安卓系统的测试用例和测试代码,对此测试用例和测试代码的类型不做限制。

基于上述技术方案,可以提高编写的效率,使得测试人员将更多的时间投入到测试用例的设计上,而不用将更多的时间投入到测试代码的编写过程。此外,测试代码的编写不是功能或者产品开发出来后才进行,而是提前到开发阶段,在不用重新编写测试代码的情况下,就可以获取到测试代码,节省了大量人工编写测试代码的时间。此外,可以通过数据挖掘的方式,挖掘线上用户的真实使用路径(用户访问数据),根据用户访问数据生成测试用例,然后将该测试用例转换成测试代码,从而实现测试代码的自动生成。

基于上述技术方案,测试代码的扩展性强,避免由于测试框架的改变或者编写语言的不同,而产生大量测试代码。可以适用于多语言场景;适用于转换各类无线语言(如ios、android等);适用于多国语言场景;测试用例的编写方式不限于自然语言,还可以是语音、图形、机器学习的用户习惯结果等;测试用例的语言可以任意设置,如英语、俄语、葡语等,没有语种限制。

测试代码的易用性:解决测试人员需要有编程语言基础,编写成本较大的问题,测试人员不用掌握复杂的编程语言(如object-c、java、javascript等)。测试代码的规范性:统一的测试用例编写模版,统一风格,增加测试用例的可读性。简化测试流程:将测试用例的编写和测试代码的编写合并,将测试用例沉淀下来,作为手工测试中的参考、自动化执行的范本。便于维护测试用例:可以快速适应需求的变更,如果需求有变更,只需要维护自然语言的测试用例即可。解决测试代码的滞后性问题:测试代码的获取,可以提前到开发阶段,同测试用例一起编写,且生成的测试代码可以自动触发执行。

基于上述技术方案,通过对线上用户行为数据进行分析,给出自动化执行的组合以及频率,从而可以灵活的实现按国家、时间等场景来执行不同测试用例,而不是由用户编写测试用例,可以很好的结合线上用户的行为习惯。

基于与上述方法同样的申请构思,本申请实施例还提供一种测试装置,如图3所示,为本申请提出的测试装置的结构图,所述装置包括:

获取模块301,用于获取第一测试用例,查询映射表,得到与所述第一测试用例对应的测试代码;所述映射表用于记录测试用例与测试代码的对应关系;

测试模块302,用于利用所述测试代码进行测试。

在一个例子中,所述测试装置还包括(在图中未体现):

确定模块,用于采集用户访问数据,并根据所述用户访问数据确定第二测试用例;其中,所述用户访问数据包括:页面信息、控件信息和操作信息;所述第二测试用例包括:所述页面信息、所述控件信息和所述操作信息;转换模块,用于将所述第二测试用例转换成测试代码;记录模块,用于在映射表中记录所述第二测试用例与转换的测试代码的对应关系。

所述转换模块,具体用于在将所述第二测试用例转换成测试代码的过程中,确定所述页面信息对应的页面类型和页面参数,查询所述页面类型对应的页面转换策略,通过所述页面转换策略将所述页面参数转换成页面子代码;确定所述控件信息对应的控件类型和控件参数,查询所述控件类型对应的控件转换策略,通过所述控件转换策略将所述控件参数转换成控件子代码;确定所述操作信息对应的操作类型和操作参数,查询所述操作类型对应的操作转换策略,通过所述操作转换策略将所述操作参数转换成操作子代码;将所述页面子代码、所述控件子代码、所述操作子代码组合成测试代码;所述记录模块,具体用于在映射表中记录所述第二测试用例与转换的测试代码的对应关系的过程中,在映射表中记录所述页面信息与所述页面子代码的对应关系、所述控件信息与所述控件子代码的对应关系、所述操作信息与所述操作子代码的对应关系。

在一个例子中,所述获取模块301,具体用于在查询映射表,得到与所述第一测试用例对应的测试代码的过程中,确定所述第一测试用例对应的页面信息、控件信息和操作信息;然后,通过第一测试用例对应的页面信息查询映射表,得到对应的页面子代码;然后,通过第一测试用例对应的控件信息查询映射表,得到对应的控件子代码;然后,通过第一测试用例对应的操作信息查询映射表,得到对应的操作子代码;然后,将得到的所述页面子代码、所述控件子代码、所述操作子代码组合成测试代码。

在一个例子中,所述获取模块301,还用于获取第三测试用例、与所述第三测试用例对应的测试代码;确定模块,还用于确定所述第三测试用例对应的第一特征值;记录模块,还用于在映射表中记录所述第一特征值与所述测试代码的对应关系;或者,所述获取模块301,还用于获取第三测试用例、与所述第三测试用例对应的测试代码;所述确定模块,还用于确定所述第三测试用例对应的第一特征值、所述测试代码对应的第二特征值;所述记录模块,还用于在所述映射表中记录所述第一特征值与所述第二特征值的对应关系,并在所述映射表中记录所述第二特征值与所述测试代码的对应关系。

基于与上述方法同样的申请构思,本申请实施例还提供一种测试装置,如图4所示,为本申请提出的测试装置的结构图,所述装置包括:

确定模块401,用于采集用户访问数据,并根据所述用户访问数据确定第二测试用例;转换模块402,用于将所述第二测试用例转换成测试代码;记录模块403,用于在映射表中记录所述第二测试用例与所述测试代码的对应关系。

在一个例子中,所述用户访问数据包括:页面信息、控件信息和操作信息;所述第二测试用例包括:所述页面信息、所述控件信息和所述操作信息;所述转换模块402,具体用于在将所述第二测试用例转换成测试代码的过程中,确定所述页面信息对应的页面类型和页面参数,并查询所述页面类型对应的页面转换策略,通过所述页面转换策略将所述页面参数转换成页面子代码;确定所述控件信息对应的控件类型和控件参数,并查询所述控件类型对应的控件转换策略,通过所述控件转换策略将所述控件参数转换成控件子代码;确定所述操作信息对应的操作类型和操作参数,并查询所述操作类型对应的操作转换策略,通过所述操作转换策略将所述操作参数转换成操作子代码;将所述页面子代码、所述控件子代码、所述操作子代码组合成测试代码;所述记录模块403,具体用于在映射表中记录第二测试用例与该测试代码的对应关系的过程中,在映射表中记录所述页面信息与所述页面子代码的对应关系、所述控件信息与所述控件子代码的对应关系、所述操作信息与所述操作子代码的对应关系。

基于与上述方法同样的申请构思,本申请实施例还提供一种测试装置,如图5所示,为本申请提出的测试装置的结构图,所述装置包括:获取模块501,用于获取第三测试用例、与所述第三测试用例对应的测试代码;记录模块502,用于在映射表中记录所述第三测试用例与所述测试代码的对应关系。

所述记录模块502,具体用于在映射表中记录第三测试用例与该测试代码的对应关系的过程中,确定所述第三测试用例对应的第一特征值,并在映射表中记录所述第一特征值与所述测试代码的对应关系;或者,

确定所述第三测试用例对应的第一特征值、所述测试代码对应的第二特征值;在映射表中记录所述第一特征值与所述第二特征值的对应关系,并在所述映射表中记录所述第二特征值与所述测试代码的对应关系。

基于与上述方法同样的申请构思,本申请实施例还提供一种测试设备,所述测试设备包括处理器和存储器;其中:所述处理器,用于获取第一测试用例;查询映射表,得到与所述第一测试用例对应的测试代码;其中,所述映射表用于记录测试用例与测试代码的对应关系;利用所述测试代码进行测试。

基于与上述方法同样的申请构思,本申请实施例还提供一种测试设备,所述测试设备包括处理器和存储器;其中:所述处理器,用于采集用户访问数据,并根据所述用户访问数据确定第二测试用例;将所述第二测试用例转换成测试代码,并在映射表中记录所述第二测试用例与所述测试代码的对应关系。

基于与上述方法同样的申请构思,本申请实施例还提供一种测试设备,所述测试设备包括处理器和存储器;其中:所述处理器,用于获取第三测试用例、以及与所述第三测试用例对应的测试代码;在映射表中记录所述第三测试用例与所述测试代码的对应关系。

基于与上述方法同样的申请构思,本申请实施例中还提供一种机器可读存储介质,该机器可读存储介质可以应用于测试设备,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:获取第一测试用例;查询映射表,得到与所述第一测试用例对应的测试代码;其中,所述映射表用于记录测试用例与测试代码的对应关系;利用所述测试代码进行测试。

基于与上述方法同样的申请构思,本申请实施例中还提供一种机器可读存储介质,该机器可读存储介质可以应用于测试设备,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:采集用户访问数据,并根据所述用户访问数据确定第二测试用例;将所述第二测试用例转换成测试代码,在映射表中记录所述第二测试用例与所述测试代码的对应关系。

基于与上述方法同样的申请构思,本申请实施例中还提供一种机器可读存储介质,该机器可读存储介质可以应用于测试设备,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:获取第三测试用例、以及与所述第三测试用例对应的测试代码;在映射表中记录所述第三测试用例与所述测试代码的对应关系。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

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

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

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

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

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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