CN111522752B - 程序测试方法、程序测试装置、存储介质和电子设备 - Google Patents

程序测试方法、程序测试装置、存储介质和电子设备 Download PDF

Info

Publication number
CN111522752B
CN111522752B CN202010457083.2A CN202010457083A CN111522752B CN 111522752 B CN111522752 B CN 111522752B CN 202010457083 A CN202010457083 A CN 202010457083A CN 111522752 B CN111522752 B CN 111522752B
Authority
CN
China
Prior art keywords
program
terminal
data
operation instruction
dom tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010457083.2A
Other languages
English (en)
Other versions
CN111522752A (zh
Inventor
谢林
朱兴军
刘通
惠超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Future Vipkid Ltd
Original Assignee
Future Vipkid Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Future Vipkid Ltd filed Critical Future Vipkid Ltd
Priority to CN202010457083.2A priority Critical patent/CN111522752B/zh
Publication of CN111522752A publication Critical patent/CN111522752A/zh
Application granted granted Critical
Publication of CN111522752B publication Critical patent/CN111522752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Abstract

本发明实施例公开了一种程序测试方法、程序测试装置、存储介质和电子设备。本发明实施例的服务器可以获取到至少一个终端执行已经过测试的第一程序得到的第一数据以及在执行第一程序过程中触发的第一操作指令以及执行顺序,并向至少一个终端发送根据第一操作指令以及执行顺序确定的信息集合,以使得该终端可以执行待测试的第二程序生成第二数据。在第二程序执行完毕后,服务器可以获取第二数据,并根据第一数据以及第二数据分析得到测试结论。在本发明实施例中,第一程序与第二程序为同一程序的不同版本,因此根据第一程序产生的操作指令以及数据对第二程序进行自动测试可以提升计算机程序的测试效率以及测试的准确性。

Description

程序测试方法、程序测试装置、存储介质和电子设备
技术领域
本发明公开涉及计算机技术领域,具体涉及一种程序测试方法、程序测试装置、存储介质和电子设备。
背景技术
随着计算机技术的不断发展,为了满足用户不断变化的需求,计算机程序的更新频率也在变得越来越频繁。在对计算机程序进行迭代更新后,为了保证迭代更新后的计算机程序仍旧可以正常执行,测试人员需要对迭代更新后的计算机程序进行测试,从而根据第二数据验证迭代更新后的计算机程序的可靠性。但现有技术通常存在测试效率低、测试准确性不高的问题。
发明内容
有鉴于此,本发明实施例的目的在于提供一种程序测试方法、程序测试装置、存储介质和电子设备,用于提升计算机程序的测试效率以及测试的准确性。
根据本发明实施例的第一方面,提供一种程序测试方法,所述方法包括:
获取至少一个第一数据,所述第一数据由至少一个第一终端执行第一程序得到;
获取至少一个第一信息集合,所述第一信息集合包括所述第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
向至少一个第二终端发送所述第一信息集合,以使得所述至少一个第二终端基于所述第一信息集合执行第二程序生成至少一个第二数据;
分析得到至少一个测试结论,所述测试结论基于至少一个所述第一数据以及至少一个所述第二数据确定。
优选地,所述分析得到至少一个测试结论包括:
基于至少一个所述第一数据以及至少一个所述第二数据的匹配结果确定所述测试结论。
优选地,所述第一数据包括至少一个第一DOM树,所述第二数据包括至少一个第二DOM树,所述第一DOM树为所述第一终端响应于至少一个所述第一操作指令所得到的至少一个第一网页的DOM树结构,所述第二DOM树为所述第二终端响应于至少一个所述第一操作指令所得到的至少一个第二网页的DOM树结构;
所述基于至少一个所述第一数据以及至少一个所述第二数据的匹配结果确定所述测试结论包括:
将至少一个所述第一DOM树与至少一个所述第二DOM树进行对比,确定所述匹配结果。
优选地,所述第一DOM树包括至少一个所述第一页面的第一页面属性,所述第二DOM树包括至少一个所述第二页面的第二页面属性,所述第一页面属性用于表征所述第一页面中至少一个属性节点的文字大小和/或显示位置,所述第二页面属性用于表征所述第二页面中至少一个属性节点的文字大小和/或显示位置;
所述将至少一个所述第一DOM树与至少一个所述第二DOM树进行对比,确定所述匹配结果包括:
根据预定对应关系对至少一个所述第一页面属性与至少一个所述第二页面属性进行对比,确定所述匹配结果,所述预定对应关系根据所述第一终端的显示装置尺寸与所述第二终端的显示装置尺寸确定。
优选地,所述第一终端通过浏览器执行所述第一程序,和/或所述第二终端通过浏览器执行所述第二程序。
优选地,所述方法还包括:
根据至少一个所述测试结论确定测试结论列表;
向至少一个预定终端发送所述测试结论列表,以使得所述预定终端对所述测试结论列表进行显示。
优选地,所述方法还包括:
向至少一个所述第一终端和/或至少一个所述第二终端发送所述测试结论列表,以使得所述第一终端和/或所述第二终端对所述测试结论列表进行显示。
优选地,所述方法还包括:
对所述第一数据、所述第二数据、所述测试结论以及所述第一信息集合中的至少一项进行记录并存储。
优选地,所述第一程序与所述第二程序为同一程序的不同版本,且所述第一程序与所述第二程序的运行环境相同。
优选地,所述第一数据为多个所述第一终端在基于所述第一程序进行交互的过程中产生的数据,所述第二数据为多个所述第二终端在基于所述第二程序进行交互的过程中产生的数据。
根据本发明实施例的第二方面,提供一种程序测试装置,所述装置包括:
第一获取单元,用于获取至少一个第一数据,所述第一数据由至少一个第一终端执行第一程序得到;
第二获取单元,用于获取至少一个第一信息集合,所述第一信息集合包括所述第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
发送单元,用于向至少一个第二终端发送所述第一信息集合,以使得所述至少一个第二终端基于所述第一信息集合执行第二程序生成至少一个第二数据;
分析单元,用于分析得到至少一个测试结论,所述测试结论基于至少一个所述第一数据以及至少一个所述第二数据确定。
根据本发明实施例的第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面中任一项所述的方法。
根据本发明实施例的第四方面,提供一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面中任一项所述的方法。
本发明实施例的服务器可以获取到至少一个终端执行已经过测试的第一程序得到的第一数据以及在执行第一程序过程中触发的第一操作指令以及执行顺序,并向至少一个终端发送根据第一操作指令以及执行顺序确定的信息集合,以使得该终端可以执行待测试的第二程序生成第二数据。在第二程序执行完毕后,服务器可以获取第二数据,并根据第一数据以及第二数据分析得到测试结论。在本发明实施例中,第一程序与第二程序为同一程序的不同版本,因此根据第一程序产生的操作指令以及数据对第二程序进行自动测试可以提升计算机程序的测试效率以及测试的准确性。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例的硬件系统架构的示意图;
图2是本发明第一实施例的程序测试方法的流程图;
图3是本发明第一实施例的第一DOM树的示意图;
图4是本发明第一实施例的第二DOM树的示意图;
图5是本发明第一实施例的程序测试方法的数据流程图;
图6是本发明第一实施例的程序测试方法的示意图;
图7是本发明第二实施例的程序测试装置的示意图;
图8是本发明第三实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在对计算机程序进行迭代更新后,为了保证迭代更新后的计算机程序仍旧可以正常执行,测试人员需要对迭代更新后的计算机程序进行测试,从而根据第二数据验证迭代更新后的计算机程序的可靠性。但现有技术通常通过人工的方式或者直接在新版本计算机程序中执行旧版本计算机程序的操作指令的方式来对计算机程序的可靠性进行验证,上述两种方式对于计算机程序的测试效率不高,且测试过程中操作指令并没有基于预定触发事件触发,因此无法保证测试的准确性以及计算机程序实际应用过程中的稳定性。
图1是本发明实施例的硬件系统架构的示意图。图1所示的硬件系统架构可以包括至少一个第一终端、至少一个服务器以及至少一个第二终端,图1以两个第一终端,也即第一终端11A和第二终端11B,一个服务器12以及两个第二终端,也即第二终端13A和第二终端13B为例进行说明。第一终端11A、第二终端11B、服务器12、第二终端13A和第二终端13B可以通过网络进行通信连接。
在本发明实施例中,第一终端11A和第一终端11B可以基于第一程序(例如,通讯APP、线上教学APP等)进行交互,具体地,第一终端11A和第一终端11B的交互过程(也即,执行第一程序的过程)中,需要通过服务器12对用户的操作指令、产生的数据等信息进行交换,因此服务器12可以从内存中直接读取第一终端11A和第一终端11B在交互过程中基于至少一个预定触发事件触发的第一操作指令以及根据第一操作指令产生的第一数据。然后服务器可以根据至少一个第一操作指令以及各第一操作指令的执行顺序确定第一信息集合,并向第二终端13A和第二终端13B发送第一信息集合,以使得第二终端13A和第二终端13B可以基于第一信息集合执行第二程序(例如,通讯APP、线上教学APP等)进行交互。同样地,第二终端13A和第二终端13B的交互过程(也即,执行第二程序的过程)中,需要通过服务器12对用户的操作指令、产生的数据等信息进行交换,因此服务器12同样可以从内存中直接读取第二终端13A和第一终端13B在交互过程中根据第一操作指令产生的第二数据。由此,服务器可以根据至少一个第一数据对至少一个第二数据进行分析,从而得到至少一个分析结论,以对第二程序的稳定性进行验证。
在本发明实施例中,第一程序和第二程序为具有不同版本的计算机程序,第一程序为成熟版本的计算机程序,第二程序为迭代更新版本的计算机程序。可选地,在多个终端可以基于第一程序或第二程序进行交互时,第一程序以及第二程序可以为具有多人交互功能的计算机程序。具体地,第一程序与第二程序可以具有至少一个不同的功能,且第一程序与第二程序的运行环境相同。这使得本发明实施例的程序测试方法可以对不同版本的计算机程序进行向前兼容、向后兼容的兼容性测试。
容易理解,在本发明实施例中,以多个第一终端基于第一程序进行交互生成第一数据以及多个第二终端基于第二程序进行交互生成第二数据为例进行说明,但是领域技术人员容易理解,一个第一终端基于第一程序生成第一数据,一个第二终端基于第二程序生成第二数据同样适用于本发明实施例的方法。
图2是本发明第一实施例的程序测试方法的流程图。如图2所示,本实施例的方法包括如下步骤:
步骤S100,获取至少一个第一数据。
在本实施例中,第一程序可以为已经过测试的成熟版本的计算机程序。第一程序可以被部署在多个第一终端中,各用户均可以通过对第一终端进行操作的方式控制第一终端执行第一程序以进行交互。第一终端在执行第一程序的过程中,可以响应于至少一个预定触发事件触发的第一操作指令,生成第一数据。
例如,第一终端M1以及第一终端M2中部署了教学类应用(也即,第一程序)P1,持有第一终端M1的用户为教学者,持有第一终端M2的用户为学习者,教学者和学习者启动教学类应用P1后可以进行线上教学活动。在线上教学活动中,教学者可以对第一终端M1进行操作,学习者也可以对第一终端M2进行操作。例如,教学者点击第一终端M1所得到的“课程1”对应的“开始上课”控件等(也即,触发预定触发事件),可以触发一个第一操作指令,使得第一终端M1以及第一终端M2可以响应于该第一操作指令显示包括“课程1”的教学内容的页面。
可选地,为了降低安装第一程序所耗费的时间以及第一程序在安装以及运行过程中消耗的内存资源,第一程序可以直接被部署在第一终端的浏览器(具体可以为第一终端内部署的任一浏览器)内部,使得第一终端可以通过浏览器执行第一程序,从而生成第一数据。容易理解,在通过浏览器执行第一程序之前,第一终端需要将第一程序配置为浏览器内受信任的程序。
由于第一程序在浏览器内部被执行,第一终端所得到的页面内容实际是由DOM(Document Object Model,文档对象模型),具体可以为HTML DOM进行更新的,且在多个第一终端的交互过程中,服务器可以通过教学平台对第一终端上传的信息进行交换并将交换的数据记录在内存中,因此服务器可以从内存中获取至少一个第一DOM树作为第一数据。第一DOM树为第一终端响应于至少一个操作指令所得到的至少一个第一网页的DOM树结构。
DOM是一种处理可扩展置标语言的标准编程接口,且不受到平台和编程语言的限制,可以动态访问程序和脚本,更新程序和脚本的内容、结构、www文档的风格等。DOM提供了对整个文档的访问模型,将文档作为一个树形结构,树的每个节点表示了一个HTML标签或标签内的文本项。HTML DOM树结构精确地描述了MTML文档中标签间的相互关联性,HTML文档被解析后,转化为DOM树,因此对HTML文档的处理可以通过对DOM树的操作实现。
图3是本发明第一实施例的第一DOM树的示意图。如图3所示,第一DOM树的节点包括“body”“img”“p”“div”“你好”“span”“小朋友”以及“第3位”,其中“body”“img”“p”“div”以及“span”为DOM树中的标签,也即属性节点,“你好”“小朋友”以及“第3位”为标签内的文本项,也即属性节点,“font-size:16px”为“body”对应的注释节点。由此,DOM树可以对第一页面(也即,第一终端的显示页面)的页面内容进行较为直观且清晰地展现。
容易理解,第一终端每显示一个第一页面,就会有一个第一DOM树生成,因此在第一终端展示了多个页面时,服务器获得的第一数据为一个第一终端所得到的多个第一页面中各第一页面对应的第一DOM树。
可选地,为了验证第二程序是否能基于预定触发事件触发与第一程序相同的操作指令(也即,第一操作指令),第一数据也可以包括至少一个第一操作指令。
步骤S200,获取至少一个第一信息集合。
在多个第一终端执行第一程序进行交互的过程中,需要服务器进行信息交换,因此服务器可以将多个第一终端在交互过程中产生的预定触发事件、至少一个第一操作指令以及各第一操作指令的执行顺序记录在内存中。第一操作指令基于预定触发事件触发,因此服务器根据预定触发事件的先后顺序就可以确定各第一操作指令的执行顺序。然后,服务器可以根据各第一操作指令以及上述操作顺序确定第一信息集合。
步骤S300,向至少一个第二终端发送第一信息集合。
在确定第一数据后,服务器可以向至少一个第二终端发送第一信息集合,以使得至少一个第二终端可以基于第一信息集合执行第二程序生成至少一个第二数据。
可选地,为了验证预定触发事件是否能触发相同的操作指令以对第二程序的稳定性进行验证,服务器也可以根据第一信息集合中的执行顺序控制至少一个第二终端顺序触发至少一个预定触发事件,以使得第一终端可以顺序触发至少一个第二操作指令并生成至少一个第二数据。
在本实施例中,第二程序与第一程序为同一程序的不同版本,且第一程序与第二程序的运行环境相同。其中,运行环境可以为安卓、IOS、Windows等,本实施例不做具体限定。
步骤S400,分析得到至少一个测试结论。
在至少一个第二终端接收到第一信息集合后,服务器可以控制至少一个第二终端依据执行顺序触发至少一个预定触发事件,从而使得第二终端可以响应于至少一个预定触发事件触发的第二操作指令生成至少一个第二数据。可选地,第二终端也可以根据第一信息集合中的执行顺序来顺序执行各第一操作指令,从而生成至少一个第二数据。
与第一程序相似,可选地,第二程序也可以直接被部署在第二终端的浏览器(具体可以为第二终端内部署的任一浏览器)内部,使得第二终端可以通过浏览器执行第二程序,从而产生第二数据。容易理解,在通过浏览器执行第二程序之前,第二终端需要将第二程序配置为浏览器内受信任的程序。
且在多个第二终端的交互过程中,服务器同样可以通过教学平台对第二终端上传的信息进行交换并将交换的数据记录在内存中,因此服务器同样可以从内存中获取至少一个第二DOM树作为第二数据。
服务器可以根据至少一个第一数据以及至少一个第二数据分析得到至少一个测试结论。具体地,服务器可以基于至少一个第一数据以及至少一个第二数据的匹配结果确定至少一个测试结论。
可选地,若服务器控制至少一个第二终端依据执行顺序触发至少一个预定触发事件,使得第二终端响应于至少一个预定触发事件触发的第二操作指令生成至少一个第二数据,则第二数据也可以包括至少一个第二操作指令。
容易理解,在本实施例中,第一终端和第二终端可以为同一终端,也可以为不同终端,本实施例不做限定。
可选地,若第一数据为第一终端响应于至少一个第一操作指令所得到的至少一个第一页面的DOM树结构(也即,第一DOM树),第二数据为第二终端响应于至少一个第一操作所得到的至少一个第二页面的DOM树结构(也即,第二DOM树),则服务器可以将至少一个第一DOM树与第二DOM树进行对比,确定匹配结果。
图4是本发明第一实施例的第二DOM树的示意图。图4所示的第二DOM树与图3所示的第一DOM树为同一第一操作指令对应的第二数据与第一数据。结合图3,如图4所示,除第一DOM树中第二层最右侧的节点“div”与第二DOM树中第二层最右侧的节点“p”以及第一DOM树中第三层中间的注释节点“display:block”与第二DOM树中第三层中间的注释节点“display:none”的匹配结果为不匹配外,第一DOM树与第二DOM树中其余的节点的匹配结果均为匹配。
在实际测试过程中,第一终端和第二终端的尺寸可能并不相同,为了使得第一页面的显示内容与第二页面的显示内容的所呈现出的效果相似(也即,适配第一终端与第二终端),通常会对显示内容中的文本的文字大小和/或文本的显示位置进行调整,因此即使部分第一数据与部分第二数据并不相同,匹配结果也可能是匹配。因此,服务器可以根据第一终端和第二终端的显示装置尺寸确定一个预定对应关系,然后根据预定对应关系对第一DOM树中的至少一个第一页面属性和第二DOM树中的至少一个第二页面属性进行对比,确定匹配结果。
例如,第一终端的显示装置尺寸为10.2英寸,第二终端的显示装置尺寸为6.5英寸,则服务器可以确定第一终端与第二终端之间文字大小的预定对应关系为10.2:6.5。若第一DOM树中的任一用于表征任一属性节点的文字(也即,font-size)大小的第一页面属性与第二DOM树中用于表征对应属性节点的文字大小的第二页面属性之比不符合预定对应关系,则服务器可以确定第一页面属性与第二页面属性的匹配结果为不匹配,否则可以确定上述匹配结果为匹配。
可选地,若第一数据包括至少一个第一操作指令,第二数据包括至少一个第二操作指令,则服务器可以根据至少一个第一操作指令和至少一个第二操作指令进行匹配,确定匹配结果。
在确定第一DOM树中至少一个节点与第二DOM树中至少一个节点的匹配结果后,服务器可以根据至少一个匹配结果确定至少一个测试结论。例如,若第一DOM树中各节点与第二DOM树中各节点的匹配结果均为匹配,则服务器可以确定测试结论为正常;若第一DOM树中存在至少一个节点与第二DOM树中至少一个节点的匹配结果为不匹配,则服务器可以确定测试结论为异常。
容易理解,服务器可以将基于同一预定触发事件生成的第一数据以及第二数据确定对于该预定触发事件对应的匹配结果。
可选地,在确定至少一个测试结论后,本实施例的方法还可以包括如下步骤:
步骤S500,根据至少一个测试结论确定测试结论列表。
可选地,服务器可以仅根据匹配结果为不匹配的测试结论来确定测试结论列表,也可以根据匹配结果为匹配的测试结论以及匹配结果为不匹配的测试结论点确定测试结论列表,本实施例不做具体限定。在根据匹配结果为匹配的测试结论以及匹配结果为不匹配的测试结论点确定测试结论列表时,服务器可以对不匹配的测试结论进行标记,例如高亮、加粗、改变字体颜色等方式进行标记,以使得后续终端在对测试结论列表进行展示时,测试人员可以较为直接地查看到第二数据中的异常数据。
容易理解,测试结论列表中还可以包括第二数据中的异常数据、第二数据对应的第二页面、与异常数据对应的第一数据中的正常数据、第一操作指令等。
步骤S600,向至少一个预定终端发送测试结论列表。
在确定测试结论列表后,服务器可以向至少一个预定终端发送测试列表,以使得预定终端可以对测试结论列表进行显示。
可选地,本实施例的方法还可以包括如下步骤:
步骤S700,向至少一个第一终端和/或至少一个第二终端发送测试结论列表。
在确定测试结论列表后,服务器可以向至少一个第一终端和/或至少一个第二终端发送测试列表,以使得至少一个第一终端和/或至少一个第二终端可以对测试结论列表进行显示。
容易理解,在本实施例中,步骤S700和步骤S800可以同时执行,也可以先后执行,本实施例不做限定。
图5是本发明第一实施例的程序测试方法的数据流程图。如图5所示,终端51和终端52为第一终端,终端54和终端55为第二终端。在第一程序的应用阶段,终端51以及终端52可以通过浏览器执行第一程序进行交互,使得教学者可以通过终端51、学习者可以通过终端52进行线上教学活动。具体地,在教学活动过程中,教学者和/或学习者可以通过至少一个预定触发事件触发至少一个第一操作指令,使得终端51以及终端52可以显示至少一个第一网页,容易理解,终端51以及终端52显示同一个第一网页。服务器端53的用户操作录制系统承载了信息的交换工作,因此服务器53可以通过用户操作录制系统直接读取终端51以及终端52在教学活动过程中用于生成第一网页的第一DOM树作为第一数据,以及教学者和/或学习者触发的至少一个预定触发事件的先后顺序以及各预定触发事件触发的第一操作指令,并根据至少一个预定触发事件的先后顺序确定终端51以及终端52执行第一程序的执行顺序,从而根据执行顺序以及各第一操作指令确定第一信息集合。在确定第一信息集合后,服务器53可以将第一信息集合发送至用户操作回放测试系统,以使得用户回放操作系统可以在测试阶段控制终端54和/或终端55在第二程序的测试过程中顺序触发至少一个预定触发事件并触发至少一个第二操作指令以显示至少一个第二网页,容易理解,终端54以及终端55显示同一个第二网页。类似地,服务器端53的用户操作回放测试系统承载了信息的交换工作,因此服务器53可以通过用户操作录制系统直接读取终端54以及终端55在第二程序的测试过程中用于生成第二网页的第二DOM树以及第二操作指令作为第二数据。从而,服务器53可以将同一预定触发事件触发生成的第一DOM树与第二DOM树进行匹配获取匹配结果,并可以将同一预定触发事件触发的第一操作指令与第二操作指令进行匹配获取匹配结果,从而根据至少一个匹配结果确定测试结论列表。在确定测试结论列表后,服务器可以向至少一个预定终端56发送测试结论列表,以对测试结论进行展示。容易理解,预定终端56可以为终端51和/或终端52和/或终端54和/或终端55,也可以不为终端51和/或终端52和/或终端54和/或终端55,本实施例不做限定。
图6是本发明第一实施例的程序测试方法的示意图。如图6所示,测试人员可以通过前端操控平台61启动主控62,主控62被启动后,可以从数据库65中获取至少一个第一终端在执行第一程序的过程中执行第一程序对应的执行顺序,并根据各预定触发事件的执行顺序进行模拟操作,以触发至少一个第二操作指令,并通过第二操作指令控制教学者端63以及学习者端64执行第二程序,并获取教学者端63以及学习者端64在执行第二程序的过程中生成的至少一个第二DOM树快照(也即,对于内存中的第二DOM树进行快速读取的结果)以及至少一个第二操作指令作为第二数据。同时,服务器可以响应于至少一个预定触发事件触发的第一操作指令生成的至少一个第一数据,第一数据具体可以包括至少一个第一操作指令以及至少一个第一DOM树快照(也即,对于内存中的第一DOM树进行快速读取的结果),并基于比对服务,根据至少一个第一数据对至少一个第二数据进行对比验证得到测试测试结论,并将测试结论存储到数据库65中,同时可以通过前端操控平台61进行结论展示。
本实施例的服务器可以获取到至少一个终端执行已经过测试的第一程序得到的第一数据以及在执行第一程序过程中触发的第一操作指令以及执行顺序,并向至少一个终端发送根据第一操作指令以及执行顺序确定的信息集合,以使得该终端可以执行待测试的第二程序生成第二数据。在第二程序执行完毕后,服务器可以获取第二数据,并根据第一数据以及第二数据分析得到测试结论。在本实施例中,第一程序与第二程序为同一程序的不同版本,因此根据第一程序产生的操作指令以及数据对第二程序进行自动测试可以提升计算机程序的测试效率以及测试的准确性。
图7是本发明第二实施例的程序测试装置的示意图。如图7所示,本实施例的装置包括第一获取单元71、第二获取单元72、发送单元73和分析单元74。
其中,第一获取单元71用于获取至少一个第一数据,所述第一数据由至少一个第一终端执行第一程序得到。第二获取单元72用于获取至少一个第一信息集合,所述第一信息集合包括所述第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令。发送单元73用于向至少一个第二终端发送所述第一信息集合,以使得所述至少一个第二终端基于所述第一信息集合执行第二程序生成至少一个第二数据。分析单元74用于分析得到至少一个测试结论,所述测试结论基于至少一个所述第一数据以及至少一个所述第二数据确定。
本实施例的服务器可以获取到至少一个终端执行已经过测试的第一程序得到的第一数据以及在执行第一程序过程中触发的第一操作指令以及执行顺序,并向至少一个终端发送根据第一操作指令以及执行顺序确定的信息集合,以使得该终端可以执行待测试的第二程序生成第二数据。在第二程序执行完毕后,服务器可以获取第二数据,并根据第一数据以及第二数据分析得到测试结论。在本实施例中,第一程序与第二程序为同一程序的不同版本,因此根据第一程序产生的操作指令以及数据对第二程序进行自动测试可以提升计算机程序的测试效率以及测试的准确性。
图8是本发明第三实施例的电子设备的示意图。图8所示的电子设备为通用数据处理装置,具体可以为本发明实施例的第一终端、第二终端或服务器,其包括通用的计算机硬件结构,其至少包括处理器81和存储器82。处理器81和存储器82通过总线83连接。存储器82适于存储处理器81可执行的指令或程序。处理器81可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器81通过执行存储器82所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线83将上述多个组件连接在一起,同时将上述组件连接到显示控制器84和显示装置以及输入/输出(I/O)装置85。输入/输出(I/O)装置85可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置85通过输入/输出(I/O)控制器86与系统相连。
其中,存储器82可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++、PHP、Python等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种程序测试方法,其特征在于,所述方法包括:
获取至少一个第一数据,所述第一数据由至少一个第一终端执行第一程序得到,所述第一数据包括至少一个第一DOM树和至少一个第一操作指令,所述第一DOM树包括至少一个第一页面的第一页面属性,所述第一页面属性用于表征所述第一页面中至少一个属性节点的文字大小和/或显示位置;
获取至少一个第一信息集合,所述第一信息集合包括所述第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
向至少一个第二终端发送所述第一信息集合,以使得所述至少一个第二终端基于所述第一信息集合执行第二程序生成至少一个第二数据,所述第二数据包括至少一个第二DOM树和至少一个第二操作指令,所述第二DOM树包括至少一个第二页面的第二页面属性,所述第二页面属性用于表征所述第二页面中至少一个属性节点的文字大小和/或显示位置;
分析得到至少一个测试结论,所述测试结论基于至少一个所述第一数据以及至少一个所述第二数据确定;
其中,所述获取至少一个第一信息集合包括:
根据各所述预定触发事件的执行顺序确定各所述第一程序的执行顺序;
根据各所述预定触发事件触发的第一操作指令确定所述第一操作指令集合;
根据所述第一程序的执行顺序和所述第一操作指令集合确定所述第一信息集合;
所述向至少一个第二终端发送所述第一信息集合包括:
根据所述第一信息集合中所述第一程序的执行顺序控制至少一个第二终端执行至少一个预定触发事件的第二操作指令以生成至少一个第二数据;
所述分析得到至少一个测试结论包括:
基于至少一个所述第一数据以及至少一个所述第二数据的匹配结果确定所述测试结论;
其中,所述基于至少一个所述第一数据以及至少一个所述第二数据的匹配结果确定所述测试结论包括:
将至少一个所述第一DOM树与至少一个所述第二DOM树中的节点进行对比,并根据至少一个第一操作指令和至少一个第二操作指令进行匹配,确定所述匹配结果;
其中,所述将至少一个所述第一DOM树与至少一个所述第二DOM树中的节点进行对比,确定所述匹配结果包括:
根据预定对应关系对至少一个所述第一页面属性与至少一个所述第二页面属性进行对比,确定所述匹配结果,所述预定对应关系根据所述第一终端的显示装置尺寸与所述第二终端的显示装置尺寸确定。
2.根据权利要求1所述的方法,其特征在于,所述第一DOM树为所述第一终端响应于至少一个所述第一操作指令所得到的至少一个第一网页的DOM树结构,所述第二DOM树为所述第二终端响应于至少一个所述第一操作指令所得到的至少一个第二网页的DOM树结构。
3.根据权利要求1所述的方法,其特征在于,所述第一终端通过浏览器执行所述第一程序,和/或所述第二终端通过浏览器执行所述第二程序。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据至少一个所述测试结论确定测试结论列表;
向至少一个预定终端发送所述测试结论列表,以使得所述预定终端对所述测试结论列表进行显示。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
向至少一个所述第一终端和/或至少一个所述第二终端发送所述测试结论列表,以使得所述第一终端和/或所述第二终端对所述测试结论列表进行显示。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一数据、所述第二数据、所述测试结论以及所述第一信息集合中的至少一项进行记录并存储。
7.根据权利要求1所述的方法,其特征在于,所述第一程序与所述第二程序为同一程序的不同版本,且所述第一程序与所述第二程序的运行环境相同。
8.根据权利要求1所述的方法,其特征在于,所述第一数据为多个所述第一终端在基于所述第一程序进行交互的过程中产生的数据,所述第二数据为多个所述第二终端在基于所述第二程序进行交互的过程中产生的数据。
9.一种程序测试装置,其特征在于,所述装置包括:
第一获取单元,用于获取至少一个第一数据,所述第一数据由至少一个第一终端执行第一程序得到,所述第一数据包括至少一个第一DOM树和至少一个第一操作指令,所述第一DOM树包括至少一个第一页面的第一页面属性,所述第一页面属性用于表征所述第一页面中至少一个属性节点的文字大小和/或显示位置;
第二获取单元,用于获取至少一个第一信息集合,所述第一信息集合包括所述第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
发送单元,用于向至少一个第二终端发送所述第一信息集合,以使得所述至少一个第二终端基于所述第一信息集合执行第二程序生成至少一个第二数据,所述第二数据包括至少一个第二DOM树和至少一个第二操作指令,所述第二DOM树包括至少一个第二页面的第二页面属性,所述第二页面属性用于表征所述第二页面中至少一个属性节点的文字大小和/或显示位置;
分析单元,用于分析得到至少一个测试结论,所述测试结论基于至少一个所述第一数据以及至少一个所述第二数据确定;
其中,所述第二获取单元还用于根据各所述预定触发事件的执行顺序确定各所述第一程序的执行顺序,根据各所述预定触发事件触发的第一操作指令确定所述第一操作指令集合,根据所述第一程序的执行顺序和所述第一操作指令集合确定所述第一信息集合;
所述发送单元还用于根据所述第一信息集合中所述第一程序的执行顺序控制至少一个第二终端执行至少一个预定触发事件的第二操作指令以生成至少一个第二数据;
所述分析单元还用于基于至少一个所述第一数据以及至少一个所述第二数据的匹配结果确定所述测试结论;
所述分析单元还用于将至少一个所述第一DOM树与至少一个所述第二DOM树中的节点进行对比,并根据至少一个第一操作指令和至少一个第二操作指令进行匹配,确定所述匹配结果;
所述分析单元还用于根据预定对应关系对至少一个所述第一页面属性与至少一个所述第二页面属性进行对比,确定所述匹配结果,所述预定对应关系根据所述第一终端的显示装置尺寸与所述第二终端的显示装置尺寸确定。
10.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-8中任一项所述的方法。
11.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-8中任一项所述的方法。
CN202010457083.2A 2020-05-26 2020-05-26 程序测试方法、程序测试装置、存储介质和电子设备 Active CN111522752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010457083.2A CN111522752B (zh) 2020-05-26 2020-05-26 程序测试方法、程序测试装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010457083.2A CN111522752B (zh) 2020-05-26 2020-05-26 程序测试方法、程序测试装置、存储介质和电子设备

Publications (2)

Publication Number Publication Date
CN111522752A CN111522752A (zh) 2020-08-11
CN111522752B true CN111522752B (zh) 2023-04-25

Family

ID=71908155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010457083.2A Active CN111522752B (zh) 2020-05-26 2020-05-26 程序测试方法、程序测试装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN111522752B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112115062A (zh) * 2020-09-28 2020-12-22 海尔优家智能科技(北京)有限公司 属性信息的检测方法及装置、存储介质、电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488560A (zh) * 2012-06-12 2014-01-01 腾讯科技(深圳)有限公司 一种用于网页测试的测试目标处理方法和装置
CN109960648A (zh) * 2017-12-26 2019-07-02 北京奇虎科技有限公司 一种应用程序的测试方法、装置
CN110297759A (zh) * 2019-05-22 2019-10-01 深圳壹账通智能科技有限公司 一种制作测试页面脚本的方法、装置、设备及存储介质
CN110928767A (zh) * 2019-10-12 2020-03-27 平安国际智慧城市科技股份有限公司 网页分析方法、装置、设备及存储介质
CN111142988A (zh) * 2019-12-03 2020-05-12 东软集团股份有限公司 页面测试方法、装置、存储介质及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189491A1 (en) * 2013-01-03 2014-07-03 Browserbite Oü Visual cross-browser layout testing method and system therefor
CN108170606B (zh) * 2018-01-03 2022-02-15 中国工商银行股份有限公司 系统软件升级类应用的测试系统及方法
US10467127B2 (en) * 2018-03-23 2019-11-05 Lendingclub Corporation Unified UI/UX and API testing of web applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488560A (zh) * 2012-06-12 2014-01-01 腾讯科技(深圳)有限公司 一种用于网页测试的测试目标处理方法和装置
CN109960648A (zh) * 2017-12-26 2019-07-02 北京奇虎科技有限公司 一种应用程序的测试方法、装置
CN110297759A (zh) * 2019-05-22 2019-10-01 深圳壹账通智能科技有限公司 一种制作测试页面脚本的方法、装置、设备及存储介质
CN110928767A (zh) * 2019-10-12 2020-03-27 平安国际智慧城市科技股份有限公司 网页分析方法、装置、设备及存储介质
CN111142988A (zh) * 2019-12-03 2020-05-12 东软集团股份有限公司 页面测试方法、装置、存储介质及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Qi Xiao-Fang ."Leveraging keyword-guided exploration to build test models for web applications".《Information and Software Technology》.2019,第111卷第110-119页. *
李冬宁."基于测试模型的可重构测试技术研究及其验证".《中国优秀硕士学位论文全文数据库 信息科技辑》.2020,(2020年第02期),第I138-588页. *

Also Published As

Publication number Publication date
CN111522752A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN110764753B (zh) 一种业务逻辑代码生成方法、装置、设备及存储介质
US10698557B2 (en) Automated screen captures
Juergens et al. Can clone detection support quality assessments of requirements specifications?
CN112270149B (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
US9384005B2 (en) Systems and methods for dynamic configuration of client-side development environments through use of application servers
US20110055815A1 (en) Incremental Runtime Compliance Validation of Renderable Objects
US20120278698A1 (en) Method and system for processing a webpage
US11074162B2 (en) System and a method for automated script generation for application testing
US20140372083A1 (en) Derived restrictions in a combinatorial model
US8103914B2 (en) Test file generation device and test file generation method
CN113076104A (zh) 页面生成方法、装置、设备及存储介质
CN115904989A (zh) 一种接口测试方法、装置、设备及可读存储介质
CN111522752B (zh) 程序测试方法、程序测试装置、存储介质和电子设备
CN109710523B (zh) 视觉稿的测试用例生成方法及装置、存储介质、电子设备
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN112988578A (zh) 一种自动化测试方法和装置
CN108885574B (zh) 用于监视和报告设计、编译和运行时的性能和正确性问题的系统
CN111078529A (zh) 客户端写入模块测试方法、装置、电子设备
CN107797917B (zh) 性能测试脚本生成方法及装置
KR20200066778A (ko) 코드 커버리지 측정 장치, 코드 커버리지 측정 장치의 코드 커버리지 측정 방법, 및 코드 커버리지 측정 시스템
CN114546850A (zh) 一种埋点的自动化测试方法、系统、装置及存储介质
CN111767222A (zh) 数据模型的验证方法、装置、电子设备、存储介质
CN117667716A (zh) 页面测试方法、装置及电子设备
CN113419739B (zh) 节点图差异检测方法、装置、电子设备及存储介质
CN113485688B (zh) 代码补全方法、装置、存储介质与电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant