CN108664381A - 测试方法及装置 - Google Patents

测试方法及装置 Download PDF

Info

Publication number
CN108664381A
CN108664381A CN201710189436.3A CN201710189436A CN108664381A CN 108664381 A CN108664381 A CN 108664381A CN 201710189436 A CN201710189436 A CN 201710189436A CN 108664381 A CN108664381 A CN 108664381A
Authority
CN
China
Prior art keywords
test case
test
queue
queues
distribution
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.)
Granted
Application number
CN201710189436.3A
Other languages
English (en)
Other versions
CN108664381B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710189436.3A priority Critical patent/CN108664381B/zh
Publication of CN108664381A publication Critical patent/CN108664381A/zh
Application granted granted Critical
Publication of CN108664381B publication Critical patent/CN108664381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

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)自动化测试
即由测试人员针对测试对象编写好一系列的测试用例,安装有待测试软件的设备总运行测试对象得到执行结果,测试设备需要逐个运行测试用例,测试所需的时间是设备执行每个测试用例所需的时间的加和;因此当测试用较多时,测试仍然需要较多时间,尤其是对于大型的软件的测试难以保证测试用例;如果减少测试用例,则可能会影响软件测试的全面性。
综上所述,对于如何提升测试用例的执行效率,相关技术尚无有效解决方案。
发明内容
本发明实施例提供一种测试方法及装置,能够提升执行测试用例的效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种测试方法,包括:
获取待执行的测试用例集合;
根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;
在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;
按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;
从分发有测试用例的所述队列获取所分发测试用例的执行结果。
第二方面,本发明实施例提供一种测试装置,包括:
获取模块,用于获取待执行的测试用例集合;
分发粒度模块,用于根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;
检测模块,用于在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;
分发模块,用于按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;
通信模块,用于从分发有测试用例的所述队列获取所分发测试用例的执行结果。
第三方面,本发明实施例提供一种测试装置,包括存储器和处理器,存储器中存储有可执行指令,用于引起处理器执行本发明实施例提供的测试方法。
第四方面,本发明实施例提供一种存储介质,存储有可执行指令,用于执行本发明实施例提供的测试方法。
本发明实施例具有以下有益效果:
采用多个队列并行执行测试用例,按照一定分发粒度而非一次性向各队列分发测试用例集合的测试用例,这样,在队列繁忙时能够避免向设备继续发送测试用例导致阻塞的情况;
通过周期性查询空闲队列并分发测试用例,能够充分利用各个队列的计算能力,避免部分队列空闲而部分队列繁忙的情况,在提升队列的整体的利用率基础上提升测试用例的执行效率。
附图说明
图1-1是本发明实施例提供的测试装置分发并执行测试用例进行执行的一个可选的架构示意图;
图1-2是本发明实施例提供的测试装置分发并执行测试用例进行执行的一个可选的架构示意图;
图1-3是本发明实施例提供的测试装置分发并执行测试用例进行执行的一个可选的架构示意图;
图2是本发明实施例提供的测试装置的一个可选的硬件结构示意图;
图3是本发明实施例提供的设备执行分发的测试用例以输出执行结果的一个可选的功能架构示意图;
图4-1是本发明实施例提供的测试方法的一个可选的示意图;
图4-2是本发明实施例提供的测试方法的一个可选的示意图;
图5是本发明实施例提供的执行器向手机分发测试用例并获得执行结果的一个可选的交互示意图;
图6是本发明实施例提供的执行器向手机按照分发粒度分发测试用例,并获得执行结果的一个可选的流程示意图;
图7是本发明实施例提供的测试装置的一个可选的功能结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)测试用例(Test Case),是针对待测试的软件(如系统软件和应用软件等)某个特殊目标而编制的一组测试输入、执行条件以及预期结果,软件在符合执行条件时根据测试输入进行处理形成实际执行结果,供测试人员将预期结果与执行结果进行比较,以测试软件的某个路径或核实软件的某个功能是否满足特定需求。
例如,就测试软件的用户提交登录表单时用户名和密码的格式校验功能来说,测试输入、执行条件和预期结果可以是:
1.1)测试输入:用户名和密码都符合要求(格式上的要求);执行条件:用户点击提交表单;预期结果:校验通过,向服务器提交验证;
1.2)测试输入:用户名和密码都不符合要求(格式上的要求);执行条件:用户点击提交表单;预期结果:校验不通过,提示用户名和密码都不符合要求;
1.3)测试输入:用户名符合要求,密码不符合要求(格式上的要求);执行条件:用户点击提交表单;预期结果:校验不通过,提示用户名和密码都不符合要求;
上述测试用例的结构仅为示例,根据待测试软件以及测试目的的不同,测试用例的结构存在区别,本发明实施例中不排斥使用其他类型的测试用例。
2)测试用例集合,需要执行以获得实际执行结果的测试用例的集合,测试用例集合中的测试用例可以针对同一待测试软件,也可以是对应不同待测试软件。
测试用例在测试用例集合中可以随机排序,也可以根据测试用例所涉及的软件的功能的核心程度进行优先级排序。
例如,一个优先级排序如下:
P0,核心功能测试用例(冒烟测试),确定此版本是否可测的测试用例,此部分测试用例如果失败会阻碍大部分其他测试用例的验证。
P1,高优先级测试用例,最常执行以保证功能性是稳定的,包括基本功能测试,和重要的错误、边界测试等。
P2,中优先级测试用例,更全面地验证功能的各个方面,包括异常测试,边界、中断、断网、容错、用户界面(UI,User Interface)等方面的测试。
P3,低优先级测试用例,运行的频率最低,包括性能、压力、兼容性、稳定性、安全、可用性等等方面的测试。
上述优先级排序的划分仅为示例,本发明实施例不排除使用其他方式或维度对测试用例进行优先级排序。
3)队列,即分配有计算资源以用于执行测试用例的队列,队列以线程或设备为粒度运行。
例如,队列的计算资源的分配包括以下几种情况:
3.1)以线程为粒度向队列分配计算资源,即每个队列分配有处理器的一个或多个线程,队列中的测试用例在所对应的线程中执行(例如,当一个队列只分配有一个线程时,队列中的测试用例在线程中顺序执行;当有多个线程时,队列中测试在多个线程中并行执行)。
需要指出地,当一个队列分配有多个线程时,多个线程可以是设备的一个处理器(同一处理器)的多个线程,或者是不同处理器(例如,同一设备的多个处理器,或者是不同设备的多个处理器)的多个线程,又或者是可以分布在多个设备的处理器的多个线程。
3.2)以设备为粒度向队列分配计算资源,每个队列分配有一个或多个设备(如手机、电脑和服务器等计算设备),即队列中的测试用例按照顺序在所对应的设备中执行,本发明实施例中对于设备执行测试用例所使用的线程的数量不做限制。
4)设备,与测试装置建立调试连接的以用于运行队列的设备,能够用于通过调试连接接收测试装置发送的测试用例,在队列中执行测试结果并将测试用例的执行结果(实际结果)通过调试连接发送到执行器,调试连接可以通过各种有线方式如通用串行总线(USB,Universal Serial Bus),或无线方式如无线相容性认证(WiFi,Wireless Fidelity)方式承载。
设备根据待测试软件的运行平台而有所区别,例如测试移动应用软件时设备可以为手机、平板电脑等;再例如测试个人电脑(PC,Personal Computer)端应用软件时,设备可以为笔记本电脑、台式机电脑等终端设备。
5)分发粒度,与执行测试用例的队列对应,用于表示在每个周期中向队列发送的用于执行的测试用例的数量。
以每个队列运行在一个设备中为例,向队列分发测试用例等同于向设备分发测试样例,设备集合中各设备可以采用统一的分发粒度,也可以针对每个设备有针对性设置分发粒度。
举例来说,对于设备集合:设备1、设备2和设备3,若各设备对应的分发粒度为2、3和4,则在预定周期到达时若设备1、设备2和设备3处于空闲状态,则由测试装置向设备1发送2个测试用例,向设备2发送3个测试用例,向设备3发送4个测试用例。
现在将参考附图描述实现本发明实施例的测试装置的应用架构,参见图1-1,图1-1是本发明实施例提供的测试装置分发并执行测试用例的一个可选的架构示意图,测试装置与运行队列集合各队列之间建立调试连接,调试连接是测试装置与运行队列的设备所开放的调试功能建立的连接,通过调试连接发送测试用例至队列中执行,并获取设备执行测试用例的执行结果。
队列与设备可以是对应的关系,例如在一个设备中对应运行一个队列(当然,本发明实施例不排除在多个设备中共同运行一个队列的情况)。
参见图1-2,图1-2是本发明实施例提供的测试装置分发并执行测试用例的一个可选的架构示意图,多个设备与测试装置是分别建立调试连接,通过与测试装置的调试连接接收测试装置分发的测试用例,每个设备中运行一个待执行的测试用例的队列(例如可以是缓存中的队列),例如,在设备的处理器的一个线程或多个线程中运行队列。
当测试用例是对待测试软件的图形界面相关的功能时,适用于使用图1-2示出的架构执行测试用例,这是因为,每个队列都在不同的设备中运行,避免了在一个设备中同时运行多个测试用例导致图形界面的显示失败的情况。
参见图1-3,图1-3是本发明实施例提供的测试装置分发并执行测试用例的一个可选的架构示意图,多个设备与测试装置是分别建立调试连接,通过与测试装置的调试连接接收测试装置分发的测试用例,每个设备中运行三个队列,每个队列分配有一个线程,即设备中以线程为粒度运行多个待执行的测试用例的队列。
图1-3示出的测试架构适用于测试用例是用于与用户界面显示无关的测试,如断网、容错等方面的测试时,队列可以与设备(设备的处理器)的线程是对应的关系,例如在设备的一个线程中运行多队列,当然,本发明实施例不排除在在一个设备中为一个队列分配多个线程的情况。
对于安卓设备来说,与测试装置之间的调试连接可以基于安卓调试桥(ADB,Android Debug Bridge)连接,测试装置通过ADB连接向设备发送各种调试指令,调试指令应用的示例如下:
通过adb push<本地路径1><远程路径1>这样格式的指令,能够将测试用例发送到设备运行的队列中执行,其中本地路径1是测试装置存储测试用例的本地位置,远程路径1是设备中用于存储测试用例的位置;
通过adb pull<本地路径2><远程路径2>这样格式的指令,将设备执行测试用例的执行结果拉取到测试装置本地,其中本地路径2是测试装置本地存储测试用例的执行结果的位置,远程路径2是设备中用于存储测试用例的执行结果的位置。
测试装置在获得测试用例的执行结果后,通过比较测试用例的实际执行结果与预期结果,实时输出执行结果,在不符合测试目的时可以及时发出告警,供测试人员确定软件是否符合预期的测试目的,在出现告警时及时排查问题。
现在将参考附图描述实现本发明实施例的测试装置。测试装置可以以各种形式来实施,例如服务器、终端(如台式机电脑、笔记本电脑)等各种类型的计算设备。
参见图2,图2是本发明实施例提供的测试装置的一个可选的硬件结构示意图,测试装置100包括处理器101、通信单元102、存储器103、输入单元104和内存器105。图2示出了具有各种组件的测试装置,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述网络服务器中的组件。
处理器101用于控制测试装置100的总体操作。例如,处理器101执行与实现软件测试相关的控制和处理,例如测试用例的分发、执行结果的实时输出与告警。
通信单元102通常包括一个或多个组件,其允许测试装置100与运行队列的设备以有线方式或无线方式建立调试连接。
例如,有线通信单元可以是USB通信模块,用于与设备建立USB通道以承载调试连接。
例如,无线通信单元可以实施为移动通信模块、无线互联网模块和短程通信模块中的至少一个。
无线互联网模块支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到测试装置,并与设备建立无线的通信通道以承载调试连接。该模块所涉及的无线互联网接入技术可以包括无线局域网(WLAN)、Wi-Fi等等。
短程通信模块是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙、射频识别(RFID,Radio Frequency Identification)、红外数据协会(IrDA,Infrared DataAssociation)、超宽带(UWB,Ultra Wide Band)、紫蜂等等。
存储器103可以存储由处理器101执行的测试用例等等,或者可以暂时地存储已经输出或将要输出的测试用例的执行结果。
存储器103可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、只读存储器(ROM,Read Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read Only Memory)、磁性存储器、磁盘、光盘等等。而且,测试装置100可以与通过网络连接执行存储器的存储功能的网络存储装置协作。
输入单元104可以根据用户输入的命令生成键输入数据以控制测试装置100的各种操作。输入单元104允许用户输入各种类型的信息,并且可以包括键盘、触摸板、滚轮、摇杆等等。
内存器105,供处理器101运行各种应用程序的易失性存储介质,例如可以为随机访问存储器(RAM,Random Access Memory)、静态随机访问存储器(SRAM,Static RandomAccess Memory)、其作用是用于暂时存放处理器101的运算数据,以及与硬盘等外部的存储器交换的数据。处理器101会把需要运算的数据调到内存器105中进行运算。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。
对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC,Application Specific Integrated Circuit)、数字信号处理器(DSP,Digital SignalProcessing)、数字信号处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在处理器101中实施。
对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器103中并且由处理器101执行。
至此,已经按照其功能描述了本发明实施例中涉及的测试装置,基于上述测试装置的硬件结构示意图,对实现本发明实施例提供的设备执行测试用例并输出执行结果的处理进行说明。
参见图3,图3是本发明实施例提供的设备执行分发的测试用例以输出执行结果的一个可选的功能架构示意图,设备与通过各种接口与测试装置建立调试连接,例如,可以为基于超文本传输协议(HTTP,HyperText Transfer Protocol))、加密超文本传输协议、程过程调用协议(RPC,Remote Procedure Call Protocol)的网络(Web)接口。
对于图3示出的设备中用于执行测试用例的功能架构而言,涉及以下功能模块:
通信模块201,用于与测试装置建立调试连接,接收测试装置分发的测试用例;
框架核心模块202,用于生成测试用例的描述文件,在描述文件中定义执行测试用例需要调用的接口、方法以及数据等信息;构造测试用例需要使用的数据,以格式化的方式存储执行测试用例时需要使用的数据;
代码生成模块203,根据测试用例的描述文件自动生成单元测试代码,一个单元测试代码与一个测试用例对应;
测试用例执行器204,执行单元测试代码,向设备本地的文件中输出测试用例的执行结果。
至此,已经对实现本发明实施例的测试装置和设备的基本功能结构进行了说明,下面结合上述记载的测试装置和设备,对测试装置根据分发粒度向设备运行的队列分发测试用例并获得执行结果的方案进行说明。
本发明实施例中,测试装置获得待执行的测试用例集合后,根据队列集合中各队列的分发粒度,在每个周期向队列集合中的各队列分发测试用例集合中的部分测试用例,也就是通过周期化的方式分批次向队列分发测试用例,在队列执行完所接收的测试用例并返回相应的执行结果后,继续向各队列分发测试用例,直至测试用例集合中的测试用例被执行完毕,并获得相应的执行结果。
参见图4-1,图4-1是本发明实施例提供的测试方法的一个可选的示意图,包括以下步骤:
步骤101,测试装置获取待执行的测试用例集合。
测试装置向测试人员提供本地提交或网络远程提交的方式,接收测试人员上传的测试用例的集合,支持测试人员提供针对待测试软件批量上传测试用例,根据测试用例对应的待测试软件,在测试装置本地形成待测试软件的测试用例集合。
在一个实施例中,对于测试获取的测试用例集合,可以将测试用例集合中的测试用例按照不同维度进行优先级的降序进行排序,后续按照优先级排序的降序读取测试用例进行分发。
例如,对测试用例进行优先级排序,可以按照前述的核心程度,进行如P0/P1/P2/P3的核心程度的降序排序,后续按照核心程度的降序从测试用例集合中读取测试用例并进行分发,能够确保优先获得核心测试用例的执行结果。
再例如,对测试用例进行优先级排序,还可以按照如各测试用例的代码长度(代码长度是指单元测试代码连接后形成的可执行文件的长度),进行代码长度的降序排序,后续按照代码长度的降序进行分发测试用例,能够确保优先获得复杂的用例的执行结果。
以上是针对测试用例集合中的测试用例是对应同一待测试软件时的排序情况。
当然,实际应用中,往往需要对多个待测试软件进行测试,测试装置接收到测试人员针对多个待测软件上传的测试用例时,按照就测试人员针对每个待测试软件形成相应的测试用例集合,或者,可以将测试人员针对所有待测试软件上传的测试用例形成一个测试用例集合。
对测试用例集合中包括对应多个待测试软件的测试用例的情况,测试用例集合中测试用例的优先级排序可以根据核心程度、代码长度进行优先级排序,能够确保优先获得核心测试用例的执行结果。
此外,对于包括多个待测试软件测试用例的测试用例集合来说,还可以首先结合待测试软件自身的优先级进行排序形成对应每个待测试软件的测试用例的子集,然后对每个子集中的测试用例根据核心程度、代码长度等维度进行优先级排序。
例如,对于测试用例集合C{C1,C2,C3}来讲,测试用例子集C1是待测试软件1的测试用例的集合,测试用例子集C2是待测试软件2的测试用例的集合,测试用例子集C3是待测试软件3的测试用例的集合,测试人员希望按照待测试软件1/2/3的顺序获得相应测试用例的执行结果,因此按照C1、C2、C3的顺序排列子集,在每个子集中,可以按照核心程度、代码长度进行优先级的排序。
步骤102,测试装置根据测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定向各队列分发测试用例集合中部分测试用例时的分发粒度。
测试装置采用周期化的方式向队列分发测试用例,分发粒度用于控制在每个周期的计时到达时向队列分发的测试用例的数量。
结合确定分发粒度的不同情况进行说明:
情况1)队列集合中各队列采用统一的分发粒度
在一个实施例中,队列集合中各队列的分发粒度相同,分发粒度P与队列集合中队列的数量Q的乘积N*Q来说,小于测试用例集合中测试用例的数量N,从而,在每个分发周期到达时向队列集合分发测试用例集合中的部分测试用例,避免一次性分发测试用例集合中的全部测试用例导致(因各种问题,如队列异常)队列中的测试用例拥塞而需要重新分发、进而影响测试效率的问题。
例如,测试用例集合中包括150个测试用例,队列集合包括15个队列,则可以取小于10(150/15)的值(如5)作为各队列统一的分发粒度,从而可在每个周期向各队列分发10个测试用例。
在一个实际的测试场景中,测试装置与多个设备连接,每个设备中运行一个队列,当设备的计算能力一致(如相同配置的手机)时,在一个周期的计时到达时向各设备发送相同数量的测试用例,使得各设备最大程度同步执行完毕所接收的测试用例,当在下一周期的计时到达时,可以继续向各设备继续分发测试用例,一方面,可以避免设备在一个周期的中间执行完毕测试用例而在周期的后续阶段闲置的情况,提升执行测试用例的效率,另一方面在每个周期进行队列按照分发粒度分发部分测试用例,避免一次性向队列分发测试用例而产生拥塞。
情况2)根据测试用例代码长度确定各队列的分发粒度,使各个队列分发到的测试用例的代码长度(也即是代码长度的加和)均衡。
在一个实施例中,根据队列集合中队列的数量,将测试用例集合中的部分测试用例划分为相应数量的子集,即每个队列分配一个子集,以向队列分配的子集作为相应队列的分发粒度,并且各个子集的代码长度均衡。
实际应用中,对于将部分测试用例划分为子集而言有多种不同的候选的划分方式,在这些候选的划分方式中选取能够使子集的代码长度均衡的划分方式,使用选中划分方式对测试用例集合进行划分得到子集。
举例来说,可以使用以下条件判断候选划分方式划分得到的子集的代码长度是否均衡:
1)各个子集的代码长度(即子集所包括的全部测试用例的代码长度的加和)的相同。
例如,对于队列是是分配线程来运行的情况,假设可供执行测试用例的线程的数量为3个,对于测试用例集合C对于来讲,通过计算其中各个测试用例的代码长度,将其中部分测试用例(如预定数量或预定比例的测试用例)进行组合,得到子集,记为C1、C2和C3,子集的代码长度相同,线程1-3可以对应分配子集C1、C2和C3中的测试用例。
再例如,对于队列是分配设备来运行的情况,假设可供执行测试用的设备的数量为3个,对于测试用例集合C对于来讲,通过计算其中各个测试用例的代码长度,将其中部分测试用例(如预定数量或预定比例的测试用例)的测试用例进行划分得到子集,记为C1、C2和C3,子集的代码长度相同,设备1-3可以对应分配子集C1、C2和C3中的测试用例。
2)任意两个子集的代码长度(即子集中包括的测试用例的代码长度的加和)的差值低于代码长度阈值。
例如,对于队列是以分配线程来运行的情况,假设可供执行测试用例的线程的数量为4个,对于测试用例集合C来讲,通过计算其中各个测试用例的代码长度,将其中部分测试用例(如预定数量或预定比例的测试用例)的测试用例进行组合,得到子集,记为C1、C2、C3和C4,任意两个子集的代码长度的差值低于代码长度阈值,线程1-4可以对应分配子集C1、C2、C3和C4中的测试用例。
例如,对于队列是分配设备来运行的情况,假设可供执行测试用例的设备的数量为4个,对于测试用例集合C来讲,通过计算其中各个测试用例的代码长度,将其中部分测试用例(如预定数量或预定比例的测试用例)的测试用例进行划分得到子集,记为C1、C2、C3和C4,任意两个子集的代码长度的差值低于代码长度阈值,设备1-4可以对应分配子集C1、C2、C3和C4中的测试用例。
在一个实际的测试场景中,使用上述情况2)确定分发粒度适用于队列集合中各队列的计算能力均衡的情况,这是因为,当执行测试用例的线程或者设备的计算能力均衡时,各队列执行的测试用例的代码长度相同,则执行测试用例所消耗的时间必然趋于一致。
分析如下:队列执行所分发的测试用例的时间t可以表示如下:
t=L/CA (1)
L表示队列所分发到的测试用例的代码长度的加和,CA表示队列的计算能力,当队列以设备为粒度运行(如一个队列分配一个设备来运行)时,计算能力是对运行队列的设备的i个硬件配置CAi(如处理器主频、线程、倍频、内存容量等)的量化值进行加权计算得到;当队列以线程为粒度运行(如一个队列分配一个线程来运行),计算能力是对运行队列的处理器的i个硬件配置CAi(如处理器主频、线程、倍频)的量化值进行加权计算得到。
可见,上述测试场景中,测试装置如果检测到各队列的计算能力相同,或检测到任意两个队列的计算能力的差值低于计算能力阈值,则可以根据将测试用例集合中的部分测试用例划分为相应数量的子集,以子集为分发粒度,能够实现队列同步执行完毕所分发到的测试用例的技术效果,在每个周期的计时到达时都可以向队列分发测试用例,当在下一周期的计时到达时,可以继续向各设备继续分发测试用例,避免设备在一个周期的中间执行完毕测试用例而在周期的后续阶段闲置的情况,一方面可以保证队列繁忙以提升测试用例的执行效率,另一方面在每个周期进行队列按照分发粒度分发部分测试用例,避免一次性向队列分发测试用例而产生拥塞。
情况3)根据测试用例消耗队列的执行时间确定各队列的分发粒度,使各个队列执行分发到的测试用例的时间均衡。
在一个实施例中,根据队列集合中队列的数量,计算测试用例集合中的部分测试用例划分为相应数量的子集,即每个队列分配一个子集,以向队列分配的子集作为相应队列的分发粒度,并且各个子集消耗目标队列(也就是执行相应子集中测试用例的队列)的执行时间均衡。
实际应用中,对于将部分测试用例划分为子集而言有多种不同的候选的划分方式,在每个划分方式中,测试用例集合中的部分测试用例被划分为子集(子集的数量与队列的数量一致),并且子集被分配到一个队列,该队列对于所分配的子集而言就是目标队列,计算子集消耗目标队列的执行时间,并通过比较各子集消耗目标队列的执行时间(也就是目标队列执行所分配的子集中的测试用例所需要的时间)是否相同,或者任意两个子集消耗目标队列的执行时间的差值是否低于执行时间阈值,如果是,说明该划分方式能够满足使各队列的执行时间均衡的效果,将该划分方式中各子集作为相应目标队列的分发粒度。
例如,在一个实际的测试场景中,假设可供执行测试用的线程的数量为3个,对于测试用例集合C来讲,通过计算其中各个测试用例的代码长度,在一个划分方式中,将测试用例集合中部分测试用例(如预定数量或预定比例的测试用例)的测试用例进行划分得到子集,记为C1、C2和C3,线程1-3可以对应分配子集C1、C2和C3中的测试用例,对于子集C1而言线程1为目标线程,对于子集C2而言线程2为目标线程,对于子集C3而言线程3为目标线程,根据公式(1)计算线程1执行子集C1所需的执行时间t1,线程2执行子集C2所需的执行时间t2,线程3执行子集C3所需的执行时间t3,如果t1、t2和t3的值相同,或者任意两个执行时间的差值低于执行时间阈值,则说明该划分方式能够实现执行时间均衡的效果,将C1、C2和C3对应作为线程1、线程2、和线程3的分发粒度。
可见,上述测试场景中,测试装置以消耗目标队列相同执行时间的子集为分发粒度,能够实现队列同步执行完毕所分发到的测试用例的技术效果,在每个周期的计时到达时可以向队列分发测试用例,一方面,可以避免设备在一个周期的中间执行完毕测试用例而在周期的后续阶段闲置的情况,提升执行测试用例的效率,另一方面在每个周期进行队列按照分发粒度分发部分测试用例,避免一次性向队列分发测试用例而产生拥塞的情况。
步骤103,测试装置在预定周期到达时,检测队列集合中未执行测试用例的空闲队列。
对于测试装置而言,与运行队列的设备建立调试连接后,即开始按照预定周期计时,预定周期的取值与各队列执行完毕一个分发粒度的测试用例的执行时间对应;或者,取值可以为执行时间的比例值,如20%、50%等,这样,能够保证在预定周期的即时到达的时刻与队列执行测试用例完毕的时刻最大程度吻合,避免队列闲置的情况,提升测试用例的执行效率。
步骤104,测试装置按照各空闲队列的分发粒度,向相应空闲队列分发测试用例集合中不同的测试用例,直至测试用例集合中的测试用例分发完毕,或者,直至各空闲队列均分发有相应分发粒度的测试用例。
在一个实施例中,在每个预定周期的即时到达时,测试装置从测试用例集合中读取未分发的测试用例,根据空闲队列的分发粒度向相应的空闲队列分发相应数量的测试用例,直至每个空闲队列都分发有与分发粒度相应数量的测试用例,此时测试用例中剩余的未分发的测试用例,留待下一周期的计时到达时进行分发;如果在分发测试用例的过程中,测试用例集合中的测试用例已经全部分发完毕,则中止分发,直至测试人员向测试装置上传新的测试用例。
例如,测试装置提供根据测试用例的优先级排序向各队列分发测试用例,即按照根据优先级排序的降序,从测试用例集合中顺序读取与各空闲队列的分发粒度相应的测试用例;将基于各空闲队列的分发粒度读取的测试用例,发送至相应的空闲队列。
示例性地,这里的优先级排序可以为基于核心程度的降序排序,如P0/P1/P3/P4的优先级排序,即在预定周期的即时到达时,首先读取P0优先级的测试用例进行分发,然后读取P1优先级的测试用例进行分发,以此类推。
示例性地,当测试用例集合中包括多个待测试软件的测试用例时,还可以根据待测试软件的优先级(根据测试人员针对不同待测试软件期望获得执行结果的先后顺序排序),向各队列顺序分发各待测试软件的测试用例,即首先分发最高优先级待测试软件的测试用例,然后分发次高优先级待测试软件的测试用例。
步骤105,测试装置从分发有测试用例的队列获取所分发测试用例的执行结果。
例如,测试装置接收队列在执行完毕每个测试用例完毕后实时发送的执行结果,或者,接收队列在执行完毕所分发到的测试用例后统一发送的执行结果。
在一个实施例中,参见图4-2,图4-2是本发明实施例提供的测试方法的一个可选的流程示意图,基于图4-1,在预定周期到达时,除了前述提供的检测空闲队列的方案,本发明实施例还提供针对队列集合中各队列进行异常检查的机制,例如,检测测试装置与运行队列的设备的用于调试的连接是否断开,如果断开,判定相应队列为异常队列,回收向异常队列分发的测试用例(步骤106);如果没有断开,说明队列的状态正常。
对于检测到的异常队列,测试装置将向异常队列分发的未执行完毕的测试用例(也就是还未接收到异常队列返回相应执行结果的队列),向未处于异常状态的空闲队列按照相应的分发粒度进行分发测试用例(步骤107),避免因为队列异常而无法及时获得测试用例的执行结果的情况,保证测试用例的执行效率。
在预定周期到达时,对于向检测到的空闲队列(未处于异常状态)分发从异常队列回收的测试用例(即未得到执行结果的测试用例)而言,可以采用如下方式:
方式1)在空闲队列中确定满足以下条件的队列(也称为第一空闲队列):分发粒度大于或等于向异常队列分发的未执行完毕的测试用例的数量;将向异常队列分发的未执行完毕的测试用例,向第一空闲队列进行发送,以异常队列未执行完毕的测试用例的
在一个示例中,假设在预定周期的计时到达时检测到队列1中出现异常,且队列1尚未反馈测试用例1-3共3个测试用例的执行结果,并且,检测到队列2-4共计3个空闲队列,对应的分发粒度为2/3/4,则可将测试用例1-3发送到队列3或队列4进行执行。
方式2)在空闲队列中的确定满足以下条件的至少两个空闲队列(也称为第二空闲队列);至少两个第二空闲队列的分发粒度的加和,大于或等于向异常队列分发的未执行完毕的测试用例的数量;将向异常队列分发的未执行完毕的测试用例,向至少两个第二空闲队列按照相应的分发粒度进行分发。
在一个示例中,假设在预定周期的计时到达时检测到队列5中出现异常,且队列5尚未反馈测试用例4-7共4个测试用例的执行结果,并且,检测到队列5-7共计3个空闲队列,对应的分发粒度为2/2/2,则可将测试用例4-7任意分发到队列5-7中的2个队列,或分发到队列5-7共3个队列;如将测试用例4、5分发到队列5,将测试用例6、7分发到队列6;又如将测试用例4、5分发到队列5,将测试用例6分发到队列6;将测试用例7分发到队列7。
参见图5,图5是本发明实施例提供的执行器向手机分发测试用例并获得执行结果的一个可选的交互示意图,以合执行器(测试装置)与3个手机连接、向手机分发测试用例集合的测试用例(数量为N个)并获得测试用例的执行结果为例进行说明。
执行器接收测试人员上传并设置的待执行的测试用例的集合(步骤201),当接收到测试人员触发执行测试用例的指令(步骤202),执行器解析出测试用例的列表,遍历用例列表,记为case1~caseN,识别目前连接到执行器的手机列表,记为phone1~phoneX(步骤203)。
执行器开始计时,在分发测试用例的周期开始时,以3个手机的分发粒度均为1为例,向手机1发送case1(),向手机2发送case2(),向手机3发送case3()(步骤204)。
当下一个分发周期开始时,执行器检测到已经接收到case1()、case2()和case3()的执行结果,则继续向手机1至手机3分发测试用例,例如,向手机1发送case1(),向手机2发送case2(),向手机3发送case3()(步骤205)。
以此类推,在每个新的分发周期开始时,执行器检测是否已经接收到向各手机分发的测试用例的执行结果,如果接收到则继续分发测试用例,如果没有接收到执行结果,则在当前的分发周期不向手机分发新的测试用例。
当执行器接收到测试用例集合中N个测试用例的执行结果后,向测试人员上报全部测试用例的执行结果。
再参见图6,图6是本发明实施例提供的执行器向手机按照分发粒度分发测试用例,并获得执行结果的一个可选的流程示意图。
当执行器启动时,检测测试用例集合,测试用例是否已经全部分发(即待分的测试用例的数量为0),如果还未分发完毕,在预定周期到达时检测连接到执行器的手机中是否还存在空闲的手机。
如果未检测到空闲手机,则将手机的状态设置为占用中,并继续等待至下一个分发周期开始时继续检测,如果检测到空闲手机,则通过检测与手机的ADB连接是否还存在来判断手机的是否异常,如果ADB连接不存在说明手机处于异常状态,发出告警提供测试人员及时处理。
确定空闲手机未出现异常时,则根据各闲置手机的分发粒度,从未分发的测试用例中继续读取测试用例发送到空闲手机,当按照测试用例的优先级排序的降序读取测试用例时,能够保证优先得到高级别的测试用例的执行结果。
通过与手机的调试连接检测向各空闲手机分发的测试用例是否执行完毕,如果执行完毕,则将手机的状态设置为空闲,并继续检测是否还有未分发的测试用例,当测试用例全部分发完毕并获得相应的执行结果时,对全部测试用例的执行结果进行统计并显示。
对于前述测试装置的功能结构进行说明,参见图7,图7是本发明实施例提供的测试装置200的一个可选的结构示意图,包括获取模块210、分发粒度模块220、检测模块230和分发模块240,对各模块进行说明。
获取模块210用于获取待执行的测试用例集合。
获取模块210提供本地提交或网络远程提交的方式,接收测试人员上传的测试用例的集合,支持测试人员提供针对待测试软件批量上传测试用例,根据测试用例对应的待测试软件,在测试装置本地形成待测试软件的测试用例集合
在一个实施例中,对于测试获取的测试用例集合,获取模块将测试用例集合中的测试用例按照不同维度进行优先级的降序进行排序,后续按照优先级排序的降序读取测试用例进行分发。
当然,实际应用中,往往需要对多个待测试软件进行测试获取模块210接收到测试人员针对多个待测软件上传的测试用例时,按照就测试人员针对每个待测试软件形成相应的测试用例集合,或者,可以将测试人员针对所有待测试软件上传的测试用例形成一个测试用例集合。
分发粒度模块220用于根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度。
例如,分发粒度模块220对于队列集合中各队列采用统一的分发粒度,队列集合中各队列的分发粒度相同,分发粒度P与队列集合中队列的数量Q的乘积N*Q来说,小于测试用例集合中测试用例的数量N,从而,在每个分发周期到达时向队列集合分发测试用例集合中的部分测试用例,避免一次性分发测试用例集合中的全部测试用例导致(因各种问题,如队列异常)队列中的测试用例拥塞而需要重新分发、进而影响测试效率的问题。
又例如,分发粒度模块220根据测试用例代码长度确定各队列的分发粒度,使各个队列分发到的测试用例的代码长度(也即是代码长度的加和)均衡。根据所述队列集合中队列的数量,将所述测试用例集合中的部分测试用例划分为相应数量的子集,即每个队列分配一个子集,以向队列分配的子集作为相应队列的分发粒度,并且各个子集的代码长度均衡。
举例来说,可以使用以下条件判断候选划分方式划分得到的子集的代码长度是否均衡:1)各个子集的代码长度(即子集所包括的全部测试用例的代码长度的加和)的相同;2)任意两个所述子集的代码长度(即子集中包括的测试用例的代码长度的加和)的差值低于代码长度阈值。
再例如,分发粒度模块220根据测试用例消耗队列的执行时间确定各队列的分发粒度,使各个队列执行分发到的测试用例的时间均衡。根据所述队列集合中队列的数量,计算所述测试用例集合中的部分测试用例划分为相应数量的子集,即每个队列分配一个子集,队列对于所分配的子集而言就是目标队列,计算子集消耗目标队列的执行时间,并通过比较各子集消耗目标队列的执行时间(也就是目标队列执行所分配的子集中的测试用例所需要的时间)是否相同,或者任意两个子集消耗目标队列的执行时间的差值是否低于执行时间阈值,如果是,说明该划分方式能够满足使各队列的执行时间均衡的效果,将该划分方式中各子集作为相应目标队列的分发粒度。以向队列分配的子集作为相应队列的分发粒度,实现各个子集消耗目标队列(也就是执行相应子集中测试用例的队列)的执行时间均衡的技术效果。
检测模块230,用于在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;
分发模块240,用于按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕。
例如,所述分发模块240对所述测试用例集合中的测试用例进行优先级排序;按照根据优先级排序的降序,从所述测试用例集合中顺序读取与各所述空闲队列的分发粒度相应数量的测试用例;将基于各所述空闲队列的分发粒度读取的测试用例,发送至相应的空闲队列。
队列可以与设备对应,参见图1-2,每个队列分配一个设备(当然,本发明实施例不排除为一个队列分配多个设备),相应地,分发模块240向与所述空闲队列对应的线程发送为相应空闲队列分发的测试用例,各所述空闲队列对应的线程运行于同一设备或不同设备;
队列还可以与线程对应,参见图1-3,为每个队列分配设备的一个线程(本发明实施例不排除为队列分配多个线程),相应地,分发模块240向与所述空闲队列对应的设备发送为相应空闲队列分发的测试用例。
获取模块210,用于从分发有测试用例的所述队列获取所分发测试用例的执行结果。在获得测试用例的执行结果后,通过比较测试用例的实际执行结果与预期结果,实时输出执行结果,在不符合测试目的时可以及时发出告警,供测试人员确定软件是否符合预期的测试目的,在出现告警时及时排查问题。
与前述记载的通信处理方案基于同一构思,本发明实施例还提供一种存储介质,存储有可执行指令,用于执行如本发明实施例图4-1、图4-2、图5和图6任一附图提供的测试方法,本发明实施例提供的存储介质可为光盘、闪存或磁盘等存储介质,可选为非瞬间存储介质。
综上所述,本发明实施例具有以下有益效果:
采用多个队列并行执行测试用例,并且,按照一定分发粒度而非一次性向各队列分发测试用例集合的测试用例,这样,在队列繁忙时能够避免向设备继续发送测试用例导致阻塞的情况;
通过周期性查询空闲队列并分发测试用例,能够充分利用各个队列的计算能力,避免部分队列空闲而部分队列繁忙的情况,在提升队列的整体的利用率基础上提升测试用例的执行效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种测试方法,其特征在于,包括:
获取待执行的测试用例集合;
根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;
在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;
按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;
从分发有测试用例的所述队列获取所分发测试用例的执行结果。
2.如权利要求1所述的测试方法,其特征在于,所述根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度,包括:
根据各所述测试用例的代码长度,将所述测试用例集合中的部分测试用例进行划分,得到与所述队列集合中队列相应数量的子集;
其中,各所述子集的代码长度的相同,或任意两个所述子集中包括的测试用例的代码长度的差值低于代码长度阈值。
3.如权利要求2所述的测试方法,其特征在于,还包括:
将所述测试用例集合中的所述部分测试用例进行划分之前,检测到各所述队列的计算能力相同,或检测到任意两个所述队列的计算能力的差值低于计算能力阈值。
4.如权利要求1所述的测试方法,其特征在于,所述根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度,包括:
根据各所述测试用例的执行时间,将所述测试用例集合中的部分测试用例进行划分,得到与所述队列集合中队列相应数量的子集;
其中,各所述子集对应消耗目标队列的执行时间相同,或者,任意两个所述子集对应消耗目标队列的执行时间的差值低于执行时间阈值。
5.如权利要求1所述的测试方法,其特征在于,所述向所述空闲队列分发不同的所述测试用例,包括:
对所述测试用例集合中的测试用例进行优先级排序;
按照根据优先级排序的降序,从所述测试用例集合中顺序读取与各所述空闲队列的分发粒度相应数量的测试用例;
将基于各所述空闲队列的分发粒度读取的测试用例,发送至相应的空闲队列。
6.如权利要求1所述的测试方法,其特征在于,还包括:
在所述预定周期到达时,对所述队列集合中各队列进行异常检查;
将向异常队列分发的未执行完毕的测试用例,向未处于异常状态的所述空闲队列按照相应的分发粒度进行分发。
7.如权利要求6所述的测试方法,其特征在于,所述将向异常队列分发的未执行完毕的测试用例,向未处于异常状态的所述空闲队列按照相应的分发粒度进行分发,包括:
确定第一空闲队列,所述第一空闲队列的分发粒度大于或等于向所述异常队列分发的未执行完毕的测试用例的数量;
将向所述异常队列分发的未执行完毕的测试用例,向所述第一空闲队列进行发送。
8.如权利要求6所述的测试方法,其特征在于,所述将向异常队列分发的未执行完毕的测试用例,向未处于异常状态的所述空闲队列按照相应的分发粒度进行分发,包括:
确定至少两个第二空闲队列,所述至少两个第二空闲队列的分发粒度的加和,大于或等于向所述异常队列分发的未执行完毕的测试用例的数量;
将向所述异常队列分发的未执行完毕的测试用例,向所述至少两个第二空闲队列按照相应的分发粒度进行分发。
9.如权利要求6所述的测试方法,其特征在于,所述对所述队列集合中各队列进行异常检查,包括:
检测所述队列集合中各队列的用于调试的连接是否断开,如果断开,判定相应队列为异常队列。
10.如权利要求1所述的测试方法,其特征在于,所述向所述空闲队列分发不同所述测试用例,包括:
向与所述空闲队列对应的线程发送为相应空闲队列分发的测试用例,各所述空闲队列对应的线程运行于同一设备或不同设备;
或者,
向与所述空闲队列对应的设备发送为相应空闲队列分发的测试用例,各所述队列运行于不同设备。
11.一种测试装置,其特征在于,包括:
获取模块,用于获取待执行的测试用例集合;
分发粒度模块,用于根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;
检测模块,用于在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;
分发模块,用于按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;
通信模块,用于从分发有测试用例的所述队列获取所分发测试用例的执行结果。
12.如权利要求11所述的测试装置,其特征在于,
所述分发粒度模块,还用于根据各所述测试用例的代码长度,将所述测试用例集合中的部分测试用例进行划分,得到与所述队列集合中队列相应数量的子集;
其中,各所述子集的代码长度的相同,或任意两个所述子集中包括的测试用例的代码长度的差值低于代码长度阈值。
13.如权利要求12所述的测试装置,其特征在于,
所述分发粒度模块,还用于将所述测试用例集合中的所述部分测试用例进行划分之前,检测到各所述队列的计算能力相同,或检测到任意两个所述队列的计算能力的差值低于计算能力阈值。
14.如权利要求11所述的测试装置,其特征在于,
所述分发粒度模块,还用于根据各所述测试用例的执行时间,将所述测试用例集合中的部分测试用例进行划分,得到与所述队列集合中队列相应数量的子集;
其中,各所述子集对应消耗目标队列的执行时间相同,或者,任意两个所述子集对应消耗目标队列的执行时间的差值低于执行时间阈值。
15.如权利要求11所述的测试装置,其特征在于,
所述分发模块,还用于对所述测试用例集合中的测试用例进行优先级排序;
按照根据优先级排序的降序,从所述测试用例集合中顺序读取与各所述空闲队列的分发粒度相应数量的测试用例;
将基于各所述空闲队列的分发粒度读取的测试用例,发送至相应的空闲队列。
CN201710189436.3A 2017-03-27 2017-03-27 测试方法及装置 Active CN108664381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710189436.3A CN108664381B (zh) 2017-03-27 2017-03-27 测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710189436.3A CN108664381B (zh) 2017-03-27 2017-03-27 测试方法及装置

