CN115525532A - 一种测试用例选择方法及相关装置 - Google Patents
一种测试用例选择方法及相关装置 Download PDFInfo
- Publication number
- CN115525532A CN115525532A CN202110712008.0A CN202110712008A CN115525532A CN 115525532 A CN115525532 A CN 115525532A CN 202110712008 A CN202110712008 A CN 202110712008A CN 115525532 A CN115525532 A CN 115525532A
- Authority
- CN
- China
- Prior art keywords
- target
- test case
- constraints
- constraint
- test
- 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 title claims abstract description 643
- 238000010187 selection method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000003860 storage Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 238000005457 optimization Methods 0.000 claims description 71
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 16
- 230000007547 defect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000012216 screening Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012512 characterization method Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012956 testing procedure 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/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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
-
- 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)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种测试用例选择方法、装置、计算机可读存储介质以及计算机程序产品。该方法可以向用户提供多个测试约束,用户可以在进行测试约束的选择,进而系统可以基于用户的选择来进行测试用例的选择,在可以实现基于多个测试约束进行测试用例选择的同时,降低了测试人员进行测试用例的选择时的选择代价。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种测试用例选择方法、相关装置以及相关计算机可读存储介质和计算机程序产品。
背景技术
回归测试(regressiontest)是在修改了软件的原有代码之后,重新对软件进行测试的一种测试流程。通过回归测试可以确认软件的原有功能是否被破坏,即确认修改了原有代码之后是否引入新的错误,或者导致其他原有代码产生错误等问题,即判断修改后的软件中是否存在缺陷。如果存在缺陷,那么开发人员就需要对软件再进行修改。在软件开发生命周期(system development life cycle,SDLC)中,软件的各个版本都需要经过多次充分的测试才能够发布。因此,回归测试是一项需要持续进行的任务。
测试用例(testcase)是指为了进行测试而向被测试系统(即软件)提供的一组数据,一般包括输入数据、执行条件以及预期结果。在测试时,如果一个测试用例执行失败,可能意味着缺陷的发现。为测试一个软件,通常需要设计很多测试用例,形成测试用例库。在软件开发的生命周期中,测试用例库中的测试用例可能会被不断更新,以便应对经过修改之后的软件的回归测试。
在进行测试用例的选择时,通常只考虑了单一优选目标,例如只考虑用例失败风险最大化的测试约束,虽然该失败风险预测的特征包含了代码覆盖和历史失败率,但未能考虑测试业务覆盖,不能解决测试人员同时需要满足多个测试约束的要求,且测试人员针对于特定的测试约束,需要单独进行代码编写来进行测试用例的选择,选择代价较高。
发明内容
本申请提供了一种测试用例选择方法。该方法可以向用户提供多个测试约束,用户可以在进行测试约束的选择,进而系统可以基于用户的选择来进行测试用例的选择,在可以实现基于多个测试约束进行测试用例选择的同时,降低了测试人员进行测试用例的选择时的选择代价。本申请还提供了上述方法对应的装置、计算机可读存储介质以及计算机程序产品。
本申请的测试用例选择方法可以被应用在所有的软件产品的回归测试过程中,尤其适合被应用在版本迭代较快、测试周期较短或者测试资源较少的软件产品的回归测试场景中。
第一方面,本申请提供了一种测试用例选择方法,该方法包括:向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数;根据该N个目标约束,获取目标测试用例集,其中该目标测试用例集为根据该N个目标约束从候选测试用例集中选择的。
其中,测试用例用于进行被测系统测试,例如可以为被测软件的回归测试。
应理解,这里所谓的每个目标约束用于作为进行测试用例的选择时所采用的约束条件,可以理解为每个目标约束是用于作为进行测试用例的选择而采用的约束条件,而不是限定进行测试用例的选择的同一时刻,每个目标约束作为约束条件;
本申请实施例提供了一种测试用例选择方法,该方法可以向用户提供多个测试约束,用户可以从多个测试约束中进行测试约束的选择,进而系统可以基于用户的选择来进行测试用例的选择,在可以实现基于多个测试约束进行测试用例选择的同时,降低了测试人员进行测试用例的选择时的选择代价。
在一种可能的实现中,可以使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,可以根据该N个目标约束,获取多个测试用例集,该多个测试用例集为根据该N个目标约束从候选测试用例集中选择的,并获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。可以确定多个满足N个目标约束的测试用例集,来供用户选择,用户可以根据自身的需求从多个测试用例集选择一个测试用例集(目标测试用例集),来作为进行被测系统的回归测试时使用的测试用例集。
在一种可能的实现中,提供M个约束的方式可以为显示一个用于进行约束选择的界面,具体可以显示目标界面,该目标界面用于指示M个目标约束,可选的,该目标界面可以包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,目标约束的约束类型可以包括测试用例的预测执行失败率最大化。其中,预测执行失败率可以指示测试用例在下一次被执行时对应的失败概率。
在一种可能的实现中,目标约束的约束类型可以包括测试用例与被修改的代码之间的关联程度最大化。其中,关联程度用于表征测试用例与被修改的软件代码之间的关联程度。在一种表征方式中,关联度的取值越大,则表示二者的关联程度越紧密,关联程度与测试用例的风险相关,也与测试用例是否能够覆盖测试需求相关。
在一种可能的实现中,目标约束的约束类型可以包括测试用例针对于代码的功能覆盖最大化。其中,功能覆盖可以指示代码是否能够实现对应的功能。
在一种可能的实现中,目标约束的约束类型可以包括与当前执行时间的时间间隔最大化。
在一种可能的实现中,目标约束的约束类型可以包括测试用例的数量约束,和/或目标约束的约束类型可以包括测试用例的执行时长约束。其中,该约束通常可以表达为最大执行时长或子集最大用例数,可选的,可以根据用户定义的所有目标和约束给出建议的最小执行时长和最小用例集。
在一种可能的实现中,该目标界面除了可以指示M个目标约束之外,该目标界面还可以用于指示该每个目标约束的优先级,其中,优先级可以指示后续进行测试用例选择时对应的约束满足程度,优先级越高,则约束满足程度越高,例如可以选择M个约束中的部分约束作为主目标约束,主目标约束为选择的约束中优先级最高的约束,例如可以选择变更覆盖最大化为主目标或者以失败探测比最大化为主目标,以及相应执行时间或用例数量的约束为主约束;可选的,还可以选择一些次要约束,其中,次要约束的优先级小于主约束,例如特性覆盖最大化,测试执行间隔时长大则优先等目标,可选的,次要约束之间可以不分优先级先后。通过优先级的设定,用户可以基于实际的测试需求进行约束的配置,提高了后续进行测试用例选择时的选择精准度和需求满足度。
在一种可能的实现中,除了选择目标测试用例集之外,还可以获取到该目标测试用例集对该N个目标约束的满足程度。具体的,可以在该目标界面上显示该目标测试用例集的同时,也在该目标界面上显示该目标测试用例集对该N个目标约束的满足程度。其中,满足程度可以是失败风险预估值、覆盖的变更代码数量等等。
在一种可能的实现中,该目标测试用例集为根据该N个目标约束,通过多目标优化模型,从该候选测试用例集合中确定的。
在一种可能的实现中,该多目标优化模型包括多个凸求解器,该多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集。具体的,凸求解器可以通过不断筛选(screening)和拓展(exploring)搜索空间,最终建立全局最优解(paretofront)。其中凸求解器可以包括筛选系列模块和扩展系列模块,筛选系列模块可以针对对单个目标搜索最优解,拓展系列模块可以通过对不同的目标做归一化并随机地调整目标的权重的方式,实现以任意方式组合所有单个目标最优解,形成部分最优解。所有的筛选系列模块可以并行求解,因为针对不同的目标求解最优解的过程是相互独立的,没有耦合的。所有的拓展执行模块可以并行执行所有的exploring求解器,也可以引入一个反馈机制,即基于前序的拓展执行结果来选择下一步的目标权重。上述凸求解器可以是开源的或商用的求解器,例如Cbc、Cbc_relaxed、Gurobi、Gurobi_relaxed、Clp等。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。在实际的回归测试场景中,通常测试业务需要综合考虑被测代码、组件、模块变更覆盖、业务覆盖(例如特性覆盖、测试场景覆盖、被测环境形态覆盖等),以及失败风险(即挑选出失败风险高的用例)等几大维度目标的测试策略,通过MC-TOA算法能够解决海量全量用例场景下,快速输出多目标用例优先子集,在保证测试覆盖和缺陷探测能力不减退的前提下,精准减少测试执行量和测试执行时长。
在一种可能的实现中,终端可以以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集。
在一种可能的实现中,可以向服务器发送该N个目标约束,并接收该服务器发送的该目标测试用例集。
第二方面,本申请提供了一种测试用例选择装置,该装置包括:
约束提供单元,用于向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;
获取单元,用于获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数;根据该N个目标约束,获取目标测试用例集,其中该目标测试用例集为根据该N个目标约束从候选测试用例集中选择的。
在一种可能的实现中,该装置还包括:
回归测试模块,用于使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该获取单元,具体用于:
根据该N个目标约束,获取多个测试用例集,该多个测试用例集为根据该N个目标约束从候选测试用例集中选择的;
获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该约束提供单元,具体用于显示目标界面,该目标界面用于指示M个目标约束。
在一种可能的实现中,该目标界面包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该目标界面还用于指示该每个目标约束的优先级;该获取单元,还用于:
获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级;
该获取单元,具体用于:
根据该N个目标约束以及该优先级信息,获取目标测试用例集,其中,该目标测试用例集对该第一约束的满足程度高于对该第二约束的满足程度。
在一种可能的实现中,该显示单元,还用于:
在该目标界面上显示该目标测试用例集;和/或,
在该目标界面上显示该目标测试用例集对该N个目标约束的满足程度。
在一种可能的实现中,该目标测试用例集为根据该N个目标约束,通过多目标优化模型,从该候选测试用例集合中确定的。
在一种可能的实现中,该多目标优化模型包括多个凸求解器,该多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
在一种可能的实现中,该目标测试用例集为该候选测试用例集的子集。
第三方面,本申请提供了一种测试用例选择方法,包括:
获取N个目标约束,该N为大于1的正整数;
以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集合;其中该多目标优化模型包括凸求解器,该凸求解器用于并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集合。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
在一种可能的实现中,该目标测试用例集合为该候选测试用例集合的子集。
在一种可能的实现中,该获取N个目标约束,包括:
向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;
获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数。
在一种可能的实现中,该获取N个目标约束,包括:接收终端设备发送的该N个目标约束。
在一种可能的实现中,该方法还包括:使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集合,包括:根据该N个目标约束,通过多目标优化模型,从候选测试用例集合中确定多个测试用例集;
获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该向用户提供M个目标约束,包括:显示目标界面,该目标界面用于指示M个目标约束。
在一种可能的实现中,该目标界面包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该目标界面还用于指示该每个目标约束的优先级;该方法还包括:
获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级;
该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集,包括:
以该N个目标约束为约束,根据该优先级信息,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集,其中,该目标测试用例集对该第一约束的满足程度高于对该第二约束的满足程度。
在一种可能的实现中,该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集之后,该方法还包括:
在该目标界面上显示该目标测试用例集;和/或,
在该目标界面上显示该目标测试用例集对该N个目标约束的满足程度。
在一种可能的实现中,该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集之后,该方法还包括:
向终端设备发送该目标测试用例集。
第四方面,本申请提供了一种测试用例选择装置,包括:
获取单元,用于获取N个目标约束,该N为大于1的正整数;
确定单元,用于以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集合;其中该多目标优化模型包括凸求解器,该凸求解器用于并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集合。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
在一种可能的实现中,该目标测试用例集合为该候选测试用例集合的子集。
在一种可能的实现中,该获取单元,用于:
向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;
获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数。
在一种可能的实现中,该获取单元,用于:
接收终端设备发送的该N个目标约束。
在一种可能的实现中,该装置还包括:
回归测试模块,用于使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该确定单元,具体用于:
根据该N个目标约束,通过多目标优化模型,从候选测试用例集合中确定多个测试用例集;
获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该获取单元,具体用于:
显示目标界面,该目标界面用于指示M个目标约束。
在一种可能的实现中,该目标界面包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该获取单元,还用于:
获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级;
该确定单元,具体用于:
以该N个目标约束为约束,根据该优先级信息,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集,其中,该目标测试用例集对该第一约束的满足程度高于对该第二约束的满足程度。
在一种可能的实现中,该装置还包括发送单元,用于:
在该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集之后,向终端设备发送该目标测试用例集。
第五方面,本申请提供了一种测试用例选择方法,该方法应用于系统,该系统包括终端设备以及服务器,该方法包括:
该终端设备向用户提供M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件;
该终端设备获取用户从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数;
该终端设备向该服务器发送该N个目标约束;
该服务器根据该N个目标约束从候选测试用例集中确定目标测试用例集;
该服务器向该终端设备发送该目标测试用例集。
在一种可能的实现中,该方法还包括:
该终端设备使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该服务器根据该N个目标约束从候选测试用例集中确定目标测试用例集,包括:
该服务器根据该N个目标约束,从候选测试用例集中确定包括该目标测试用例集的多个测试用例集;
该服务器向该终端设备发送该目标测试用例集,包括:
该服务器向该终端设备发送该多个测试用例集;
该方法还包括:
该终端设备获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该服务器根据该N个目标约束从候选测试用例集中确定目标测试用例集,包括:
该服务器根据该N个目标约束,通过多目标优化模型,从该候选测试用例集合中确定的该目标测试用例集;其中,该多目标优化模型包括多个凸求解器,该多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集。
第六方面,本申请提供一种计算设备。该计算设备包括处理器和存储器,该存储器中存储有计算机可读指令,该处理器执行该计算机可读指令,以执行如本申请第一方面或第三方面该的方法。
第七方面,本申请提供一种计算机可读存储介质。该计算设备集群包括计算机可读指令,当该计算机可读指令在计算机上运行时,使得该计算机执行如本申请第一方面或第三方面的方法。
第八方面,本申请提供一种计算机程序产品。该产品包括计算机可读指令,当该计算机可读指令在计算机上运行时,使得该计算机执行如本申请第一方面或第三方面的任一项该的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种系统架构图;
图2a为本申请实施例提供的一种终端架构图;
图2b为本申请实施例提供的一种终端架构图;
图3为本申请实施例提供的一种测试用例选择方法的流程图;
图4为本申请实施例提供的一种终端界面的示意图;
图5为本申请实施例提供的一种多任务优化模型的示意图;
图6为本申请实施例提供的一种效果示意图;
图7为本申请实施例提供的一种效果示意图;
图8为本申请实施例提供的一种测试用例选择方法的流程图;
图9为本申请实施例提供的一种测试用例选择装置的结构示意图;
图10为本申请实施例提供的一种测试用例选择装置的结构示意图;
图11为本申请实施例提供的一种测试用例选择方法的流程图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
回归测试,是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试是软硬件研发生命周期的一个重要组成部分,在整个软硬件测试过程中占有很大的工作量比重,软硬件开发的各个阶段都会进行多次回归测试。一般来讲,最简单的回归策略就是全量回归,但是随着被测产品软硬件功能、性能及其它质量属性的不断迭代,测试用例集的数量越来越庞大,测试占用的资源越来越多,一轮全量的回归测试是非常昂贵的。
测试用例的风险,指的是测试用例在执行时的失败率。一个测试用例的风险高,指的是该测试用例在执行时的失败率较高,例如失败率高于某一阈值,具有这样特点的测试用例也被称为高风险用例;相应地,一个测试用例的风险低,指的是该测试用例在执行时的失败率较低,例如失败率低于某一阈值。上述阈值的取值可以是任意的,本申请对于阈值的具体数值不作限定。
缺陷,一般是指存在于软件代码中的错误,有时也会被称为“错误”、“BUG”等。通过执行测试用例,可以发现一个软件中的部分或者全部缺陷。能否尽可能多地发现缺陷,能否在有限的时间能尽可能多地发现缺陷,以及,能否在有限的时间内尽可能多地发现相对严重的缺陷,这很大程度上取决于测试用例的设计和筛选。
测试需求一般是指需要测试的内容,例如,测试某个功能是否在软件中有所体现等。
测试的有效性,指的是在一次测试中,能够发现软件缺陷或者覆盖需求的测试用例,在该次测试所执行的全部测试用例中所占的比例。
在进行测试用例的选择时,通常只考虑了单一优选目标,例如只考虑用例失败风险最大化的测试约束,虽然该失败风险预测的特征包含了代码覆盖和历史失败率,但未能考虑测试业务覆盖,不能解决测试人员同时需要满足多个测试约束的要求,且测试人员针对于特定的测试约束,需要单独进行代码编写来进行测试用例的选择,选择代价较高。
基于此,本申请实施例提供了一种测试用例选择方法,该方法可以向用户提供多个测试约束,用户可以在进行测试约束的选择,进而系统可以基于用户的选择来进行测试用例的选择,在可以实现基于多个测试约束进行测试用例选择的同时,降低了测试人员进行测试用例的选择时的选择代价。本申请还提供了上述方法对应的装置、计算机可读存储介质以及计算机程序产品。
为了使得本申请的技术方案更加清楚、用于理解,下面先对数据流处理系统的系统架构进行介绍。
参见图1,示出了一种系统架构示意图。该系统包括终端100、以及服务器200。其中,服务器200可以包括一个或者多个服务器(图1中以包括一个服务器作为示例进行说明),服务器200可以为一个或者多个终端提供测试用例选择服务。
其中,终端100上可以安装有与测试用例选择相关的应用程序,或者打开与测试用例相关的网页,上述应用程序和网页可以提供一个测试用例选择界面(本申请实施例中也可以称之为目标界面),测试用例选择界面可以包括多个针对于测试用例选择时的测试用例选择约束(本申请实施例中也可以称之为目标约束),终端100可以接收用户在测试用例选择界面上选择的至少一个目标约束,并将上述至少一个目标约束发送至服务器200,服务器200可以基于接收到的至少一个目标约束,从候选测试用例集合中选择目标测试用例集,并将目标测试用例集反馈至终端100。
由于终端100向用户提供了可以进行测试选择约束的选项,且服务器200侧可以基于用户选择的约束来选择测试约束,可以实现多约束的测试用例选择,且降低了测试人员进行测试用例选择时的操作成本。
应理解,在一些可选的实现中,终端100也可以由自身完成基于至少一个目标约束,从候选测试用例集合中选择目标测试用例的动作,而不需要服务器配合实现,本申请实施例并不限定。
接下来描述图1中终端100的产品形态;
本申请实施例中的终端100可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)等,本申请实施例对此不作任何限制。
图2a示出了终端100的一种可选的硬件结构示意图。
参考图2a所示,终端100可以包括射频单元110、存储器120、输入单元130、显示单元140、摄像头150(可选的)、音频电路160(可选的)、扬声器161(可选的)、麦克风162(可选的)、处理器170、外部接口180、电源190等部件。本领域技术人员可以理解,图2a仅仅是终端或多功能设备的举例,并不构成对终端或多功能设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
输入单元130可用于接收输入的数字或字符信息,以及产生与该便携式多功能装置的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触摸屏131(可选的)和/或其他输入设备132。该触摸屏131可收集用户在其上或附近的触摸操作(比如用户使用手指、关节、触笔等任何适合的物体在触摸屏上或在触摸屏附近的操作),并根据预先设定的程序驱动相应的连接装置。触摸屏可以检测用户对触摸屏的触摸动作,将该触摸动作转换为触摸信号发送给该处理器170,并能接收该处理器170发来的命令并加以执行;该触摸信号至少包括触点坐标信息。该触摸屏131可以提供该终端100和用户之间的输入界面和输出界面。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏。除了触摸屏131,输入单元130还可以包括其他输入设备。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键132、开关按键133等)、轨迹球、鼠标、操作杆等中的一种或多种。
输入单元130可以接收到用户针对于目标界面的操作,例如本申请实施例中,输入单元130可以接收到用户根据该目标界面从该M个目标约束中选择的N个目标约束的相关操作。
该显示单元140可用于显示由用户输入的信息或提供给用户的信息、终端100的各种菜单、交互界面、文件显示和/或任意一种多媒体文件的播放。在本申请实施例中,显示单元140可用于显示目标界面。
该存储器120可用于存储指令和数据,存储器120可主要包括存储指令区和存储数据区,存储数据区可存储各种数据,如多媒体文件、文本等;存储指令区可存储操作系统、应用、至少一个功能所需的指令等软件单元,或者他们的子集、扩展集。还可以包括非易失性随机存储器;向处理器170提供包括管理计算处理设备中的硬件、软件以及数据资源,支持控制软件和应用。还用于多媒体文件的存储,以及运行程序和应用的存储。
处理器170是终端100的控制中心,利用各种接口和线路连接整个终端100的各个部分,通过运行或执行存储在存储器120内的指令以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据,从而对手机进行整体控制。可选的,处理器170可包括一个或多个处理单元;优选的,处理器170可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器170中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,他们也可以在独立的芯片上分别实现。处理器170还可以用于产生相应的操作控制信号,发给计算处理设备相应的部件,读取以及处理软件中的数据,尤其是读取和处理存储器120中的数据和程序,以使其中的各个功能模块执行相应的功能,从而控制相应的部件按指令的要求进行动作。
其中,存储器120可以用于存储与测试用例选择方法相关的软件代码,处理器170可以执行测试用例选择方法的步骤,也可以调度其他单元(例如上述输入单元130以及显示单元140)以实现相应的功能。
该射频单元110可用于收发信息或通话过程中信号的接收和发送,例如,将基站的下行信息接收后,给处理器170处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,射频单元110还可以通过无线通信与网络设备和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General PacketRadio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
其中,在申请实施例中,该射频单元110可以将N个目标约束发送至服务器200,并接收到服务器200发送的目标测试用例集。
应理解,该射频单元110为可选的,其可以被替换为其他通信接口,例如可以是网口。
终端100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器170逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
终端100还包括外部接口180,该外部接口可以是标准的Micro USB接口,也可以使多针连接器,可以用于连接终端100与其他装置进行通信,也可以用于连接充电器为终端100充电。
尽管未示出,终端100还可以包括闪光灯、无线保真(wireless fidelity,WiFi)模块、蓝牙模块、不同功能的传感器等,在此不再赘述。下文中描述的部分或全部方法均可以应用在如图2a所示的终端100中。
接下来描述图1中服务器200的产品形态;
图2b提供了一种设备200的结构示意图,如图2b所示,设备200包括总线201、处理器202、通信接口203和存储器204。处理器202、存储器204和通信接口203之间通过总线201通信。
总线201可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2b中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器202可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
其中,处理器202可以基于来自终端100的至少一个目标约束,从候选测试用例集合中选择目标测试用例集。
通信接口203用于与外部通信。例如,通信接口203可以接收来自终端100的至少一个目标约束,以及向终端100发送目标测试用例集等等。通信接口203可以是网口,可以是射频天线,这里并不限定。
存储器204可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器204还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard drivedrive,HDD)或固态硬盘(solid state drive,SSD)。
其中,存储器204中存储有与基于来自终端100的至少一个目标约束,从候选测试用例集合中选择目标测试用例相关的可执行代码,处理器202执行该可执行代码。
应理解,上述终端100和服务器200可以为集中式或者是分布式的设备,上述终端100和服务器200中的处理器(例如处理器170以及处理器202)可以为硬件电路(如专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、通用处理器、数字信号处理器(digital signalprocessing,DSP)、微处理器或微控制器等等)、或这些硬件电路的组合,例如,处理器可以为具有执行指令功能的硬件系统,如CPU、DSP等,或者为不具有执行指令功能的硬件系统,如ASIC、FPGA等,或者为上述不具有执行指令功能的硬件系统以及具有执行指令功能的硬件系统的组合。
本申请的测试用例选择方法可以被应用在所有的软件产品的回归测试过程中,尤其适合被应用在版本迭代较快、测试周期较短或者测试资源较少的软件产品的回归测试场景中。
为了使得本申请的技术方案更加清楚、易于理解,下面从系统架构中的各个设备之间进行交互的角度,对本申请实施例提供的测试用例选择方法进行介绍。
参见图3所示的测试用例选择方法的流程图,该方法包括:
301:向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件。
步骤301的执行主体可以为终端100,在一种可能的实现中,终端100可以安装有测试用例选择相关的应用程序,用户(例如软件测试人员)可以在终端100上开启上述应用程序,进而终端100可以显示目标界面。用户(例如软件测试人员)也可以在终端100上打开与测试用例选择相关的网页,进而终端100可以显示目标界面,该目标界面可以包括M个目标约束。应理解,本申请并不限定目标界面的打开方式以及来源。
在一种可能的实现中,目标界面用于指示M个目标约束,也就是说目标界面可以显示有针对于M个目标约束的选项,用户可以通过对上述M个目标约束的选项进行操作来选择M个目标约束中的全部或部分目标约束作为后续进行测试用例的选择时使用的约束。
应理解,每个目标约束用于作为进行测试用例的选择时所采用的约束条件,可以理解为每个目标约束是用于作为进行测试用例的选择而采用的约束条件,而不是限定进行测试用例的选择的同一时刻,每个目标约束作为约束条件。
针对于M个目标约束的显示方式,在一种可能的实现中,该目标界面可以包括M个控件,每个控件用于指示该M个目标约束中的一个,也就是通过控件的方式显示M个目标约束,用户可以通过该控件触发对应约束的选择,可选的,目标界面上的控件可以用于指示M个目标约束中的多个约束,例如某个控件可以用于指示2个约束,用户可以通过该控件触发2个约束的选择。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
也就是说,控件可以包括选项和输入框,选项可以用于指示是否选择对应约束的约束类型,输入框可以用于指示输入对应约束的约束大小,用户可以基于目标界面上的控件来选择何种类型的约束以及多大的约束。例如可以参照图4,图4为一种目标界面的示意,其中,图4示出的目标界面包括6个指示目标约束的控件。
在一种可能的实现中,目标约束的约束类型可以包括测试用例的预测执行失败率最大化。其中,预测执行失败率可以指示测试用例在下一次被执行时对应的失败概率。
在一种可能的实现中,目标约束的约束类型可以包括测试用例与被修改的代码之间的关联程度最大化。其中,关联程度用于表征测试用例与被修改的软件代码之间的关联程度。在一种表征方式中,关联度的取值越大,则表示二者的关联程度越紧密,关联程度与测试用例的风险相关,也与测试用例是否能够覆盖测试需求相关。
在一种可能的实现中,目标约束的约束类型可以包括测试用例针对于代码的功能覆盖最大化。其中,功能覆盖可以指示代码是否能够实现对应的功能。
在一种可能的实现中,目标约束的约束类型可以包括与当前执行时间的时间间隔最大化。
在一种可能的实现中,目标约束的约束类型可以包括测试用例的数量约束,和/或目标约束的约束类型可以包括测试用例的执行时长约束。其中,该约束通常可以表达为最大执行时长或子集最大用例数,可选的,可以根据用户定义的所有目标和约束给出建议的最小执行时长和最小用例集。
在一种可能的实现中,该目标界面除了可以指示M个目标约束之外,该目标界面还可以用于指示该每个目标约束的优先级,其中,优先级可以指示后续进行测试用例选择时对应的约束满足程度,优先级越高,则约束满足程度越高,例如可以选择M个约束中的部分约束作为主目标约束,主目标约束为选择的约束中优先级最高的约束,例如可以选择变更覆盖最大化为主目标或者以失败探测比最大化为主目标,以及相应执行时间或用例数量的约束为主约束;可选的,还可以选择一些次要约束,其中,次要约束的优先级小于主约束,例如特性覆盖最大化,测试执行间隔时长大则优先等目标,可选的,次要约束之间可以不分优先级先后。通过优先级的设定,用户可以基于实际的测试需求进行约束的配置,提高了后续进行测试用例选择时的选择精准度和需求满足度。
302:获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数。
步骤302的执行主体可以为终端100,在一种可能的实现中,终端100可以获取用户根据该目标界面从该M个目标约束中选择的N个目标约束,其中,N可以小于M,也就是用户可以在M个目标约束中选择部分约束作为后续进行测试用例的选择时所采用的约束条件,其中,N可以等于M,也就是用户可以在M个目标约束中选择全部约束作为后续进行测试用例的选择时所采用的约束条件。
在一种可能的实现中,用户可以在目标界面上通过和控件的操作交互,来进行约束的选择,例如可以通过点击要选择的约束,终端100可以响应于用户的选择操作,进而获取用户根据该目标界面从该M个目标约束中选择的N个目标约束。
以图4示出的目标界面为例,在该界面中,用户选择了失败率预测策略优先,特性覆盖最大化,以及距当前执行时间越长优先的三个目标约束。
在一种可能的实现中,该目标界面还可以用于指示该每个目标约束的优先级,进而用户可以在目标界面上进行选择的目标约束之间的优先级大小配置,以N个目标约束包括第一约束和第二约束为例,用户可以将第一约束的优先级设置为高于第二优先级,进而终端100可以获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级。
在一种可能的实现中,终端100在获取到用户根据该目标界面从该M个目标约束中选择的N个目标约束之后,可以将N个目标约束的信息传递至服务器200,由服务器200根据该N个目标约束从候选测试用例集合中选择目标测试用例集,或者终端100自己根据该N个目标约束从候选测试用例集合中选择目标测试用例集。
303:根据该N个目标约束,获取目标测试用例集,其中该目标测试用例集为根据该N个目标约束从候选测试用例集中选择的。
步骤303的执行主体可以为终端100,在一种可能的实现中,终端100可以根据该N个目标约束从候选测试用例集合中确定该目标测试用例集,在一种可能的实现中,终端100可以向服务器发送该N个目标约束,并接收该服务器发送的该目标测试用例集。
步骤303的执行主体可以为服务器200,在一种可能的实现中,服务器200可以根据该N个目标约束从候选测试用例集合中确定该目标测试用例集。
接下来描述如何根据该N个目标约束从候选测试用例集合中确定该目标测试用例集:
在一种可能的实现中,候选测试用例集合可以来自测试用例库,例如可以将测试用例库中的部分或所有测试用例作为候选测试用例集合,该候选测试用例集合也可以为用户从终端100侧指定的,具体的,用户可以在终端100上输入候选测试用例集合的指示信息,终端100可以将上述指示信息传递至服务器200,进而服务器200可以根据上述指示信息从测试用例库中确定候选测试用例集合,或者终端100可以自己根据上述指示信息从测试用例库中确定候选测试用例集合。
在一种可能的实现中,N个目标约束作为在进行测试用例选择时使用的约束,进而可以以该N个目标约束为目标,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集。
通过多目标优化模型进行测试用例的选择,可以提升测试有效性和变更覆盖率,促使回归测试缺陷发现前移,提高测试效率。
在一种可能的实现中,该多目标优化模型可以包括多个凸求解器,该多个凸求解器用于并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集。
其中,以多目标优化模型为基于多目标测试优化算法(multi-criteria test-optimization algorithm,MC-TOA)实现的为例,参照图5,凸求解器可以通过不断筛选(screening)和拓展(exploring)搜索空间,最终建立全局最优解(pareto front)。其中凸求解器可以包括筛选系列模块和扩展系列模块,筛选系列模块可以针对对单个目标搜索最优解,拓展系列模块可以通过对不同的目标做归一化并随机地调整目标的权重的方式,实现以任意方式组合所有单个目标最优解,形成部分最优解。所有的筛选系列模块可以并行求解,因为针对不同的目标求解最优解的过程是相互独立的,没有耦合的。所有的拓展执行模块可以并行执行所有的exploring求解器,也可以引入一个反馈机制,即基于前序的拓展执行结果来选择下一步的目标权重。
当达到截止条件时,多目标优化模型可以依据配置最终给出一个或多个全局近最优解。针对全自动配置场景,多目标优化模型可以自动从多个全局近最优子集中识别并计算得到离理想目标满足度差距最小的近最优解用例子集。针对手动配置场景,多目标优化模型可以向用户可视化呈现多个候选全局近最优解以及相应的约束的目标权重和约束的满足程度,由用户来进行测试用例的选择。
应理解,上述凸求解器可以是开源的或商用的求解器,例如Cbc、Cbc_relaxed、Gurobi、Gurobi_relaxed、Clp等。
以用户的选择的目标约束包括测试用例的预测执行失败率最大化为例,可以基于训练好的用例分类器,将本次需要筛选的测试用例输入到该用例分类器中,用例分类器会预测每一个测试用例在下一次被执行时对应的失败概率,即预测执行失败率。例如,候选测试用例集合包括用例1、用例2和用例3等,将其输入用例分类器,可以得到各测试用例对应的预测执行失败率。
以用户的选择的目标约束包括和测试用例与被修改的代码之间的关联程度最大化为例,关联程度用于表征测试用例与被修改的软件代码之间的关联程度。在一种表征方式中,关联度的取值越大,则表示二者的关联程度越紧密,关联程度与测试用例的风险相关,也与测试用例是否能够覆盖测试需求相关。将关联度引入进来用于筛选高风险用例,有利于更加精准地筛选出高风险用例,有利于提高后续测试的有效性。
在一种可能的实现中,可以通过需求单/问题单来确定测试用例对应的关联度。需求单记录了软件的设计人员对开发人员所提出的技术上的需求。问题单记录了软件使用人员在使用软件过程中所发现的问题。开发人员会根据需求单所提出的需求或者问题单所提出的问题来修改软件的代码。在修改之后,开发人员一般会填写修改记录。修改记录中记录了被修改的代码,包括被修改的代码的位置和内容等,修改记录中还会记录与被修改的代码对应的需求单或者问题单。
需要说明的是,在软件开发生命周期中,一个软件可能被修改很多次,每一次修改都可能需要进行一次或者多次回归测试。本实施例中的被修改的软件代码,仅仅是指本次被修改的软件代码,而不是指软件被开发以来所有的被修改的软件代码。还需要说明的是,被修改的代码可以通过多种方式来标识,例如代码的位置编号,或者代码的模块编号等。需求单可以通过多种方式来唯一标识,例如需求单号等。类似地,问题单可以通过多种方式来唯一标识,例如问题单号等。基于此,在本申请实施例中,需求单/问题单与被修改的软件代码之间的映射关系,可以通过需求单号/问题单号与软件代码的标识之间的映射关系来表示。
若用户的选择的目标约束包括和测试用例与被修改的代码之间的关联程度最大化为例,则多目标优化模型可以以和测试用例与被修改的代码之间的关联程度最大化以及测试用例的预测执行失败率最大化为目标,从候选测试用例集合中选择目标测试用例集。
在一种可能的实现中,若用户还指定了目标约束之间的优先级,则可以根据该N个目标约束以及该优先级信息,获取目标测试用例集。具体的,若用户指定了目标约束之间的优先级排序,则该多目标优化模型可以计算得到一组最终用例子集最优解(包括目标测试用例集)。
在实际的回归测试场景中,通常测试业务需要综合考虑被测代码、组件、模块变更覆盖、业务覆盖(例如特性覆盖、测试场景覆盖、被测环境形态覆盖等),以及失败风险(即挑选出失败风险高的用例)等几大维度目标的测试策略,通过MC-TOA算法能够解决海量全量用例场景下,快速输出多目标用例优先子集,在保证测试覆盖和缺陷探测能力不减退的前提下,精准减少测试执行量和测试执行时长。
在一种可能的实现中,可以使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,可以根据该N个目标约束,获取多个测试用例集,该多个测试用例集为根据该N个目标约束从候选测试用例集中选择的,并获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。可以确定多个满足N个目标约束的测试用例集,来供用户选择,用户可以根据自身的需求从多个测试用例集选择一个测试用例集(目标测试用例集),来作为进行被测系统的回归测试时使用的测试用例集。
如图6,在同样的业务目标数量和备选用例全集体量下,MC-TOA相较于现有的演进算法Borg和随机方法,可以在较短的时间内收敛达到一个较高的Hypervolume Indicator值(HVI,一种最常用的评估多目标算法优劣的指标值),即综合目标满足度值。结合最优解结果二维塌陷对比图,也可显而易见看出在选出同等size的用例子集的前提下,MC-TOA相较于现有的演进算法Borg和随机方法可以挑选出代码变更覆盖(图7左侧中的纵座标exercises)更高和失败概率更高(图7右侧图中的纵座标failrate)的用例集。
在一种可能的实现中,除了选择目标测试用例集之外,还可以获取到该目标测试用例集对该N个目标约束的满足程度。终端100可以在该目标界面上显示该目标测试用例集的同时,也在该目标界面上显示该目标测试用例集对该N个目标约束的满足程度。其中,满足程度可以是失败风险预估值、覆盖的变更代码数量等等。
本申请实施例提供了一种测试用例选择方法该方法可以向用户提供多个测试约束,用户可以在进行测试约束的选择,进而系统可以基于用户的选择来进行测试用例的选择,在可以实现基于多个测试约束进行测试用例选择的同时,降低了测试人员进行测试用例的选择时的选择代价。
本申请实施例还提供了一种测试用例选择方法,参见图8所示的测试用例选择方法的流程图,该方法包括:
801:获取N个目标约束,该N为大于1的正整数。
其中,步骤801的执行主体可以为终端100或者服务器200,关于步骤801的描述,可以参照上述实施例中步骤301和步骤302的描述,相似之处不再赘述。
802:以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集合;其中该多目标优化模型包括凸求解器,该凸求解器用于并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集合。
其中,步骤802的执行主体可以为终端100或者服务器200,关于步骤802的描述,可以参照上述实施例中步骤303的描述,相似之处不再赘述。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
在一种可能的实现中,该目标测试用例集合为该候选测试用例集合的子集。
在一种可能的实现中,可以向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;
获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数。
在一种可能的实现中,该获取N个目标约束,包括:接收终端设备发送的该N个目标约束。
在一种可能的实现中,可以使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,可以根据该N个目标约束,通过多目标优化模型,从候选测试用例集合中确定多个测试用例集;
获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该向用户提供M个目标约束,包括:显示目标界面,该目标界面用于指示M个目标约束。
在一种可能的实现中,该目标界面包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该目标界面还用于指示该每个目标约束的优先级;可以获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级;
该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集,包括:
以该N个目标约束为约束,根据该优先级信息,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集,其中,该目标测试用例集对该第一约束的满足程度高于对该第二约束的满足程度。
在一种可能的实现中,该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集之后,可以在该目标界面上显示该目标测试用例集;和/或,
在该目标界面上显示该目标测试用例集对该N个目标约束的满足程度。
在一种可能的实现中,该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集之后,可以向终端设备发送该目标测试用例集。
上文结合图1至图8对本申请实施例提供的测试用例选择方法进行了详细介绍,下面将结合附图从功能单元的角度对本申请实施例提供的测试用例选择装置进行介绍。
参见图9所示的测试用例选择装置的架构示意图,该测试用例选择装置900包括:
约束提供单元901,用于用于向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;
获取单元902,用于获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数;根据该N个目标约束,获取目标测试用例集,其中该目标测试用例集为根据该N个目标约束从候选测试用例集中选择的。
在一种可能的实现中,该装置还包括:
回归测试模块,用于使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该获取单元902,具体用于:
根据该N个目标约束,获取多个测试用例集,该多个测试用例集为根据该N个目标约束从候选测试用例集中选择的;
获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该约束提供单元901,具体用于显示目标界面,该目标界面用于指示M个目标约束。
在一种可能的实现中,该目标界面包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该目标界面还用于指示该每个目标约束的优先级;该获取单元,还用于:
获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级;
该获取单元,具体用于:
根据该N个目标约束以及该优先级信息,获取目标测试用例集,其中,该目标测试用例集对该第一约束的满足程度高于对该第二约束的满足程度。
在一种可能的实现中,该显示单元,还用于:
在该目标界面上显示该目标测试用例集;和/或,
在该目标界面上显示该目标测试用例集对该N个目标约束的满足程度。
在一种可能的实现中,该目标测试用例集为根据该N个目标约束,通过多目标优化模型,从该候选测试用例集合中确定的。
在一种可能的实现中,该多目标优化模型包括多个凸求解器,该多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
在一种可能的实现中,该目标测试用例集为该候选测试用例集的子集。
根据本申请实施例的测试用例选择装置900可对应于执行本申请实施例中描述的方法,并且测试用例选择装置900的各个模块/单元的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
参见图10所示的测试用例选择装置的架构示意图,该测试用例选择装置1000包括:
获取单元1001,用于获取N个目标约束,该N为大于1的正整数;
确定单元1002,用于以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集合;其中该多目标优化模型包括凸求解器,该凸求解器用于并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集合。
在一种可能的实现中,该多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
在一种可能的实现中,该目标测试用例集合为该候选测试用例集合的子集。
在一种可能的实现中,该获取单元1001,用于:
向用户提供该M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件该;
获取用户该从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数。
在一种可能的实现中,该获取单元1001,用于:
接收终端设备发送的该N个目标约束。
在一种可能的实现中,该装置还包括:
回归测试单元,用于使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该确定单元1002,具体用于:
根据该N个目标约束,通过多目标优化模型,从候选测试用例集合中确定多个测试用例集;
获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该获取单元1001,具体用于:
显示目标界面,该目标界面用于指示M个目标约束。
在一种可能的实现中,该目标界面包括M个控件,每个控件用于指示该M个目标约束中的一个。
在一种可能的实现中,该目标约束包括约束类型以及约束大小中的至少一个;该M个控件包括目标控件,该目标控件包括目标选项和/或目标输入框,该目标选项用于指示该约束类型的选择,该目标输入框用于指示该约束大小的输入。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该获取单元1001,还用于:
获取用户根据该目标界面选择的针对于该N个目标约束的优先级信息,该优先级信息包括该N个目标约束中第一约束的第一优先级以及该N个目标约束中第二约束的第二优先级,该第一优先级高于该第二优先级;
该确定单元1002,具体用于:
以该N个目标约束为约束,根据该优先级信息,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集,其中,该目标测试用例集对该第一约束的满足程度高于对该第二约束的满足程度。
在一种可能的实现中,该装置还包括发送单元1003,用于:
在该以该N个目标约束为约束,通过多目标优化模型,从候选测试用例集合中确定该目标测试用例集之后,向终端设备发送该目标测试用例集。
根据本申请实施例的测试用例选择装置1000可对应于执行本申请实施例中描述的方法,并且测试用例选择装置1000的各个模块/单元的上述和其它操作和/或功能分别为了实现图8所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
可以理解的是,本实施例中对测试用例选择装置的功能模块的划分是示意性的,仅仅为一种逻辑功能划分,在实际实现时可以采用另外的划分方式。例如,约束提供模块901以及获取单元1001的功能可以由总线接口或者收发器实现,确定单元1002的功能可以由处理器实现。其中,处理器的功能可以由图2a和图2b中描述的处理器(处理器170以及处理器202)实现。
参照图11,本申请实施例还提供了一种测试用例选择方法,该方法应用于系统,该系统包括终端设备以及服务器,该方法包括:
1101:该终端设备向用户提供M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件。
步骤1101的具体描述可以参照步骤301的描述,这里不再赘述。
1102:该终端设备获取用户从该M个目标约束中选择的N个目标约束,该M大于或等于该N,该N大于1,该M和该N为正整数。
步骤1102的具体描述可以参照步骤302的描述,这里不再赘述。
1103:该终端设备向该服务器发送该N个目标约束。
1104:该服务器根据该N个目标约束从候选测试用例集中确定目标测试用例集。
1105:该服务器向该终端设备发送该目标测试用例集。
在一种可能的实现中,该终端设备可以使用该目标测试用例集实现被测系统的回归测试。
在一种可能的实现中,该服务器可以根据该N个目标约束,从候选测试用例集中确定包括该目标测试用例集的多个测试用例集;
该服务器可以向该终端设备发送该多个测试用例集;
该终端设备可以获取用户从该多个测试用例集中选择的该目标测试用例集,该目标测试用例集用于实现被测系统的回归测试。
在一种可能的实现中,该目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
在一种可能的实现中,该服务器可以根据该N个目标约束,通过多目标优化模型,从该候选测试用例集合中确定的该目标测试用例集;其中,该多目标优化模型包括多个凸求解器,该多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从该多个局部最优解中确定全局最优解,该全局最优解包括该目标测试用例集。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,该指令指示计算机执行上述实施例描述的测试用例选择方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被计算机执行时,该计算机执行前述软件包管理方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述软件包管理方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (34)
1.一种测试用例选择方法,其特征在于,所述方法包括:
向用户提供M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件;
获取用户从所述M个目标约束中选择的N个目标约束,所述M大于或等于所述N,所述N大于1,所述M和所述N为正整数;
根据所述N个目标约束,获取目标测试用例集,其中所述目标测试用例集为根据所述N个目标约束从候选测试用例集中选择的。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
使用所述目标测试用例集实现被测系统的回归测试。
3.如权利要求1所述的方法,其特征在于,所述根据所述N个目标约束,获取目标测试用例集,包括:根据所述N个目标约束,获取多个测试用例集,所述多个测试用例集为根据所述N个目标约束从候选测试用例集中选择的;
获取用户从所述多个测试用例集中选择的所述目标测试用例集,所述目标测试用例集用于实现被测系统的回归测试。
4.如权利要求1至3任一所述的方法,其特征在于,所述向用户提供M个目标约束,包括:
显示目标界面,所述目标界面用于指示M个目标约束。
5.如权利要求4所述的方法,其特征在于,所述目标界面包括M个控件,每个控件用于指示所述M个目标约束中的一个。
6.如权利要求5所述的方法,其特征在于,所述目标约束包括约束类型以及约束大小中的至少一个;所述M个控件包括目标控件,所述目标控件包括目标选项和/或目标输入框,所述目标选项用于指示所述约束类型的选择,所述目标输入框用于指示所述约束大小的输入。
7.如权利要求1至6任一所述的方法,其特征在于,所述目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
8.如权利要求4至7任一所述的方法,其特征在于,所述目标界面还用于指示所述每个目标约束的优先级;所述方法还包括:
获取用户根据所述目标界面选择的针对于所述N个目标约束的优先级信息,所述优先级信息包括所述N个目标约束中第一约束的第一优先级以及所述N个目标约束中第二约束的第二优先级,所述第一优先级高于所述第二优先级;
所述根据所述N个目标约束,获取目标测试用例集,包括:
根据所述N个目标约束以及所述优先级信息,获取目标测试用例集,其中,所述目标测试用例集对所述第一约束的满足程度高于对所述第二约束的满足程度。
9.如权利要求4至8任一所述的方法,其特征在于,所述根据所述N个目标约束,获取目标测试用例集之后,所述方法还包括:
在所述目标界面上显示所述目标测试用例集;和/或,
在所述目标界面上显示所述目标测试用例集对所述N个目标约束的满足程度。
10.如权利要求1至9任一所述的方法,其特征在于,所述目标测试用例集为根据所述N个目标约束,通过多目标优化模型,从所述候选测试用例集合中确定的。
11.如权利要求10所述的方法,其特征在于,所述多目标优化模型包括多个凸求解器,所述多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从所述多个局部最优解中确定全局最优解,所述全局最优解包括所述目标测试用例集。
12.如权利要求10或11所述的方法,其特征在于,所述多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
13.如权利要求1至12任一所述的方法,其特征在于,所述目标测试用例集为所述候选测试用例集的子集。
14.一种测试用例选择方法,其特征在于,所述方法应用于系统,所述系统包括终端设备以及服务器,所述方法包括:
所述终端设备向用户提供M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件;
所述终端设备获取用户从所述M个目标约束中选择的N个目标约束,所述M大于或等于所述N,所述N大于1,所述M和所述N为正整数;
所述终端设备向所述服务器发送所述N个目标约束;
所述服务器根据所述N个目标约束从候选测试用例集中确定目标测试用例集;
所述服务器向所述终端设备发送所述目标测试用例集。
15.如权利要求14所述的方法,其特征在于,所述方法还包括:
所述终端设备使用所述目标测试用例集实现被测系统的回归测试。
16.如权利要求14所述的方法,其特征在于,所述服务器根据所述N个目标约束从候选测试用例集中确定目标测试用例集,包括:
所述服务器根据所述N个目标约束,从候选测试用例集中确定包括所述目标测试用例集的多个测试用例集;
所述服务器向所述终端设备发送所述目标测试用例集,包括:
所述服务器向所述终端设备发送所述多个测试用例集;
所述方法还包括:
所述终端设备获取用户从所述多个测试用例集中选择的所述目标测试用例集,所述目标测试用例集用于实现被测系统的回归测试。
17.如权利要求14至16任一所述的方法,其特征在于,所述目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
18.如权利要求14至17任一所述的方法,其特征在于,所述服务器根据所述N个目标约束从候选测试用例集中确定目标测试用例集,包括:
所述服务器根据所述N个目标约束,通过多目标优化模型,从所述候选测试用例集合中确定的所述目标测试用例集;其中,所述多目标优化模型包括多个凸求解器,所述多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从所述多个局部最优解中确定全局最优解,所述全局最优解包括所述目标测试用例集。
19.一种测试用例选择装置,其特征在于,所述装置包括:
约束提供单元,用于向用户提供M个目标约束,每个目标约束用于作为进行测试用例的选择时所采用的约束条件;
获取单元,用于获取用户从所述M个目标约束中选择的N个目标约束,所述M大于或等于所述N,所述N大于1,所述M和所述N为正整数;根据所述N个目标约束,获取目标测试用例集,其中所述目标测试用例集为根据所述N个目标约束从候选测试用例集中选择的。
20.如权利要求19所述的装置,其特征在于,所述装置还包括:
回归测试模块,用于使用所述目标测试用例集实现被测系统的回归测试。
21.如权利要求19所述的装置,其特征在于,所述获取单元,具体用于:
根据所述N个目标约束,获取多个测试用例集,所述多个测试用例集为根据所述N个目标约束从候选测试用例集中选择的;
获取用户从所述多个测试用例集中选择的所述目标测试用例集,所述目标测试用例集用于实现被测系统的回归测试。
22.如权利要求19至21任一所述的装置,其特征在于,所述约束提供单元,具体用于显示目标界面,所述目标界面用于指示M个目标约束。
23.如权利要求22所述的装置,其特征在于,所述目标界面包括M个控件,每个控件用于指示所述M个目标约束中的一个。
24.如权利要求23所述的装置,其特征在于,所述目标约束包括约束类型以及约束大小中的至少一个;所述M个控件包括目标控件,所述目标控件包括目标选项和/或目标输入框,所述目标选项用于指示所述约束类型的选择,所述目标输入框用于指示所述约束大小的输入。
25.如权利要求19至24任一所述的装置,其特征在于,所述目标约束包括如下约束的任意一种:
测试用例的预测执行失败率最大化;
测试用例与被修改的代码之间的关联程度最大化;
测试用例针对于代码的功能覆盖最大化;
与当前执行时间的时间间隔最大化;
测试用例的数量约束;以及,
测试用例的执行时长约束。
26.如权利要求22至25任一所述的装置,其特征在于,所述目标界面还用于指示所述每个目标约束的优先级;所述获取单元,还用于:
获取用户根据所述目标界面选择的针对于所述N个目标约束的优先级信息,所述优先级信息包括所述N个目标约束中第一约束的第一优先级以及所述N个目标约束中第二约束的第二优先级,所述第一优先级高于所述第二优先级;
所述获取单元,具体用于:
根据所述N个目标约束以及所述优先级信息,获取目标测试用例集,其中,所述目标测试用例集对所述第一约束的满足程度高于对所述第二约束的满足程度。
27.如权利要求22至26任一所述的装置,其特征在于,所述显示单元,还用于:
在所述目标界面上显示所述目标测试用例集;和/或,
在所述目标界面上显示所述目标测试用例集对所述N个目标约束的满足程度。
28.如权利要求22至27任一所述的装置,其特征在于,所述目标测试用例集为根据所述N个目标约束,通过多目标优化模型,从所述候选测试用例集合中确定的。
29.如权利要求28所述的装置,其特征在于,所述多目标优化模型包括多个凸求解器,所述多个凸求解器并行进行N个目标约束中每个目标约束对应的运算,以得到多个局部最优解,并从所述多个局部最优解中确定全局最优解,所述全局最优解包括所述目标测试用例集。
30.如权利要求28或29所述的装置,其特征在于,所述多目标优化模型为基于多目标测试优化MC-TOA算法实现的。
31.如权利要求19至30任一所述的装置,其特征在于,所述目标测试用例集为所述候选测试用例集的子集。
32.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以执行如权利要求1至18中任一项所述的方法。
33.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至18任一项所述的方法。
34.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至18任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712008.0A CN115525532A (zh) | 2021-06-25 | 2021-06-25 | 一种测试用例选择方法及相关装置 |
PCT/CN2022/100062 WO2022268062A1 (zh) | 2021-06-25 | 2022-06-21 | 一种测试用例选择方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712008.0A CN115525532A (zh) | 2021-06-25 | 2021-06-25 | 一种测试用例选择方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525532A true CN115525532A (zh) | 2022-12-27 |
Family
ID=84544948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110712008.0A Pending CN115525532A (zh) | 2021-06-25 | 2021-06-25 | 一种测试用例选择方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115525532A (zh) |
WO (1) | WO2022268062A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387585B2 (en) * | 2014-10-30 | 2019-08-20 | The Mathworks, Inc. | System and method for performing model verification |
US9940222B2 (en) * | 2015-11-20 | 2018-04-10 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN111694741B (zh) * | 2020-06-05 | 2023-09-29 | 中国工程物理研究院计算机应用研究所 | 一种基于路径深度覆盖的测试用例设计方法 |
-
2021
- 2021-06-25 CN CN202110712008.0A patent/CN115525532A/zh active Pending
-
2022
- 2022-06-21 WO PCT/CN2022/100062 patent/WO2022268062A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022268062A1 (zh) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3480692B1 (en) | Methods and systems for preloading applications and generating prediction models | |
CN108268366B (zh) | 测试用例执行方法及装置 | |
CN102231131B (zh) | 测试电子设备内的软件 | |
CN110147237B (zh) | 一种冗余资源去除方法和装置 | |
CN110163367B (zh) | 一种终端部署方法和装置 | |
RU2767143C2 (ru) | Управление принятием решений с использованием машинного обучения в случае оповещений, исходящих от систем текущего контроля | |
CN111290762B (zh) | 一种深度学习网络的部署方法、装置及终端设备 | |
CN105404585A (zh) | 获取代码覆盖率的方法及装置 | |
CN110826071A (zh) | 软件漏洞风险预测方法、装置、设备及存储介质 | |
CN107291586B (zh) | 一种应用程序的分析方法和装置 | |
CN112114892A (zh) | 深度学习模型的获取方法、加载方法及选取方法 | |
CN110913447B (zh) | 网络控制方法、装置、存储介质及电子设备 | |
CN107861864A (zh) | 自动化测试方法、系统及计算机可读存储介质 | |
CN111222563A (zh) | 一种模型训练方法、数据获取方法以及相关装置 | |
CN105550316A (zh) | 音频列表的推送方法及装置 | |
CN111026651B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN115525532A (zh) | 一种测试用例选择方法及相关装置 | |
CN116303085A (zh) | 一种测试原因分析方法、装置、设备及存储介质 | |
CN115904950A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
KR20170044320A (ko) | 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체 | |
CN114390574A (zh) | 无线网络吞吐量测试方法、装置和计算机可读存储介质 | |
CN111176708B (zh) | 一种sdk文件处理方法、装置、电子设备及存储介质 | |
CN115565589A (zh) | 晶圆颗粒的质量等级确定方法和装置 | |
CN105630503A (zh) | 一种基于用户操作记录的应用开发移动设备选取方法 | |
CN117574111B (zh) | 基于场景状态的bms算法选择方法、装置、设备和介质 |
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 |