CN111258890A - 程序测试方法、存储介质和系统 - Google Patents
程序测试方法、存储介质和系统 Download PDFInfo
- Publication number
- CN111258890A CN111258890A CN202010028314.8A CN202010028314A CN111258890A CN 111258890 A CN111258890 A CN 111258890A CN 202010028314 A CN202010028314 A CN 202010028314A CN 111258890 A CN111258890 A CN 111258890A
- Authority
- CN
- China
- Prior art keywords
- program
- test result
- terminal
- test
- operation instruction
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 claims abstract description 233
- 230000001960 triggered effect Effects 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 35
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种程序测试方法、存储介质和系统。本发明实施例的第一终端在执行第一程序后,获取第一测试结果并向服务器发送。同时,第一终端记录第一程序基于至少一个预定触发事件获取的执行顺序以及基于预定触发事件触发的第一操作指令构成的第一操作指令集合,从而根据执行顺序和第一操作指令集合确定第一信息集合并向第二终端发送。第二终端基于第一信息集合执行第二程序获取第二测试结果,从而向服务器发送第二测试结果。服务器可以根据第一测试结果以及第二测试结果分析得到至少一个测试结论。在本发明实施例中,各第二终端可以基于第一信息集合对第二程序自动进行测试,有效提升了第二程序的测试效率,同时有效降低了人工成本。
Description
技术领域
本发明公开涉及数据处理方法,具体涉及一种程序测试方法、存储介质和系统。
背景技术
随着计算机技术的不断发展,计算机程序的更新频率也在变得越来越频繁。在产生新的计算机程序或对原有的计算机程序进行更新后,需要对该计算机程序进行性能测试。不同版本的计算机程序通常适配不同的运行环境,或者实现至少一项不同的功能,因此需要在各相同或不同的运行环境内对可执行的计算机程序分别进行测试,从而确定不同版本的各计算机程序是否均能够正常运行。但现有的计算机程序测试方法无法对不同版本的计算机程序进行大规模测试,因此计算机程序测试效率较低。
发明内容
有鉴于此,本发明实施例的目的在于提供一种程序测试方法、存储介质和系统,以提升计算机程序测试效率。
根据本发明实施例的第一方面,提供一种程序测试方法,所述方法包括:
接收至少一个第一测试结果,其中,所述第一测试结果由至少一个第一终端执行第一程序得到;
接收至少一个第二测试结果,其中,所述第二测试结果由至少一个第二终端基于第一信息集合执行第二程序得到,其中,所述第一信息集合包含第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
分析得到至少一个测试结论,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定。
根据本发明实施例的第二方面,提供一种程序测试方法,所述方法包括:
基于第一信息集合执行第二程序,获取至少一个第二测试结果,其中,所述第一信息集合包含第一终端执行第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
向服务器发送所述至少一个第二测试结果。
优选地,所述方法还包括:
接收服务器发送的测试结论,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定,其中,所述第一测试结果由至少一个第一终端执行所述第一程序得到。
优选地,所述第一操作指令在第一运行环境可被执行,以及,所述基于所述第一信息集合执行第二程序包括:
基于第二操作指令集合以及所述执行顺序执行所述第二程序,其中,所述第二操作指令集合由所述第一操作指令集合转换得到,所述第二操作指令集合中包括的各第二操作指令在第二运行环境可被执行。
优选地,所述第一程序与所述第二程序为同一程序的不同版本,所述第一程序在所述第一运行环境中可以运行,所述第二程序在所述第二运行环境中可以运行。
优选地,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定包括:
基于至少一个所述第一测试结果和至少一个所述第二测试结果的匹配结果,确定所述测试结论。
优选地,所述第一测试结果包含至少一个第一图像,所述第二测试结果包含至少一个第二图像;以及
对至少一个所述第一图像和至少一个所述第二图像进行图像识别和/或对比,确定所述匹配结果。
优选地,所述方法还包括:
根据至少一个所述测试结论确定测试结论列表;
向至少一个预定终端发送所述测试结论列表,所述测试结论列表用以在至少一个所述预定终端显示。
优选地,通过浏览器执行所述第一程序和/或第二程序。
根据本发明实施例的第三方面,提供一种程序测试方法,所述方法包括:
执行第一程序,获取第一测试结果;
记录所述第一程序对应的执行顺序以及第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,所述第一操作指令为在第一运行环境可被执行的操作指令;
根据所述执行顺序以及所述第一操作指令集合确定第一信息集合;
向服务器发送所述第一测试结果以及向至少一个第二终端发送所述第一信息集合。
优选地,所述发送所述第一信息集合包括:
通过部署在所述第一程序中的消息中间件发送所述第一信息集合。
根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面至第三方面中任一项所述的方法。
根据本发明实施例的第五方面,提供一种程序测试系统,所述系统包括:
服务器,用于接收至少一个第一测试结果和至少一个第二测试结果,其中,所述第一测试结果由至少一个第一终端执行第一程序得到,所述第二测试结果由至少一个第二终端基于第一信息集合执行第二程序得到,所述第一信息集合包含第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,以及分析得到至少一个测试结论,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定;
第一终端,用于执行第一程序,获取第一测试结果,记录所述第一程序对应的执行顺序以及第一操作指令集合,其中,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,所述第一操作指令为在第一运行环境可被执行的操作指令,根据所述执行顺序以及所述第一操作指令集合确定第一信息集合,以及向服务器发送所述第一测试结果以及向至少一个第二终端发送所述第一信息集合;
第二终端,用于基于第一信息集合执行第二程序,获取至少一个第二测试结果,其中,所述第一信息集合包含第一终端执行第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,以及向服务器发送所述至少一个第二测试结果。
本发明实施例的第一终端在执行第一程序后,获取第一测试结果并向服务器发送。同时,第一终端记录第一程序基于至少一个预定触发事件获取的执行顺序以及基于预定触发事件触发的第一操作指令构成的第一操作指令集合,从而根据执行顺序和第一操作指令集合确定第一信息集合并向第二终端发送。第二终端基于第一信息集合执行第二程序获取第二测试结果,从而向服务器发送第二测试结果。服务器可以根据第一测试结果以及第二测试结果分析得到至少一个测试结论。在本发明实施例中,各第二终端可以基于第一信息集合对第二程序自动进行测试,有效提升了第二程序的测试效率,同时有效降低了人工成本。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例的硬件系统架构的示意图;
图2是本发明第一实施例的程序测试方法的流程图;
图3是本发明实施例的程序测试方法的示意图;
图4是本发明第一实施例的程序测试方法在第一终端侧的流程图;
图5是本发明第一实施例的程序测试方法在服务器侧的流程图;
图6是本发明第一实施例的程序测试方法在服务器侧的流程图;
图7是本发明第二实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本发明公开进行描述,但是本发明公开并不仅仅限于这些实施例。在下文对本发明公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明公开。为了避免混淆本发明公开的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在产生新的计算机程序或对原有的计算机程序进行更新后,运维人员需要对新产生或更新后的计算机程序进行性能测试。随着运行环境的种类和/或终端的种类不断增加,现有的计算机程序需要适配不同的运行环境和/或不同的终端。因此为了保证不同版本的计算机程序在对应的运行环境中均能够正常运行,需要对各计算机程序在对应的运行系统中分别进行测试(例如兼容性测试)并获取测试结果,从而根据测试结果确定各计算机程序是否均能够正常运行。
但现有的计算机程序测试方法无法对不同版本的计算机程序进行大规模测试,也就是说,需要通过人工操作的方式通过不同终端对不同版本的计算机程序分别进行测试。因此在待测试的计算机程序的数量较多或待测试的计算机程序的复杂度较高等情况时,计算机程序测试效率较低。
图1是本发明实施例的硬件系统架构的示意图。图1所示的系统架构包括至少一个第一终端,至少一个第二终端和至少一个服务器,图1分别以一个第一终端11、第二终端12和一个服务器13为例进行说明。第一终端11、第二终端12和服务器13可以通过网络进行通信连接。在本发明实施例中,第一程序和第二程序为具有不同版本的程序。具体地,第一程序与第二程序具有至少一个不同的功能,和/或多个第二程序之间存在至少一个不同的功能;或者第一程序与第二程序对应于不同的运行环境,和/或多个第二程序之间对应于不同的运行环境;或者第一程序与第二程序,或者多个第二程序之间具有完全相同的功能,且对应于相同的运行环境,但执行第一程序的第一终端11与多个执行第二程序的第二终端12对应的硬件参数不同。这使得本发明实施例的程序测试方法可以对不同版本的计算机程序进行向前兼容、向后兼容或在不同终端运行的兼容性测试。
第一终端11可以执行第一程序,并获取第一测试结果。在第一程序的执行过程中,第一终端11还可以记录第一程序基于至少一个预定触发事件获取的基于至少一个预定触发事件触发的第一操作指令构成的第一操作指令集合以及至少一个预定触发事件对应的执行顺序,并根据执行顺序和第一操作指令集合确定第一信息集合,从而向服务器13发送第一测试结果,并向第二终端12发送第一信息集合。第二终端12在接收到第一终端11发送的第一信息集合后,可以基于第一信息集合执行第二程序,并获取第二测试结果,从而向服务器13发送第二测试结果。服务器13在接收第一终端11发送的第一测试结果以及第二终端12发送的第二测试结果后,可以根据第一测试结果以及第二测试结果分析得到至少一个测试结论。
图2是本发明第一实施例的程序测试方法的流程图。如图2所示,本实施例的方法包括如下步骤:
步骤S201,执行第一程序,获取第一测试结果。
在本实施例中,第一程序部署在第一终端侧,可以由人工进行手动部署,也可以在服务器接收到针对第一程序的程序部署指令后,向第一终端发送第一程序,并由第一终端对第一程序进行自动部署,本实施例不做限定。第一测试结果可以为预先经过人工检验或自动检验的、第一终端执行第一程序所得到的测试结果,也即第二程序的参照测试结果。第一测试结果可以为第一程序在执行过程中产生的数据、在第一终端的显示界面呈现的图像等,本实施例不做限定。
在一种可选的实现方式中,为了降低安装第一程序所耗费的时间以及第一程序在安装以及运行过程中消耗的内存资源,第一终端可以将第一程序直接部署在浏览器(具体可以为第一终端内部署的任一浏览器)内部,并通过第一浏览器执行第一程序,从而获取对应的第一测试结果。容易理解,在通过第一浏览器执行第一程序时,第一终端需要将第一程序配置为浏览器内受信任的程序,从而执行第一程序。
步骤S202,记录第一程序对应的执行顺序以及第一操作指令集合。
在本实施例中,执行顺序与至少一个预定触发事件相对应,第一操作指令集合包括至少一个预定触发事件触发的第一操作指令,其中,第一操作指令为在第一运行环境(也即,第一终端搭载的运行环境)内可被执行的操作指令。在第一程序的执行过程中,第一终端可以记录第一程序对应的执行顺序以及各第一操作指令。
例如,第一程序为预定的线上教育平台APP(application,应用软件),第一程序在执行过程中,用户选择了课程1并点击播放,则预定触发事件包括事件1:用户选择课程1和事件2:用户点击播放。则第一操作指令集合包括课程1的选择指令和课程1的视频播放指令,执行顺序包括选择课程1→播放课程1。
容易理解,在本实施例中,执行顺序以及第一操作指令集合中的各第一操作指令同样经过人工检验或自动检验。
步骤S203,根据执行顺序以及第一操作指令集合确定第一信息集合。
在第一程序执行完毕后,第一终端可以根据第一程序对应的执行顺序以及第一操作指令集合确定第一信息集合。第一操作指令集合可选地,第一信息集合还可以包括其他信息,例如第一终端的终端标识等,本实施例不做限定。
步骤S204,发送第一测试结果以及第一信息集合。
在本步骤中,至少一个第一终端可以向服务器发送第一测试结果,并向至少一个第二终端发送第一信息集合。具体地,至少一个第一终端在向至少一个第二终端发送第一信息集合时,可以通过第一程序内部署的消息中间件进行信息传递。在本实施例中,部署于第一程序的消息中间件可以为RPC(Remote Procedure Call Protocol,远程呼叫协议)、CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)等,本实施例不做限定。
步骤S205,基于第一信息集合执行第二程序,获取第二测试结果。
第二程序为与第一程序具有不同版本的计算机程序。具体地,第一程序与第二程序具有至少一个不同的功能,和/或多个第二程序之间存在至少一个不同的功能;或者第一程序与第二程序对应于不同的运行环境,和/或多个第二程序之间对应于不同的运行环境;或者第一程序与第二程序,或者多个第二程序之间具有完全相同的功能,且对应于相同的运行环境,但执行第一程序的第一终端和/或多个执行第二程序的第二终端对应的硬件参数不同。
例如,第一程序为运行于运行环境1的预定软件1.0版本,第二程序可以为运行于运行环境1的预定软件2.0版本,或者为运行于运行环境2的预定软件1.0版本,或者为运行于运行环境2的预定软件2.0版本,或者同样为运行于运行环境1的预定软件1.0版本,但第一终端与第二终端的硬件参数不同。
至少一个第二终端可以通过第二程序内部署的消息中间件接收第一终端发送的第一信息集合。类似地,部署于第二程序的消息中间件可以为RPC、CORBA等,本实施例不做限定。
在本实施例中,第一程序与第二程序内部署的消息中间件为相同的消息中间件,这使得执行第一程序的第一终端与执行第二程序的第二终端可以基于相同的消息中间件进行信息传递,例如消息同步等。在通过消息中间件进行信息传递时,第一终端和至少一个第二终端可以被看作由消息中间件建立的消息群中的成员,若第一终端在消息群中发布了任一信息(在本实施例中,也即第一信息集合),该信息可以同步至各第二终端,也就是说,各第二终端均可以同步接收到第一信息集合。
在接收到第一信息集合后,无需通过人工操作,各第二终端可以基于第一信息集合自动执行对应的第二程序,从而获取对应的第二测试结果,提升了第二程序测试效率并降低了人工成本。具体地,第二终端可以按照预定的转换规则对第一信息集合中第一指令集合中的各第一操作指令进行转换,获取第二操作指令(也即,在第二终端对应的第二运行环境内可被执行的操作指令)集合,具体包括各第一操作指令对应的第二操作指令,从而根据各第二操作指令和执行顺序执行第二程序,获取对应的第二测试结果。在本实施例中,第二测试结果可以为第二程序在执行过程中产生的数据、在第二终端的显示界面呈现的图像等,本实施例不做限定。
容易理解,在本实施例中,根据实际测试需求,第一运行环境和第二运行环境可以相同,也可以不同,本实施例不做限定。
例如,第二终端为终端B,第二运行系统采用的编程语言为Kotlin(一种静态编程语言),第一程序对应的第一指令集合包括采用C语言编写的指令1A、指令2A和指令3A。终端B可以按照C语言与Kotlin的转换规则将指令1A、指令2A和指令3A分别转换为采用Kotlin编写的指令1B、指令2B和指令3B,并基于指令1B、指令2B和指令3B以及第一信息集合中的执行顺序执行第二程序,从而获取对应的第二测试结果。
在一种可选的实现方式中,为了降低安装第二程序所耗费的时间以及第二程序在安装以及运行过程中消耗的内存资源,第二终端可以将第二程序直接部署在浏览器(具体可以为第二终端内部署的任一浏览器)内部,并通过浏览器执行第二程序,从而获取对应的第二测试结果。容易理解,在通过第二浏览器执行第一程序时,第二终端需要将第二程序配置为浏览器内受信任的程序,从而执行第二程序。
步骤S206,发送第二测试结果。
第二终端在获取第二测试结果后,可以向服务器发送第二测试结果。
步骤S207,分析得到至少一个测试结论。
在本步骤中,第一测试结果为第二程序的参照测试结果,因此在接收到第一测试结果以及至少一个第二测试结果后,服务器可以将第一测试结果与至少一个第二测试结果进行匹配获取对应的匹配结果,从而根据匹配结果确定至少一个第二测试结果对应的测试结论,其中,测试结论用于表征第二测试结果对应的第二程序是否存在异常。在匹配结果为匹配时,服务器可以确定第二测试结果对应的测试结论为正常;在匹配结果为不匹配时,服务器可以确定第二测试结果对应的测试结论为异常。
可选地,服务器可以将各第一操作指令对应的第一测试结果与对应的第二操作指令对应的第二测试结果分别进行匹配或对比,并确定各第二测试结果对应的测试结论,从而在测试结论为异常时,较为准确地确定对应的第二程序的异常位置。
例如,第一操作指令对应的第一测试结果为123,对应的第二操作指令对应的第二测试结果为128,与第一测试结果的匹配结果为不匹配,则服务器可以确定第二测试结果对应的测试结论为异常。
可选地,若第一测试结果包括至少一个第一图像,第二测试结果包括至少一个第二图像时,服务器可以基于预定的特征匹配算法对第一图像和第二图像分别进行图像识别和/或对比,并获取第一图像与第二图像的匹配结果,从而根据匹配结果确定第二测试结果对应的测试结论。具体地,服务器可以通过例如OpenCV(一种基于BSD许可(开源)发行的跨平台计算机视觉库)等方式对第一测试结果以及第二测试结果分别进行特征检测以及特征提取,获取第一测试结果中有意义的图像区域,并通过暴力(Brute-Force)匹配、KNN(K-Nearest Neighbor,K最邻近)等特征匹配算法对从第一图像提取到的特征以及从至少一个第二图像提取到的特征进行特征匹配,从而确定至少一个第二图像的匹配结果。
可选地,在确定至少一个第二测试结果的测试结论后,本实施例的方法还可以包括如下步骤:
步骤S208,接收测试结论。
在确定测试结论后,服务器可以向各第二测试结果对应的第二终端发送测试结论,使得第二终端可以接收测试结论,并对测试结论进行展示。
步骤S209,根据至少一个测试结论确定测试结论列表。
在确定至少一个第二测试结果对应的测试结论后,服务器可以根据至少一个执行状态确定测试结论列表。可选地,测试结论列表中还可以包括第二测试结果对应的第二程序的程序标识,在测试结论为异常时,测试结论列表中还可以包括对应的第二程序发生异常的时刻等,本实施例不做限定。可选地,服务器还可以对执行状态为异常的第二程序的程序标识以及第二测试结果进行特殊标记,例如高亮等,从而在后续对测试结论列表进行显示时能够更容易被查看到。
可选地,服务器也可以根据至少一个为异常的执行状态确定测试结论列表,从而在后续仅对运行异常的第二程序进行显示。
步骤S210,发送测试结论列表。
在确定测试结论列表后,服务器可以向预定终端发送测试结论列表,以使得至少一个预定终端对测试结论列表进行显示。容易理解,在本步骤中,预定终端可以为第一终端或第二终端,也可以不为第一终端且不为第二终端,本实施例不做限定。
图3是本发明实施例的程序测试方法的示意图。容易理解,图3所示的第一终端和第二终端的数量和种类仅仅是示意性的。如图3所示,第一终端31执行第一程序,获取第一测试结果,并将第一测试结果发送至服务器35。同时,第一终端31对第一程序在执行过程中被触发的多个第一操作指令以及第一程序对应的执行顺序进行记录,并通过部署在第一程序以及第二程序内的消息中间件将根据各第一操作指令以及执行顺序确定的第一信息集合发送至第二终端32、第二终端33以及第二终端34。第二终端32、第二终端33以及第二终端34分别对第一信息集合中的各第一操作指令进行转换,获取可被自身搭载的运行系统执行的第二操作指令,从而基于第二操作指令以及执行顺序执行第二程序,从而获取第二程序对应的第二测试结果。第二终端32、第二终端33以及第二终端34将对应的第二测试结果发送至服务器35。服务器35根据第一测试结果和第二终端32对应的第二测试结果的匹配结果、第二终端33对应的第二测试结果的匹配结果以及第二终端34对应的第二测试结果的匹配结果,从而根据各第二测试结果的匹配结果确定各第二测试结果对应的第二程序的测试结论。可选地,服务器也可以向第二终端32和/或终端33和/或终端34发送对应的测试结论以对测试结论进行显示。可选地,服务器35还可以根据各第二程序的测试结论确定测试结论列表,从而将测试结论列表发送至预定终端36以对测试结论进行显示。
图4是本发明第一实施例的程序测试方法在第一终端侧的流程图。如图4所示,在第一终端侧,本实施例的方法包括如下步骤:
步骤S401,执行第一程序,获取第一测试结果。
步骤S401与步骤S201的实现方式相同,在此不再赘述。
步骤S402,记录第一程序对应的执行顺序以及第一操作指令集合。
步骤S402与步骤S202的实现方式相同,在此不再赘述。
步骤S403,根据执行顺序以及第一操作指令集合确定第一信息集合。
步骤S403与步骤S203的实现方式相同,在此不再赘述。
步骤S404,发送第一测试结果以及第一信息集合。
步骤S404与步骤S204的实现方式相同,在此不再赘述。
图5是本发明第一实施例的程序测试方法在第二终端侧的流程图。如图5所示,在第二终端侧,本实施例的方法包括如下步骤:
步骤S501,接收第一信息集合。
在本步骤中,至少一个第二终端接收第一终端发送的第一信息集合。
步骤S502,基于第一信息集合执行第二程序,获取第二测试结果。
步骤S502与步骤S205的实现方式相同,在此不再赘述。
步骤S503,发送第二测试结果。
步骤S503与步骤S206的实现方式相同,在此不再赘述。
可选地,还可以包括如下步骤:
步骤S504,接收测试结论。
步骤S503与步骤S208的实现方式相同,在此不再赘述。
图6是本发明第一实施例的程序测试方法在服务器侧的流程图。如图6所示,在服务器侧,本实施例的方法包括如下步骤:
步骤S601,接收至少一个第一测试结果。
步骤S602,接收至少一个第二测试结果。
步骤S603,分析得到至少一个测试结论。
步骤S603的实现方式和步骤S207相同,在此不再赘述。
可选地,还可以包括如下步骤:
步骤S604,发送至少一个测试结论。
具体地,服务器可以向至少一个终端发送对应的测试结论。
可选地,还可以包括如下步骤:
步骤S605,根据至少一个测试结论确定测试结论列表。
步骤S605的实现方式和步骤S209相同,在此不再赘述。
步骤S606,发送测试结论列表。
步骤S606的实现方式和步骤S210相同,在此不再赘述。
本实施例的至少一个第一终端在执行第一程序后,获取对应的第一测试结果并向服务器发送。同时,第一终端记录第一程序基于至少一个预定触发事件获取的执行顺序以及基于预定触发事件触发的第一操作指令构成的第一操作指令集合,从而根据执行顺序和第一操作指令集合确定第一信息集合并向至少一个第二终端发送。至少一个第二终端基于第一信息集合执行第二程序获取对应的第二测试结果,从而向服务器发送对应的第二测试结果。服务器可以根据至少一个第一测试结果以及至少一个第二测试结果分析得到至少一个测试结论。在本发明实施例中,各第二终端可以基于第一信息集合对第二程序自动进行测试,有效提升了第二程序的测试效率,同时有效降低了人工成本。
图7是本发明第二实施例的电子设备的示意图。图7所示的电子设备为通用数据处理装置,具体可以为本发明实施例的第一终端、第二终端或服务器,其包括通用的计算机硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(I/O)装置75。输入/输出(I/O)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置75通过输入/输出(I/O)控制器76与系统相连。
其中,存储器72可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++、PHP、Python等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种程序测试方法,其特征在于,所述方法包括:
接收至少一个第一测试结果,其中,所述第一测试结果由至少一个第一终端执行第一程序得到;
接收至少一个第二测试结果,其中,所述第二测试结果由至少一个第二终端基于第一信息集合执行第二程序得到,所述第一信息集合包含第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
分析得到至少一个测试结论,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定。
2.一种程序测试方法,其特征在于,所述方法包括:
基于第一信息集合执行第二程序,获取至少一个第二测试结果,其中,所述第一信息集合包含第一终端执行第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令;
向服务器发送所述至少一个第二测试结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收服务器发送的测试结论,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定,其中,所述第一测试结果由至少一个第一终端执行所述第一程序得到。
4.根据权利要求1或2所述的方法,其特征在于,所述第一操作指令在第一运行环境可被执行,以及,所述基于所述第一信息集合执行第二程序包括:
基于第二操作指令集合以及所述执行顺序执行所述第二程序,其中,所述第二操作指令集合由所述第一操作指令集合转换得到,所述第二操作指令集合中包括的各第二操作指令在第二运行环境可被执行。
5.根据权利要求4所述的方法,其特征在于,所述第一程序与所述第二程序为同一程序的不同版本,所述第一程序在所述第一运行环境中可以运行,所述第二程序在所述第二运行环境中可以运行。
6.根据权利要求1或3所述的方法,其特征在于,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定包括:
基于至少一个所述第一测试结果和至少一个所述第二测试结果的匹配结果,确定所述测试结论。
7.根据权利要求6所述的方法,其特征在于,所述第一测试结果包含至少一个第一图像,所述第二测试结果包含至少一个第二图像;以及
对至少一个所述第一图像和至少一个所述第二图像进行图像识别和/或对比,确定所述匹配结果。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据至少一个所述测试结论确定测试结论列表;
向至少一个预定终端发送所述测试结论列表,所述测试结论列表用以在至少一个所述预定终端显示。
9.根据权利要求1或2所述的方法,其特征在于,通过浏览器执行所述第一程序和/或第二程序。
10.一种程序测试方法,其特征在于,所述方法包括:
执行第一程序,获取第一测试结果;
记录所述第一程序对应的执行顺序以及第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,所述第一操作指令为在第一运行环境可被执行的操作指令;
根据所述执行顺序以及所述第一操作指令集合确定第一信息集合;
向服务器发送所述第一测试结果以及向至少一个第二终端发送所述第一信息集合。
11.根据权利要求10所述的方法,其特征在于,所述发送所述第一信息集合包括:
通过部署在所述第一程序中的消息中间件发送所述第一信息集合。
12.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-11中任一项所述的方法。
13.一种程序测试系统,其特征在于,所述系统包括:
服务器,用于接收至少一个第一测试结果和至少一个第二测试结果,其中,所述第一测试结果由至少一个第一终端执行第一程序得到,所述第二测试结果由至少一个第二终端基于第一信息集合执行第二程序得到,所述第一信息集合包含第一终端执行所述第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,以及分析得到至少一个测试结论,所述测试结论基于至少一个第一测试结果和至少一个所述第二测试结果确定;
第一终端,用于执行第一程序,获取第一测试结果,记录所述第一程序对应的执行顺序以及第一操作指令集合,其中,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,所述第一操作指令为在第一运行环境可被执行的操作指令,根据所述执行顺序以及所述第一操作指令集合确定第一信息集合,以及向服务器发送所述第一测试结果以及向至少一个第二终端发送所述第一信息集合;
第二终端,用于基于第一信息集合执行第二程序,获取至少一个第二测试结果,其中,所述第一信息集合包含第一终端执行第一程序对应的执行顺序和第一操作指令集合,所述执行顺序与至少一个预定触发事件相对应,所述第一操作指令集合包括各所述预定触发事件触发的第一操作指令,以及向服务器发送所述至少一个第二测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010028314.8A CN111258890A (zh) | 2020-01-10 | 2020-01-10 | 程序测试方法、存储介质和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010028314.8A CN111258890A (zh) | 2020-01-10 | 2020-01-10 | 程序测试方法、存储介质和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111258890A true CN111258890A (zh) | 2020-06-09 |
Family
ID=70948630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010028314.8A Pending CN111258890A (zh) | 2020-01-10 | 2020-01-10 | 程序测试方法、存储介质和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258890A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608803A (zh) * | 2021-08-16 | 2021-11-05 | 上海万物新生环保科技集团有限公司 | 一种用于多运行环境下实现功能操作的方法与设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095062A (zh) * | 2014-05-09 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及系统 |
CN108170606A (zh) * | 2018-01-03 | 2018-06-15 | 中国工商银行股份有限公司 | 系统软件升级类应用的测试系统及方法 |
CN108459953A (zh) * | 2017-02-22 | 2018-08-28 | 北京京东尚科信息技术有限公司 | 测试方法和装置 |
CN108920376A (zh) * | 2018-07-13 | 2018-11-30 | 北京京东金融科技控股有限公司 | 应用程序的测试方法、装置及介质 |
CN109213510A (zh) * | 2018-09-21 | 2019-01-15 | 深圳市鼎阳科技有限公司 | 一种用于嵌入式设备的应用程序升级方法及存储介质 |
-
2020
- 2020-01-10 CN CN202010028314.8A patent/CN111258890A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095062A (zh) * | 2014-05-09 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及系统 |
CN108459953A (zh) * | 2017-02-22 | 2018-08-28 | 北京京东尚科信息技术有限公司 | 测试方法和装置 |
CN108170606A (zh) * | 2018-01-03 | 2018-06-15 | 中国工商银行股份有限公司 | 系统软件升级类应用的测试系统及方法 |
CN108920376A (zh) * | 2018-07-13 | 2018-11-30 | 北京京东金融科技控股有限公司 | 应用程序的测试方法、装置及介质 |
CN109213510A (zh) * | 2018-09-21 | 2019-01-15 | 深圳市鼎阳科技有限公司 | 一种用于嵌入式设备的应用程序升级方法及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608803A (zh) * | 2021-08-16 | 2021-11-05 | 上海万物新生环保科技集团有限公司 | 一种用于多运行环境下实现功能操作的方法与设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347587B (zh) | App兼容性测试方法、装置、计算机设备及存储介质 | |
CN108804302B (zh) | 一种远程测试方法、系统及相关设备 | |
CN107967143B (zh) | 获取客户端应用程序源代码的更新指示信息的方法、装置和系统 | |
CN108521353B (zh) | 定位性能瓶颈的处理方法、设备及可读存储介质 | |
US11099657B2 (en) | Remote information input method, device and system | |
CN110069413B (zh) | 测试数据通信、测试方法、装置、设备及存储介质 | |
CN113448854A (zh) | 一种回归测试方法和装置 | |
CN111917603A (zh) | 客户端测试方法、装置、计算机设备及存储介质 | |
CN110297776B (zh) | 检测报告生成、接收方法、装置、设备及存储介质 | |
CN109299124B (zh) | 用于更新模型的方法和装置 | |
US20150212930A1 (en) | Application test system, application test method and storage medium | |
CN113986270B (zh) | 分布式应用部署方法、装置、存储介质及电子设备 | |
CN111190791A (zh) | 应用异常上报方法、装置和电子设备 | |
CN112911283B (zh) | 智能电视测试方法及装置 | |
CN111258890A (zh) | 程序测试方法、存储介质和系统 | |
CN109240928A (zh) | 一种测试方法、装置、设备及存储介质 | |
CN103473170B (zh) | 测试系统及测试方法 | |
CN109302336B (zh) | 邮件生成方法、装置、计算机设备及存储介质 | |
CN115617671A (zh) | 测试脚本的自动生成方法、装置、计算机设备及存储介质 | |
CN109669715A (zh) | 应用程序动态更新方法、设备及存储介质 | |
CN111435328A (zh) | 应用测试方法、装置、电子设备及可读存储介质 | |
JP7518746B2 (ja) | 情報処理装置、情報処理方法、プログラム、および情報処理システム | |
CN113407229B (zh) | 用于生成离线脚本的方法及装置 | |
US10977146B2 (en) | Application operation monitoring apparatus and application operation monitoring method | |
CN111741046B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200609 |
|
RJ01 | Rejection of invention patent application after publication |