Publications (2)

Publication Number Publication Date
CN108664381A true CN108664381A (zh) 2018-10-16
CN108664381B CN108664381B (zh) 2021-04-06

Family

ID=63786272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710189436.3A Active CN108664381B (zh) 2017-03-27 2017-03-27 测试方法及装置

Country Status (1)

Country Link
CN (1) CN108664381B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597733A (zh) * 2018-12-04 2019-04-09 航天恒星科技有限公司 一种多功能高效动态芯片验证仿真方法和设备
CN110377501A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 模型测试方法、装置、计算机设备和存储介质
CN110908898A (zh) * 2019-11-06 2020-03-24 贝壳技术有限公司 生成测试方案的方法及系统
CN111008146A (zh) * 2019-12-19 2020-04-14 北京首信科技股份有限公司 对云主机安全进行测试的方法及系统
CN112988558A (zh) * 2019-12-16 2021-06-18 迈普通信技术股份有限公司 测试执行方法、装置、电子设备及存储介质
CN115374019A (zh) * 2022-10-27 2022-11-22 畅捷通信息技术股份有限公司 分布式ui测试用例的测试方法、系统及计算机存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100011345A1 (en) * 2008-07-09 2010-01-14 International Business Machines Corporation Efficient and Self-Balancing Verification of Multi-Threaded Microprocessors
CN102135938A (zh) * 2011-03-21 2011-07-27 中国工商银行股份有限公司 一种软件产品测试方法及系统
CN102214139A (zh) * 2011-06-01 2011-10-12 北京航空航天大学 一种面向分布式系统的自动化测试的执行控制与调度方法
US20160170864A1 (en) * 2014-12-10 2016-06-16 General Electric Company Integrated automated test case generation for safety-critical software
CN105786667A (zh) * 2016-02-29 2016-07-20 惠州Tcl移动通信有限公司 一种分布式自动化测试方法及系统
CN105955880A (zh) * 2016-04-22 2016-09-21 乐视控股(北京)有限公司 一种分发自动化测试用例的方法、系统及分发服务器
CN106055471A (zh) * 2016-05-20 2016-10-26 深圳天珑无线科技有限公司 一种测试方法及终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100011345A1 (en) * 2008-07-09 2010-01-14 International Business Machines Corporation Efficient and Self-Balancing Verification of Multi-Threaded Microprocessors
CN102135938A (zh) * 2011-03-21 2011-07-27 中国工商银行股份有限公司 一种软件产品测试方法及系统
CN102214139A (zh) * 2011-06-01 2011-10-12 北京航空航天大学 一种面向分布式系统的自动化测试的执行控制与调度方法
US20160170864A1 (en) * 2014-12-10 2016-06-16 General Electric Company Integrated automated test case generation for safety-critical software
CN105786667A (zh) * 2016-02-29 2016-07-20 惠州Tcl移动通信有限公司 一种分布式自动化测试方法及系统
CN105955880A (zh) * 2016-04-22 2016-09-21 乐视控股(北京)有限公司 一种分发自动化测试用例的方法、系统及分发服务器
CN106055471A (zh) * 2016-05-20 2016-10-26 深圳天珑无线科技有限公司 一种测试方法及终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
STEFFEN HERBOLD: "Calculation and optimization of thresholds for sets of software metrics", 《EMPIRICAL SOFTWARE ENGINEERING》 *
张俊生等: "分布式应用的系统协同测试方案", 《计算机工程》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597733A (zh) * 2018-12-04 2019-04-09 航天恒星科技有限公司 一种多功能高效动态芯片验证仿真方法和设备
CN109597733B (zh) * 2018-12-04 2022-08-09 航天恒星科技有限公司 一种多功能高效动态芯片验证仿真方法和设备
CN110377501A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 模型测试方法、装置、计算机设备和存储介质
CN110377501B (zh) * 2019-06-17 2023-10-03 中国平安人寿保险股份有限公司 模型测试方法、装置、计算机设备和存储介质
CN110908898A (zh) * 2019-11-06 2020-03-24 贝壳技术有限公司 生成测试方案的方法及系统
CN110908898B (zh) * 2019-11-06 2023-07-21 贝壳找房(北京)科技有限公司 生成测试方案的方法及系统
CN112988558A (zh) * 2019-12-16 2021-06-18 迈普通信技术股份有限公司 测试执行方法、装置、电子设备及存储介质
CN111008146A (zh) * 2019-12-19 2020-04-14 北京首信科技股份有限公司 对云主机安全进行测试的方法及系统
CN115374019A (zh) * 2022-10-27 2022-11-22 畅捷通信息技术股份有限公司 分布式ui测试用例的测试方法、系统及计算机存储介质

