测试方法及装置制造方法及图纸

技术编号:19176965 阅读:39 留言:0更新日期:2018-10-17 00:17
本发明专利技术公开了一种测试方法及装置;方法包括:获取待执行的测试用例集合;根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;从分发有测试用例的所述队列获取所分发测试用例的执行结果。实施本发明专利技术,能够提升测试用例的执行效率。

Test method and device

The invention discloses a test method and apparatus, which includes: acquiring a set of test cases to be executed; determining the distribution granularity of different test cases to each queue in each cycle according to the test cases and the characteristics of each queue in the queue set used to execute the test cases; and arriving at a predetermined cycle. Upon arrival, an idle queue that does not execute the test case in the queue set is detected; different test cases are distributed to the idle queue according to the distribution granularity of each idle queue until the test cases with corresponding distribution granularity are distributed to each idle queue, or until the test case set is executed. The test cases are distributed; the execution results of the distributed test cases are obtained from the queue that distributes the test cases. The implementation of the invention can improve the execution efficiency of test cases.

【技术实现步骤摘要】
测试方法及装置
本专利技术涉及软件测试技术,尤其涉及一种测试方法及装置。
技术介绍
目前,各种软件(例如操作系统、应用软件)不断出现,覆盖工作、生活、学习的各个方面,根据用户的需求、以及软件稳定性的需求,软件开发者需要定期或不定期地释出软件的新版本以完成功能升级或错误修正,而在释放新版本件之前,为了保证软件稳定性符合预期需求,有必要进行测试。例如,对软件进行正确性、完整性、安全性和质量等方面的测试,从而评估软件是否满足要求。目前,软件测试主要涉及以下两种方案:1)由测试人员人工参与即由测试人员手工逐步执行测试对象的所有的活动,并观察每一步是否成功完成;这种测试方式的测试结果受测试人员自身水平的影响,不同测试人员的测试结果往往具有较大的差异,并且测试效率较低,对于大型的软件进行测试时难以保证测试效率。2)自动化测试即由测试人员针对测试对象编写好一系列的测试用例,安装有待测试软件的设备总运行测试对象得到执行结果,测试设备需要逐个运行测试用例,测试所需的时间是设备执行每个测试用例所需的时间的加和;因此当测试用较多时,测试仍然需要较多时间,尤其是对于大型的软件的测试难以保证测试用例;如果减少测试用例,则可能会影响软件测试的全面性。综上所述,对于如何提升测试用例的执行效率,相关技术尚无有效解决方案。
技术实现思路
本专利技术实施例提供一种测试方法及装置,能够提升执行测试用例的效率。本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供一种测试方法,包括:获取待执行的测试用例集合;根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;从分发有测试用例的所述队列获取所分发测试用例的执行结果。第二方面,本专利技术实施例提供一种测试装置,包括:获取模块,用于获取待执行的测试用例集合;分发粒度模块,用于根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;检测模块,用于在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;分发模块,用于按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;通信模块,用于从分发有测试用例的所述队列获取所分发测试用例的执行结果。第三方面,本专利技术实施例提供一种测试装置,包括存储器和处理器,存储器中存储有可执行指令,用于引起处理器执行本专利技术实施例提供的测试方法。第四方面,本专利技术实施例提供一种存储介质,存储有可执行指令,用于执行本专利技术实施例提供的测试方法。本专利技术实施例具有以下有益效果:采用多个队列并行执行测试用例,按照一定分发粒度而非一次性向各队列分发测试用例集合的测试用例,这样,在队列繁忙时能够避免向设备继续发送测试用例导致阻塞的情况;通过周期性查询空闲队列并分发测试用例,能够充分利用各个队列的计算能力,避免部分队列空闲而部分队列繁忙的情况,在提升队列的整体的利用率基础上提升测试用例的执行效率。附图说明图1-1是本专利技术实施例提供的测试装置分发并执行测试用例进行执行的一个可选的架构示意图;图1-2是本专利技术实施例提供的测试装置分发并执行测试用例进行执行的一个可选的架构示意图;图1-3是本专利技术实施例提供的测试装置分发并执行测试用例进行执行的一个可选的架构示意图;图2是本专利技术实施例提供的测试装置的一个可选的硬件结构示意图;图3是本专利技术实施例提供的设备执行分发的测试用例以输出执行结果的一个可选的功能架构示意图;图4-1是本专利技术实施例提供的测试方法的一个可选的示意图;图4-2是本专利技术实施例提供的测试方法的一个可选的示意图;图5是本专利技术实施例提供的执行器向手机分发测试用例并获得执行结果的一个可选的交互示意图;图6是本专利技术实施例提供的执行器向手机按照分发粒度分发测试用例,并获得执行结果的一个可选的流程示意图;图7是本专利技术实施例提供的测试装置的一个可选的功能结构示意图。具体实施方式以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。对本专利技术进行进一步详细说明之前,对本专利技术实施例中涉及的名词和术语进行说明,本专利技术实施例中涉及的名词和术语适用于如下的解释。1)测试用例(TestCase),是针对待测试的软件(如系统软件和应用软件等)某个特殊目标而编制的一组测试输入、执行条件以及预期结果,软件在符合执行条件时根据测试输入进行处理形成实际执行结果,供测试人员将预期结果与执行结果进行比较,以测试软件的某个路径或核实软件的某个功能是否满足特定需求。例如,就测试软件的用户提交登录表单时用户名和密码的格式校验功能来说,测试输入、执行条件和预期结果可以是:1.1)测试输入:用户名和密码都符合要求(格式上的要求);执行条件:用户点击提交表单;预期结果:校验通过,向服务器提交验证;1.2)测试输入:用户名和密码都不符合要求(格式上的要求);执行条件:用户点击提交表单;预期结果:校验不通过,提示用户名和密码都不符合要求;1.3)测试输入:用户名符合要求,密码不符合要求(格式上的要求);执行条件:用户点击提交表单;预期结果:校验不通过,提示用户名和密码都不符合要求;上述测试用例的结构仅为示例,根据待测试软件以及测试目的的不同,测试用例的结构存在区别,本专利技术实施例中不排斥使用其他类型的测试用例。2)测试用例集合,需要执行以获得实际执行结果的测试用例的集合,测试用例集合中的测试用例可以针对同一待测试软件,也可以是对应不同待测试软件。测试用例在测试用例集合中可以随机排序,也可以根据测试用例所涉及的软件的功能的核心程度进行优先级排序。例如,一个优先级排序如下:P0,核心功能测试用例(冒烟测试),确定此版本是否可测的测试用例,此部分测试用例如果失败会阻碍大部分其他测试用例的验证。P1,高优先级测试用例,最常执行以保证功能性是稳定的,包括基本功能测试,和重要的错误、边界测试等。P2,中优先级测试用例,更全面地验证功能的各个方面,包括异常测试,边界、中断、断网、容错、用户界面(UI,UserInterface)等方面的测试。P3,低优先级测试用例,运行的频率最低,包括性能、压力、兼容性、稳定性、安全、可用性等等方面的测试。上述优先级排序的划分仅为示例,本专利技术实施例不排除使用其他方式或维度对测试用例进行优先级排序。3)队列,即分配有计算资源以用于执行测试用例的队列,队列以线程或设备为粒度运行。例如,队列的计算资源的分配包括以下几种情况:3.1)以线程为粒度向队列分配计算资源,即每个队列分配有处理器的一个或多个线程,队列中的测试用例在所对应的线程中执行(例如,当一个队列只分配有一个线程时,队列中的测试用例在线程中顺序执行;当有多个线程时,队列中测试在多个线程中并行执行)。需要指出地,当一个队列分配有多个线程本文档来自技高网...

