首页 / 专利库 / 软件 / 软件 / 软件自动化测试方法及系统

软件自动化测试方法及系统

阅读:5发布:2022-01-16

专利汇可以提供软件自动化测试方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种 软件 自动化测试系统,该系统包括测试 服务器 以及与测试服务器通信连接的一个或多个测试执行器,其中每个测试执行器分别与一个或多个目标设备通信连接,其中测试服务器被配置为存储根据用户输入预先建立的测试信息表,每个测试信息表项被构造为通过主键唯一地被标识;测试执行器被配置为向目标设备发送 用例 执行命令、从目标设备接收测试执行信息以及将测试执行信息与对应的主键值一起上传至测试服务器;并且测试服务器还被配置为以主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。另外,本发明还提供了相应的软件自动化测试方法。,下面是软件自动化测试方法及系统专利的具体信息内容。

1.一种软件自动化测试系统,其特征在于,所述系统包括测试服务器以及与测试服务器通信连接的一个或多个测试执行器,每个测试执行器分别与一个或多个目标设备通信连接,其中
所述测试服务器被配置为存储根据用户输入预先建立的测试信息表,其中每个测试信息表项被构造为通过主键唯一地被标识;
所述测试执行器被配置为向目标设备发送用例执行命令、从目标设备接收测试执行信息以及将所述测试执行信息与对应的主键值一起上传至所述测试服务器;并且所述测试服务器还被配置为以所述主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。
2.如权利要求1所述的系统,其特征在于,所述主键为联合主键,并且该联合主键至少包括被测软件标识、版本号、目标设备标识以及测试用例编号字段。
3.如权利要求2所述的系统,其特征在于,所述测试用例编号被构造为指示实现该测试用例的测试代码执行函数以及该测试代码执行函数的完整路径,并且所述测试执行器还被配置为通过解析所述测试用例编号来生成所述用例执行命令。
4.如权利要求3所述的系统,其特征在于,所述测试用例编号被构造为按顺序包括所述测试代码执行函数的各级模名称。
5.如权利要求1所述的系统,其特征在于,测试信息表项中的测试结果部分包括与最新测试结果相关的第一字段集合以及与历史测试结果相关的第二字段集合,并且更新所述测试结果部分包括将所述第一字段集合中的内容移入所述第二字段集合以及将最新接收的测试执行信息填入所述第一字段集合。
6.如权利要求1所述的系统,其特征在于,所述测试执行信息至少包括测试是否成功、测试时间和测试日志记录。
7.如权利要求1所述的系统,其特征在于,将测试执行信息与对应的主键值一起上传至测试服务器包括将测试执行信息与对应的主键值按HTTP格式组成报文。
8.一种软件自动化测试方法,其特征在于,所述方法利用测试服务器和测试执行器在目标设备上进行软件自动化测试,其中所述测试服务器与一个或多个测试执行器通信连接并且每个测试执行器分别与一个或多个目标设备通信连接,所述方法包括:
在测试服务器上存储根据用户输入预先建立的测试信息表,其中每个测试信息表项被构造为通过主键唯一地被标识;
由测试执行器向目标设备发送用例执行命令;
由测试执行器从目标设备接收测试执行信息;
由测试执行器将所述测试执行信息与对应的主键值一起上传至测试服务器;以及由测试服务器以所述主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。
9.如权利要求8所述的方法,其特征在于,所述主键为联合主键,并且所述联合主键至少包括被测软件标识、版本号、目标设备标识以及测试用例编号字段。
10.如权利要求9所述的方法,其特征在于,所述测试用例编号被构造为指示实现该测试用例的测试代码执行函数以及该测试代码执行函数的完整路径,并且所述方法还包括通过解析所述测试用例编号来生成所述用例执行命令。
11.如权利要求10所述的方法,其特征在于,所述测试用例编号被构造为按顺序包括所述测试代码执行函数的各级模块名称。
12.如权利要求8所述的系统,其特征在于,测试信息表项中的测试结果部分包括与最新测试结果相关的第一字段集合以及与历史测试结果相关的第二字段集合,并且更新所述测试结果部分包括将所述第一字段集合中的内容移入所述第二字段集合以及将最新接收的测试执行信息填入所述第一字段集合。
13.如权利要求8所述的方法,其特征在于,所述测试执行信息至少包括测试是否成功、测试时间和测试日志记录。
14.如权利要求8所述的方法,其特征在于,将测试执行信息与对应的主键值一起上传至测试服务器包括将测试执行信息与对应的主键值按HTTP格式组成报文。