Also Published As

Publication number Publication date
CN108664381B (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN108664381A (zh) 测试方法及装置
CN107733708B (zh) 设备参数配置方法、装置、计算机设备和存储介质
CN104583960B (zh) 在线服务的事务级健康监控
US8745590B2 (en) Testing an application
CN108255707B (zh) 测试用例的开发角色创建方法、装置、设备及存储介质
CN109324962B (zh) 一种基于云物联技术的应用程序的测试方法及设备
CN109359020A (zh) 启动时间测试方法及装置、计算机装置及存储介质
US10820274B2 (en) Systems and methods for testing power consumption of electronic devices
CN106708517A (zh) 软件自动升级测试系统及方法
CN107908469A (zh) 一种任务调度方法及系统
CN103379000A (zh) 一种并发测试方法及测试服务器
CN109254922A (zh) 一种服务器BMC Redfish功能的自动化测试方法及装置
Lei et al. Performance and scalability testing strategy based on kubemark
CN109376079A (zh) 接口调用的测试方法及服务器
TWI596471B (zh) 用於收集硬體效能資料之方法、計算系統、電腦程式產品
WO2020206699A1 (en) Predicting virtual machine allocation failures on server node clusters
CN109885473A (zh) 自动化测试方法及装置、终端和计算机可读存储介质
CN110113391A (zh) 一种客户端上线方法、装置及一种客户端运行方法、装置
CN113778878A (zh) 接口测试方法、装置、电子设备及存储介质
CN109388420A (zh) 应用升级测试方法、装置、计算机设备及存储介质
US20180059652A1 (en) Techniques for implementing universal commands in a welding or cutting system
US20230385048A1 (en) Predictive recycling of computer systems in a cloud environment
US10999159B2 (en) System and method of detecting application affinity using network telemetry
CN107391361A (zh) 一种pos终端自动测试方法及装置
CN110347546A (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