【技术保护点】
1.一种测试方法,其特征在于,包括:获取待执行的测试用例集合;根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;从分发有测试用例的所述队列获取所分发测试用例的执行结果。

【技术特征摘要】
1.一种测试方法,其特征在于,包括:获取待执行的测试用例集合;根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度;在预定周期到达时,检测所述队列集合中未执行所述测试用例的空闲队列;按照各所述空闲队列的分发粒度,向所述空闲队列分发不同的所述测试用例,直至各所述空闲队列均分发有相应分发粒度的测试用例,或者,直至所述测试用例集合中的测试用例分发完毕;从分发有测试用例的所述队列获取所分发测试用例的执行结果。2.如权利要求1所述的测试方法,其特征在于,所述根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度,包括:根据各所述测试用例的代码长度,将所述测试用例集合中的部分测试用例进行划分,得到与所述队列集合中队列相应数量的子集;其中,各所述子集的代码长度的相同,或任意两个所述子集中包括的测试用例的代码长度的差值低于代码长度阈值。3.如权利要求2所述的测试方法,其特征在于,还包括:将所述测试用例集合中的所述部分测试用例进行划分之前,检测到各所述队列的计算能力相同,或检测到任意两个所述队列的计算能力的差值低于计算能力阈值。4.如权利要求1所述的测试方法,其特征在于,所述根据所述测试用例、以及用于执行测试用例的队列集合中各队列的特征,确定在每个周期向各所述队列分发不同测试用例的分发粒度,包括:根据各所述测试用例的执行时间,将所述测试用例集合中的部分测试用例进行划分,得到与所述队列集合中队列相应数量的子集;其中,各所述子集对应消耗目标队列的执行时间相同,或者,任意两个所述子集对应消耗目标队列的执行时间的差值低于执行时间阈值。5.如权利要求1所述的测试方法,其特征在于,所述向所述空闲队列分发不同的所述测试用例,包括:对所述测试用例集合中的测试用例进行优先级排序;按照根据优先级排序的降序,从所述测试用例集合中顺序读取与各所述空闲队列的分发粒度相应数量的测试用例;将基于各所述空闲队列的分发粒度读取的测试用例,发送至相应的空闲队列。6.如权利要求1所述的测试方法,其特征在于,还包括:在所述预定周期到达时,对所述队列集合中各队列进行异常检查;将向异常队列分发的未执行完毕的测试用例,向未处于异常状态的所述空闲队列按照相应的分发粒度进行分发。7.如权利要求6所述的测试方法,其特征在于,所述将向异常队列分发的未执行完毕的测试用例,向未处于异常状态的所述空闲队列按照相应的分发粒度进行分发,包括:确定第一空闲队列,所述第一空闲队列的分发粒度大于或等于向所述异常队列分发的未执行完毕的测试用例的数量;将向所述异常队列分发的未执行完毕的测试用例,向所述第一空闲队列进行发送。8.如权利要求6所述的测试方法,其特征在于,所述将向异常队列分发的未执行完毕的测试用例,向...

【专利技术属性】
技术研发人员:廖海珍
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1