说明书全文

软件自动化测试方法及系统

技术领域

[0001] 本发明一般地涉及自动化测试技术领域,并且更具体地,涉及软件自动化测试方法及系统。

背景技术

[0002] 随着科技的发展,诸如平板电脑、智能手机的各种便携式智能化电子设备在人们的生活中逐渐普及。目前,已经开发了数量庞大的应用软件以供在这些智能终端的操作系统上使用,在很大程度上丰富和便利了人们的生活。移动互联网的蓬勃发展更是不仅使可开发的应用领域更丰富,同时也使软件的分发和下载更加方便。
[0003] 与在常规的计算机系统软件类似,针对移动终端操作系统的应用软件在发布之前必须通过测试来保证其正确性、完整性和安全性。一般地,可以使用人工操作或者自动化测试的方式来检验一款软件是否满足规定的需求或确定预期结果与实际结果之间的差别。在大多数情况下,自动化测试具有节省人、时间或硬件资源等诸多优势。
[0004] 为针对新开发的软件或软件的不同版本进行自动化测试,通常需要相应的自动化测试平台。目前常用的移动终端操作系统,例如Android系统、iOS系统均提供了各类测试框架,使得软件开发人员能够通过脚本或代码控制移动设备。然而,移动设备的一大特点是终端型号种类繁多。对于软件开发商而言,经常需要在众多市场上可获得的移动设备上测试同一软件的不同开发版本。虽然部分测试工具实现了多部移动设备并行测试执行和测试结果上传,但多以单个测试任务或用例为单位呈现测试结果或报告,无法适用于企业级版本测试或在持续集成中快速呈现以版本为维度的测试结果或测试报告的要求。对于版本测试中多轮测试、单点或部分测试执行场景,现有测试工具测试结果及测试报告无法以作自适应生成。
[0005] 随着移动设备及其上的应用软件的广泛普及,对于高效率的软件自动化测试方案仍有很大的需求。

发明内容

[0006] 本发明的目的是提供一种高效的软件自动化测试方案,其能够降低软件测试成本,缩短软件交付时间,同时提高软件测试的效率和完备性。
[0007] 根据本发明的一方面,一种软件自动化测试系统被提供,所述系统包括测试服务器以及与测试服务器通信连接的一个或多个测试执行器,每个测试执行器分别与一个或多个目标设备通信连接,其中所述测试服务器被配置为存储根据用户输入预先建立的测试信息表,其中每个测试信息表项被构造为通过主键唯一地被标识;所述测试执行器被配置为向目标设备发送用例执行命令、从目标设备接收测试执行信息以及将所述测试执行信息与对应的主键值一起上传至所述测试服务器;并且所述测试服务器还被配置为以所述主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。
[0008] 根据本发明的一些实施例,所述主键为联合主键,并且所述联合主键至少包括被测软件标识、版本号、目标设备标识以及测试用例编号字段。
[0009] 根据本发明的一些实施例,所述测试用例编号被构造为指示实现该测试用例的测试代码执行函数以及该测试代码执行函数的完整路径,并且向目标设备发送用例执行命令包括通过解析所述测试用例编号来生成所述用例执行命令。
[0010] 根据本发明的一些实施例,所述测试用例编号被构造为按顺序包括所述测试代码执行函数的各级模名称。
[0011] 根据本发明的一些实施例,测试信息表项中的测试结果部分包括与最新测试结果相关的第一字段集合以及与历史测试结果相关的第二字段集合,并且更新所述测试结果部分包括将所述第一字段集合中的内容移入所述第二字段集合以及将最新接收的测试执行信息填入所述第一字段集合。
[0012] 根据本发明的一些实施例,所述测试执行信息至少包括测试是否成功、测试时间和测试日志记录。
[0013] 根据本发明的一些实施例,将测试执行信息与对应的主键值一起上传至测试服务器包括将测试执行信息与对应的主键值按HTTP格式组成报文。
[0014] 根据本发明的另一方面,一种软件自动化测试方法被提供,所述方法利用测试服务器和测试执行器在目标设备上进行软件自动化测试,其中所述测试服务器与一个或多个测试执行器通信连接并且每个测试执行器分别与一个或多个目标设备通信连接,所述方法包括:在测试服务器上存储根据用户输入预先建立的测试信息表,其中每个测试信息表项被构造为通过主键唯一地被标识;由测试执行器为向目标设备发送用例执行命令;由测试执行器从目标设备接收测试执行信息;由测试执行器将所述测试执行信息与对应的主键值一起上传至测试服务器;以及由测试服务器以所述主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。
[0015] 通过应用本发明所提供的软件自动化测试方案,可以方便地在众多目标设备上实现分布式的自动测试以及按所需维度对测试结果的收集和汇总,尤其适用于在移动终端的操作系统上对软件进行测试。在本发明的一些实施例中,还实现了将测试用例与实现其的测试代码之间的关联,这可以很大程度上提高在数量众多的目标设备上并行地进行自动化测试的效率。另外,本发明所提供的软件自动化测试方案还有助于在多种类型的设备及操作系统测试框架上同时进行测试,为软件开发人员提供了极大的便利性。附图说明
[0016] 本发明的前述和其他目标、特征和优点根据下面对本发明的实施例的更具体的说明将是显而易见的,这些实施例在附图中被示意。
[0017] 图1是根据本发明的一个实施例的软件自动化测试系统的示例性结构图。
[0018] 图2是根据本发明的第一实施例的软件自动化测试方法的示例性流程图
[0019] 图3是根据本发明的第二实施例的软件自动化测试方法的示例性流程图。

