一种面向时间预算的回归测试任务调度方法及系统与流程
本发明涉及软件测试、计算机任务调度及测试设备资源控制,具体涉及一种面向时间预算的回归测试任务调度方法及系统。
背景技术:
1、软件版本迭代、持续集成和发布验证通常需要重复执行既有测试任务。当待执行测试任务的预计总时长超过发布窗口、夜间窗口、预约窗口或测试执行设备的可用时间时,测试系统需要在有限设备资源和有限执行时间内确定实际执行顺序及可执行范围。不同测试任务的执行时长可能相差较大,长时任务持续占用测试环境时,会减少同一执行窗口内能够获得结果的任务数量,并延迟后续诊断和重执行。
2、现有回归测试任务排序方案可以利用历史失败次数、最近失败情况或预测风险将高风险任务提前,也可以利用执行时长、测试成本或时间约束选择测试任务。仅依据历史失败信息排序时,排序前部可能集中较长任务;仅依据预计执行时长排序时,失败风险较低的短任务可能占据排序前部。还有方案依据多个目标约束从候选测试任务中重新求解目标子集,该目标子集不一定对应预先排序序列的连续部分,并可能在预算变化时产生新的组合求解和队列重排操作。
3、因此,需要一种将历史失败风险、预计执行时长和测试执行设备的可用时长预算按照明确的数据关系连接起来的技术方案,使排序结果能够直接转化为保持顺序语义的设备执行队列,并使执行结果和实际执行时长用于后续测试轮次的历史更新。
技术实现思路
1、要解决的技术问题
2、本发明要解决的技术问题是:在测试执行设备和执行时间受限的条件下,如何在保留历史失败风险信息的同时调节排序前部的任务时长构成,在不改变联合排序语义的情况下确定预算内连续可执行范围,避免预算判定阶段对候选任务进行组合子集求解或者重新排序,并将所述连续可执行范围转换为测试执行设备能够直接执行的任务队列,以及基于设备返回的执行结果和实际执行时长形成跨轮次历史更新闭环。
3、技术方案
4、为解决上述技术问题,本发明提供一种由调度服务器执行的面向时间预算的回归测试任务调度方法。所述调度服务器与历史执行记录存储器及至少一台测试执行设备通信连接,所述方法包括以下步骤:
5、s101,获取当前测试轮次的待执行测试任务集合、测试执行设备的可用时长预算以及当前测试轮次开始之前形成的历史执行记录。
6、s102,针对各待执行测试任务,根据具有相同测试任务标识的历史执行次数和历史失败次数确定历史失败风险评分。
7、s103,根据具有相同测试任务标识的历史执行时长确定预计执行时长;缺少有效历史执行时长时,采用所属设备、账户、环境或任务组的历史执行时长统计量作为时长回退值。
8、s104,根据历史失败风险评分和预计执行时长确定联合优先级评分,使联合优先级评分与历史失败风险评分正相关,并与预计执行时长对应的单调递增时长惩罚项负相关。
9、s105,按照联合优先级评分对待执行测试任务进行确定性排序,得到排序序列;所述排序序列形成后,在当前测试轮次的预算判定过程中保持不变。
10、s106,从排序序列首项开始依次累计预计执行时长。
11、s107,在加入下一测试任务将使累计预计执行时长超过测试执行设备的可用时长预算时,终止前缀扩展,且不跳过该下一测试任务而搜索其后的测试任务,不对未执行测试任务进行组合子集求解或者重新排序,得到保持排序序列顺序的连续可执行前缀。
12、s108,根据连续可执行前缀生成至少包括测试任务标识和执行顺序的执行队列,将执行队列下发至测试执行设备,由测试执行设备按序执行。
13、s109,接收测试执行设备返回的执行结果和实际执行时长,将所述执行结果和实际执行时长写入历史执行记录,供后续测试轮次重新评分和排序。
14、本发明还提供与上述方法对应的回归测试任务调度系统,以及用于执行上述方法的电子设备、计算机可读存储介质和计算机程序产品。
15、有益效果
16、由于历史失败风险评分和预计执行时长共同参与联合优先级评分的生成,排序序列能够在保留历史失败信息的同时调节排序前部的任务时长构成,减少排序结果仅偏向高风险长任务或低风险短任务的可能性。
17、由于预算控制模块在排序序列形成后保持该排序序列不变,仅从排序序列首项依次扩展连续可执行前缀,并在首个超预算任务处停止,不搜索该任务之后的可容纳任务,也不重新求解候选任务组合或者重新排序,因而能够减少预算判定阶段的候选遍历、组合求解和执行队列重排操作;设备执行队列与联合排序序列保持一一对应,有利于保持任务序号、设备下发顺序、执行日志及结果回收之间的一致性和可复现性。
18、由于测试执行设备返回的执行结果和实际执行时长被关联写入历史执行记录,并仅在后续测试轮次开始前重新参与评分和时长估计,当前轮次的排序输入边界明确,从而形成设备执行与跨轮次重新调度之间的可追溯技术闭环。
19、本发明不以任意测试场景下必然提高失败任务发现数量为前提。其技术作用在于使失败风险、任务时长和设备执行窗口之间形成可实施的数据处理及控制关系,为有限执行窗口内的回归测试任务调度提供稳定、确定且能够由测试执行设备直接执行的任务序列。
1.一种面向时间预算的回归测试任务调度方法,应用于包括调度服务器、历史执行记录存储器和至少一台测试执行设备的测试系统,其特征在于,包括:获取当前测试轮次的待执行测试任务集合、所述测试执行设备的可用时长预算以及在所述当前测试轮次开始之前形成的历史执行记录,所述历史执行记录至少包括测试任务标识、历史执行结果和历史执行时长;针对所述待执行测试任务集合中的各待执行测试任务,根据具有相同测试任务标识的历史执行结果确定历史失败风险评分,并根据具有相同测试任务标识的历史执行时长确定预计执行时长;根据所述历史失败风险评分和所述预计执行时长生成联合优先级评分,所述联合优先级评分与所述历史失败风险评分正相关,并与由所述预计执行时长确定的单调递增时长惩罚项负相关;按照所述联合优先级评分降序,并在所述联合优先级评分相同时按照预设并列消解顺序进行确定性排序,得到排序序列;在所述排序序列形成后,在所述当前测试轮次的预算判定过程中保持所述排序序列不变;从所述排序序列的首项开始,依次累计所述排序序列中各待执行测试任务的预计执行时长,在加入下一测试任务将使累计预计执行时长超过所述可用时长预算时停止扩展,且不跳过所述下一测试任务而搜索其后的测试任务,不对未执行测试任务进行组合子集求解或者重新排序,得到保持所述排序序列顺序的连续可执行前缀;根据所述连续可执行前缀生成至少包括对应测试任务标识和执行顺序的执行队列,并将所述执行队列下发至对应的测试执行设备;接收所述测试执行设备返回的执行结果和实际执行时长,将所述执行结果和所述实际执行时长与对应测试任务标识关联写入所述历史执行记录,供后续测试轮次重新确定历史失败风险评分、预计执行时长和排序序列。
2.根据权利要求1所述的方法,其特征在于,确定所述历史失败风险评分和所述预计执行时长时,仅使用在所述当前测试轮次开始之前已经完成并记录的历史执行结果和历史执行时长;任一待执行测试任务在所述当前测试轮次中形成的数据不参与该测试任务在所述当前测试轮次中的联合优先级评分。
3.根据权利要求1所述的方法,其特征在于,所述历史失败风险评分按下式确定:
4.根据权利要求3所述的方法,其特征在于,所述预计执行时长优先采用相同测试任务标识对应的正历史执行时长中位数;所述中位数无效或非正时采用正历史执行时长均值;不存在有效任务级历史执行时长时,采用所属设备、账户、环境或任务组的正历史执行时长统计量作为时长回退值;所述设备、账户、环境或任务组均无有效正历史执行时长时,采用系统级正历史执行时长统计量或预设正时长;对所述预计执行时长进行下限处理,得到:
5.根据权利要求1所述的方法,其特征在于,所述联合优先级评分相同时,依次按照在所述当前测试轮次开始之前固定的全局顺序、轮次顺序、计划执行时间、测试任务标识和原始记录位置进行并列消解;令所述排序序列为,令为满足所述排序序列前项对应预计执行时长之和不超过所述可用时长预算的最大非负整数;当时,所述连续可执行前缀为空;当时,为首个超预算任务;所述连续可执行前缀仅由至构成,并且预算判定过程不对之后的测试任务进行可容纳性搜索。
6.根据权利要求1所述的方法,其特征在于,更新所述历史执行记录包括:将当前执行结果、实际执行时长、测试轮次标识、执行设备标识和记录有效性标识与对应测试任务标识关联存储;在下一测试轮次中采用滚动历史窗口或全部可用历史执行记录重新计算历史失败风险评分和预计执行时长;对于执行中断、设备故障、缺失执行结果或非正执行时长,依据预设异常类别予以排除、采用回退值或进行下限处理。
7.一种面向时间预算的回归测试任务调度系统,包括调度服务器、历史执行记录存储器和至少一台测试执行设备,其特征在于,所述调度服务器包括:数据获取模块,用于获取当前测试轮次的待执行测试任务集合、所述测试执行设备的可用时长预算以及在所述当前测试轮次开始之前形成的历史执行记录;风险评分模块,用于根据历史执行结果确定各待执行测试任务的历史失败风险评分;时长估计模块,用于根据历史执行时长确定各待执行测试任务的预计执行时长;联合排序模块,用于根据所述历史失败风险评分和所述预计执行时长生成联合优先级评分并进行确定性排序,得到排序序列;预算控制模块,用于在所述排序序列形成后保持所述排序序列在所述当前测试轮次的预算判定过程中不变,从所述排序序列首项开始依次累计各待执行测试任务的预计执行时长,在加入下一测试任务将超过所述可用时长预算时停止,且不跳过所述下一测试任务而搜索其后的测试任务,不对未执行测试任务进行组合子集求解或者重新排序,得到连续可执行前缀;执行控制模块,用于根据所述连续可执行前缀生成执行队列并下发至对应的测试执行设备;历史更新模块,用于接收所述测试执行设备返回的执行结果和实际执行时长,并将所述执行结果和所述实际执行时长写入所述历史执行记录供后续测试轮次使用;所述联合排序模块被配置为按照下式计算所述联合优先级评分:
8.一种电子设备,包括存储器、处理器、通信接口以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com