具体实施方式

[0020] 以下结合附图和具体实施方式进一步详细说明本发明。需要说明的是,附图中的各结构只是示意性说明,用以使本领域普通技术人员最佳地理解本发明的原理,其不一定按比例绘制。
[0021] 图1是根据本发明的一个实施例的软件自动化测试系统的示例性结构图,该系统可以被用于在多个目标设备上对待发布的软件并行地进行测试。被测软件针对在目标设备上的应用被开发,尤其被设计为适应于目标设备的操作系统。在目标设备为移动终端的情况下,各种移动终端的硬件配置可能各不相同,而软件人员的目标可能是使待发布的软件在所有这些配置各异的移动终端上均能稳定地运行。通过使用根据本发明实施例的软件自动化测试系统,可以帮助软件开发人员方便高效地在各种目标设备上并行地对待发布的软件进行测试。
[0022] 如图1所示,该系统大体上可以包括测试服务器100、一个或多个测试执行器201、202,以及多个目标设备。测试服务器100分别与测试执行器201、202通信连接。测试服务器与测试执行器之间的通信可以采用本领域中已知的或待开发的任何通信技术来实现,例如通过局域网技术等。每个测试执行器可以分别与一个或多个目标设备通信连接。同样地,测试执行器与目标设备之间的通信可以采用本领域中已知的或待开发的任何技术来实现,例如通过USB或Wifi技术等。每个测试执行器所连接的目标设备的数量可以根据需要增减,这一般取决于测试执行器的性能以及测试需求。测试执行器可以被配置为专地控制使用相同操作系统的目标设备,也可以被配置为同时控制使用不同操作系统的目标设备。
在实践中,测试执行器可以采用本领域中已知的或待开发的任何具有数据处理功能的装置来实现。
[0023] 在图1所示的实施例中,测试服务器100可以被配置为存储根据用户输入预先建立的测试信息表,其中每个测试信息表项被构造为通过主键唯一地被标识。在实践中,可以提供人机交互界面来接受用户输入,包括指示用户的测试要求及测试预期的各种设定,并且进而由测试服务器100中的处理模块根据用户输入来生成及存储测试信息表。在本发明的一些实施例中,可以另外地提供测试管理器(未在图1中示出)来生成测试信息表。测试管理器可以被配备有人机交互界面以接收用户输入,并且可以进一步根据用户输入生成所述测试信息表。该测试管理器可以被配置为与测试服务器100通信连接以在测试开始之前将所生成的测试信息表传送到测试服务器100,以供在后续测试过程中使用。
[0024] 如上所述,所述测试信息表的每个测试信息表项被构造为可以通过主键唯一地被标识。总的来说,该测试信息表被构造用于收集和汇总来自不同目标设备的测试执行情况。因此,每个测试信息表项至少包括用于填入测执行信息的测试结果部分。测试信息表的主键可以按照所关心的测试结果统计维度来设置,并且必须能够使每一条测试信息表项都代表区别于其他的一种测试情形。例如,可以选择被测软件的版本号作为每个测试信息表项的主键。举例来说,当在同一设备上对软件的不同版本进行测试时,这种单一主键就可以唯一地标识每个测试表项,并且以软件版本为维度对结果进行汇总和收集。
[0025] 在本发明的一些实施例中,该主键可以是联合主键,并且优选地该联合主键可以包括被测软件标识、版本号、目标设备标识以及测试用例编号字段。在这种情况下,测试信息表可以更广泛地用于在目标设备上进行大规模的测试。每一条测试信息表项可以直观地反应哪个版本的哪一款被测软件在何种设备上执行哪个测试用例的执行情况,有利于软件开发人员方便地掌握测试结果。
[0026] 在以上所述的联合主键构造中,测试用例编号被用于指示在测试中使用了哪个测试用例。在本发明的优选实施例中,待填入测试用例编号字段的内容可以被构造为指示实现该测试用例的测试代码执行函数以及该测试代码执行函数的完整路径。在这种情况下,测试执行器可以被配置为通过解析该测试用例编号来生成要向各目标设备发送的用例执行命令,一般地可以通过该命令向目标设备指示哪个测试用例要被执行并且应调用哪个测试代码执行函数。
[0027] 如在上文中所描述的那样,在一些实施例中可以另外地提供测试管理器(未在图1中示出)。除了生成测试信息表之外,测试管理器还可以在测试初始化阶段根据用户输入另外生成测试任务表,并且在每个测试任务表项中包括该测试用例编号。测试任务表可以被存储在测试服务器100中以供测试执行器获取测试任务。在一些实施例中,测试执行器可以被配置为以预定的时间间隔访问测试服务器以从测试任务表中获取任务。每个任务项具有特定的标识以被分配给特定的测试执行器。由此,测试执行器可以从所获得的测试任务表项中取得该测试用例编号,并且从中解析出针对每个目标设备的用例执行命令。本领域的技术人员应理解,还可以通过其他方式向测试执行器提供测试用例编号。通过采用这样的测试用例编号,可以使测试用例与实现该测试用例的测试代码执行函数直接相关联,由此使得向目标设备分配任务变得简单高效,良好地适应了移动设备分布式测试任务并行下发以及测试结果并行上传收集。
[0028] 在一些实施例中,测试用例编号可以优选地被构造为按顺序包括测试代码执行函数的各级模块名称。测试用例编号的一个例子可以为:被测软件名_一级模块名_子模块名_编号。以Java代码为例,测试用例编号的例子可以是CLIENT3_LOGIN_FAIL_001,其中LOGIN为包名(即Java代码结构中的一级模块),而FAIL为类名(即Java代码结构中的子模块),而001则表示这个用例的顺序编号。测试执行器可以容易地从这样的测试用例编号中解析出测试代码执行函数的完整路径,并且进而根据该路径生成相应的用例执行代码,向目标设备指示需要待用哪些代码及资源。
[0029] 在启动测试过程之后,测试执行器201、202一般地被配置为向目标设备指派测试任务并且将来自目标设备的测试执行信息上传给测试服务器100。具体地,测试执行器201、202可以被配置为首先向目标设备发送用例执行命令。根据该用例执行命令,目标设备可以了解需要执行哪个测试用例并且调用哪个测试代码执行函数。在根据所收到的命令完成任务之后,目标设备将会向测试执行器回传针对本次测试的测试执行信息,例如包括测试是否成功、测试时间和测试日志记录等。
[0030] 测试执行器201、202将从目标设备接收这些测试执行信息并且将所述测试执行信息与对应的主键值一起上传至所述测试服务器。在一些实施例中,测试执行器可能基于因特网协议与测试服务器进行通信。在这种情况下,测试执行器可以将测试执行信息与对应的主键值一起按HTTP格式组成报文以向测试服务器传送。
[0031] 在收到测试执行器上送的信息之后,测试服务器可以被配置为对这些信息进行解析,从中提取主键值以及相应的测试执行信息。由此,测试服务器可以以主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。这样生成的测试报告能够自适应地包含最新且完整统一的测试结果,对于多轮测试任务的结果收集和汇总尤其便利。
[0032] 在一些实施例,测试信息表项中的测试结果部分可以包括与最新测试结果相关的第一字段集合以及与历史测试结果相关的第二字段集合。在接收到新的上传数据之后,测试服务器可以被配置为将第一字段集合中的内容移入第二字段集合并且将最新接收的测试执行信息填入第一字段集合。第二字段集合的大小可以根据存储要求以及存储能力来确定,以存储不止一次历史测试的数据,而第一字段集合可以被构造为总是存储最新一次测试的执行情况。
[0033] 图2是根据本发明的第一实施例的软件自动化测试方法的示例性流程图,该方法可以在以上所描述的任何一个实施例中的系统上执行,从而实现高效的软件自动化测试。一般地,适于执行该方法的系统至少包括一个测试服务器以及与该测试服务器通信连接的一个或多个测试执行器,每个测试执行器与一个或多个目标设备通信连接。通过在该系统上执行图2所示的方法,可以在多个目标设备上并行地对被测软件的运行情况进行测试并且可以自适应地按所需要的维度对测试结果进行收集和汇总。
[0034] 在步骤S201中,可以将根据用户输入建立的测试信息表存储在测试服务器上,其中每个测试信息表项被构造为通过主键唯一地被标识。
[0035] 在步骤S202-S204中,测试执行器向目标设备发送用例执行命令、从目标设备接收测试执行信息以及将测试执行信息与对应的主键值一起上传至测试服务器。
[0036] 在步骤S205中,由测试服务器以主键值为索引、根据所接收的测试执行信息更新对应的测试信息表项中的测试结果部分。
[0037] 图3是根据本发明的第二实施例的软件自动化测试方法的示例性流程图,该方法可以在以上所描述的任何一个实施例中的系统上执行,从而实现高效的软件自动化测试。一般地,适于执行该方法的系统至少包括一个测试服务器以及与该测试服务器通信连接的一个或多个测试执行器,每个测试执行器与一个或多个目标设备通信连接。通过在该系统上执行图3所示的方法,可以在多个目标设备上并行地对被测软件的运行情况进行测试并且可以自适应地按所需要的维度对测试结果进行收集和汇总。
[0038] 图3所示的步骤S301、S303-306分别与图2所示的步骤S201-205一致。在图3的实施例中,唯一表示测试信息表项的主键为联合主键,其优选地包括被测软件标识、版本号、目标设备标识以及测试用例编号字段,其中测试用例编号优选地被构造为能够指示实现该测试用例的测试代码执行函数以及该测试代码执行函数的完整路径。由此,测试执行器可以在步骤S302中通过解析该测试用例编号来生成要向相应的目标设备发送的用例执行命令。在这个实施例中,将测试用例与实现其的测试测试代码执行函数直接相关联使测试执行器能够非常高效地向目标设备指派测试任务,而不管这些目标设备采用何种操作系统,从而使软件开发人员能够方便地在大量型号配置各不相同的目标设备上并行地进行软件测试,大大简化了软件测试流程,在很大程度上缩短了软件开发的周期。
[0039] 本发明的一些实施方式可以用软件、硬件或者任何软件和/或硬件的组合来实现。本发明的实施例可以包括单元和/或子单元,所述单元和/或子单元可以是相互分开的或者全部或部分地组合在一起的、并且可以使用特定的、多目的的或通用的处理器或者控制器、或者现有技术中已知的设备实现。本发明的一些实施方式可以包括用于数据暂时或长期存储或者为了便于特定实施方式的操作的缓冲器、寄存器、堆栈、存储单元和/或存储器单元。并且,本发明的各个实施例可以任意方式合并、组合及替换。
[0040] 应当说明的是,以上具体实施方式仅用以说明本发明的技术方案而非对其进行限制。尽管参照上述具体实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解,依然可以对本发明的具体实施方式进行修改或对部分技术特征进行等同替换而不脱离本发明的实质,其均涵盖在本发明请求保护的范围中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