《一种测试用例优先级排序动态调整方法.pdf》由会员分享,可在线阅读,更多相关《一种测试用例优先级排序动态调整方法.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102880545 A (43)申请公布日 2013.01.16 C N 1 0 2 8 8 0 5 4 5 A *CN102880545A* (21)申请号 201210315495.8 (22)申请日 2012.08.30 G06F 11/36(2006.01) (71)申请人中国人民解放军63928部队 地址 100101 北京市朝阳区安翔北路10号 (72)发明人杨广华 李东红 邓世伟 宗建建 齐超 刘宇 郑彦兴 (74)专利代理机构北京安博达知识产权代理有 限公司 11271 代理人徐国文 (54) 发明名称 一种测试用例优先级排序动态调整方法 (57) 摘。
2、要 本发明提供一种测试用例优先级排序动态调 整方法,包括以下步骤:设计测试用例;计算测试 用例的优先级取值;对所述测试用例进行排序和 动态调整。通过在测试执行过程中动态调整测试 用例优先级,有助于在短时间内发现更多的系统 缺陷,提高测试用例的使用效率。 (51)Int.Cl. 权利要求书2页 说明书5页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 5 页 附图 2 页 1/2页 2 1.一种测试用例优先级排序动态调整方法,其特征在于:所述方法包括以下步骤: 步骤1:设计测试用例; 步骤2:计算测试用例的优先级取值; 步骤3:对所述测试用例进。
3、行排序和动态调整。 2.根据权利要求1所述的测试用例优先级排序动态调整方法,其特征在于:所述步骤1 中,通过脚本或手工操作设计所述测试用例。 3.根据权利要求1所述的测试用例优先级排序动态调整方法,其特征在于:所述步骤2 中,对于测试用例集,第i个测试用例的优先级取值表示为V i TCP ,用下述公式(1)计算: V i TCP V i RP *W RP +V i RM *W RM +V i IC *W IC +V i FP *W FP (1) 其中,V i RP 、V i RM 和V i IC 分别为第i个测试用例对应的需求优先级,需求变更情况和实现 复杂度的值,V i FP 表示第i个测试。
4、用例缺陷检测能力的值,W RP 、W RM 、W IC 和W FP 分别为V i RP 、V i RM 、 V i IC 和V i FP 对应的权值,其取值可以根据实际情况而调整;所述W RP 、W RM 、W IC 和W FP 之和为1。 4.根据权利要求1所述的测试用例优先级排序动态调整方法,其特征在于:所述步骤3 中,对所述测试用例进行排序产生影响的相关因素包括需求优先级、需求变更情况、实现复 杂度和缺陷监测能力。 5.根据权利要求4所述的测试用例优先级排序动态调整方法,其特征在于:所述需求 优先级对系统需求重要程度进行度量,量化处理为0-1或0-10的数值区间。 6.根据权利要求4所述。
5、的测试用例优先级排序动态调整方法,其特征在于:对于所述 需求变更情况这一相关因素,用下述公式(2)量化计算第i个需求变更值ViRT: 其中,RT i 表示第i个需求的变更次数,maxRT表示最大的需求变更次数。 7.根据权利要求4所述的测试用例优先级排序动态调整方法,其特征在于:所述实现 复杂度的度量标准包括循环深度、McCabe圈复杂度、Halstend复杂度和LCSAJ密度;所述 实现复杂度的度量对象包括单个指标或至少两个指标的加权平均值,所述至少两个指标的 加权平均值通过使用源代码静态分析和度量工具获得,或对代码实现进行评估赋值,量化 处理为0-1或0-10的数值区间。 8.根据权利要求。
6、4所述的测试用例优先级排序动态调整方法,其特征在于:所述缺陷 监测能力用FP表示,根据系统缺陷严重性等级对检测到不同等级缺陷的测试用例的缺陷 检测能力FP进行赋值,第i个测试用例的缺陷检测能力值V i FP 表示为: 其中,表示第i个测试用例检测到缺陷的加权平均值,T I 表示第i个测试 用例检测到的各个严重性等级缺陷集合,DV j 表示第i个测试用例检测到的严重性等级为j 的缺陷个数,WD表示各个严重性等级缺陷的赋值;max(DV*WD)表示测试用例检测到缺 陷的加权平均值中的最大值,DV表示测试用例检测到各个严重性等级的缺陷个数。 权 利 要 求 书CN 102880545 A 2/2页 。
7、3 9.根据权利要求1所述的测试用例优先级排序动态调整方法,其特征在于:所述步骤3 包括以下步骤: 步骤3-1:对测试用例集进行初步排序,如果是首次测试,可以根据测试用例对应的需 求优先级,需求变更情况和实现复杂度对测试用例赋予相应的优先级,如果是回归测试,则 考虑历史缺陷检测能力,对测试用例赋予相应的优先级; 步骤3-2:选择并执行当前具有最高优先级的测试用例,当检测到系统缺陷时,遍历所 有未执行的测试用例,根据测试用例与测试需求的对应关系TRM,动态地将测试用例的优先 级提高; 步骤3-3:根据新的优先级顺序选择执行测试用例,重复这个过程,直到所有测试用例 都执行完毕。 10.根据权利要求。
8、9所述的测试用例优先级排序动态调整方法,其特征在于:所述步骤 3-2中,单个测试用例覆盖单个测试需求或多个测试需求,若不同的测试用例覆盖同一测试 需求,则认为测试用例和测试测试需求是相关的,测试用例和测试测试需求的对应关系TRM 为: 测试用例集T=t 1 ,t 2 ,t n 与测试需求集R=r 1 ,r 2 ,r m 的对应关系TRM=(k i,j ) nm 是nm的矩阵,其中,当且仅当测试用例t i 被设计为覆盖需求r j 时,元素k i,j= 1,否则k i, j =0。 权 利 要 求 书CN 102880545 A 1/5页 4 一种测试用例优先级排序动态调整方法 技术领域 0001。
9、 本发明属于计算机信息处理技术领域,具体涉及一种测试用例优先级排序动态调 整方法。 背景技术 0002 在软件开发和测试过程中,随着被测软件的更改和变化,测试人员需要不断更新 和增加新的测试用例,这就导致测试用例集的规模不断增加,全面执行它的成本逐渐加大。 在此情况下,为了降低测试用例执行成本,提高测试过程中测试用例的使用效率,人们针对 测试用例的选择和使用问题进行了大量的研究工作。其中测试用例排序技术着重研究测试 过程中测试用例的执行策略,由于不同测试用例对于测试目标的完成可能有着不同的贡献 程度,因此可以将不同的测试用例按其重要程度进行排序后使用,从而提高测试用例的使 用效率。 0003 。
10、测试用例排序技术最初是作为回归测试的一种辅助技术被提出来的。在回归测 试中选择出待复用的测试用例集后,对其进行进一步进行精简和优化可能会耗费过多的资 源。作为已有方法的有益补充,可以将待复用的测试用例集按照测试目标确定的标准进行 排序,并依次选择和执行测试用例,从而提高测试中错误检测的速度和效率。 0004 测试用例排序技术的研究目标定义为:给定测试用例集T、T中的测试用例所有可 能排序的集合PT,以及从PT到实数的函数f,测试用例排序的问题为找出TPT,使得对 任意TPT且TT,有|f(T)f(T)|成立。 0005 其中,集合PT包含了测试用例所有可能的执行顺序,f是对排序目标的定量描述,。
11、 用以度量排序的有效性。一般来讲,f的值越大越好。 0006 测试用例排序的研究内容主要是如何确定和表述测试用例的重要程度,如何对测 试用例进行排序。可以将其抽象为寻找测试用例全排列中的最优集合问题,也就是解决上 述定义中的函数f的定义和在此基础上最优排列的寻找方法。 0007 围绕测试用例排序问题已经有大量的研究工作。主要有在回归测试选择技术基础 上对测试用例集进行最小化或优先级处理,通过判定累计覆盖率等对测试用例进行排序, 辅助选择使用测试用例,基于测试用例执行信息,将测试历史及动态反馈信息用于计算测 试用例选择概率,以及与时间因素相关的优先级技术,基于切片的测试用例优先级技术,面 向服务。
12、软件的测试用例排序技术等。 发明内容 0008 为了克服上述现有技术的不足,本发明提供一种测试用例优先级排序动态调整方 法,将需求优先级,需求变更情况,实现复杂度和缺陷检测能力等与系统测试需求相关的影 响因素应用于测试用例的排序,通过在测试执行过程中动态调整测试用例优先级,有助于 在短时间内发现更多的软件缺陷,提高测试用例的使用效率。 0009 为了实现上述发明目的,本发明采取如下技术方案: 说 明 书CN 102880545 A 2/5页 5 0010 一种测试用例优先级排序动态调整方法,所述方法包括以下步骤: 0011 步骤1:设计测试用例; 0012 步骤2:计算测试用例的优先级取值; 。
13、0013 步骤3:对所述测试用例进行排序和动态调整。 0014 所述步骤1中,通过脚本或手工操作设计所述测试用例。 0015 所述步骤2中,对于测试用例集,第i个测试用例的优先级取值表示为V i TCP ,用下 述公式(1)计算: 0016 V i TCP V i RP *W RP +V i RM *W RM +V i IC *W IC +V i FP *W FP (1) 0017 其中,V i RP 、V i RM 和V i IC 分别为第i个测试用例对应的需求优先级,需求变更情况和 实现复杂度的值,V i FP 表示第i个测试用例缺陷检测能力的值,W RP 、W RM 、W IC 和W F。
14、P 分别为V i RP 、 V i RM 、V i IC 和V i FP 对应的权值,其取值可以根据实际情况而调整;所述W RP 、W RM 、W IC 和W FP 之和为 1。 0018 所述步骤3中,对所述测试用例进行排序产生影响的相关因素包括需求优先级、 需求变更情况、实现复杂度和缺陷监测能力。 0019 所述需求优先级对系统需求重要程度进行度量,量化处理为0-1或0-10的数值区 间。 0020 大约60%以上的系统功能很少被用户使用,用户经常使用的系统功能只有40%左 右。一般来说,对用户更加重要的需求进行验证和测试,可以提高测试的效益。因此,通过 对需求优先级进行赋值,使具有高优先。
15、级的需求对应的测试用例更早的执行,有助于提高 测试效率,降低测试成本。 0021 对于所述需求变更情况这一相关因素,根据研究,需求的改变是引入软件缺陷的 一个重要原因,在软件完成之前,约有25%的需求会发生改变,需求的变更或重新设计会导 致软件实现中包含更多的潜在缺陷,同时使得这部分软件的测试也更加困难。因此,将需求 变更情况应用于测试用例排序中,使变更次数多的系统需求对应的测试用例具有较高优先 级,能够较早开始执行,这样有利于更早的检测到软件缺陷,使测试更有效率。用下述公式 (2)量化计算第i个需求变更值V i RT : 0022 0023 其中,RT i 表示第i个需求的变更次数,maxR。
16、T表示最大的需求变更次数。 0024 通常,20%的系统模块包含了80%的软件缺陷,具有高的系统复杂度(如McCabe圈 复杂度等)的系统模块具有较高数量的系统缺陷。因此,考虑将系统实现复杂度应用于测试 用例排序中,使具有高实现复杂度的需求对应的测试用例具有较高优先级,能够较早开始 执行,这样有利于更早的检测到系统缺陷,使测试更有效率。 0025 所述实现复杂度的度量标准包括循环深度、McCabe圈复杂度、Halstend复杂度和 LCSAJ密度;所述实现复杂度的度量对象包括单个指标或至少两个指标的加权平均值,所 述至少两个指标的加权平均值通过使用源代码静态分析和度量工具获得,或对代码实现进 。
17、行评估赋值,量化处理为0-1或0-10的数值区间。 0026 所述缺陷监测能力用FP表示,根据系统缺陷严重性等级(一般来说,分为致命、严 重、一般、建议等四个等级)对检测到不同等级缺陷的测试用例的缺陷检测能力FP进行赋 说 明 书CN 102880545 A 3/5页 6 值,对严重性从高到低可以赋值为4、3、2、1或8、4、2、1等。如果考虑到检测到缺陷的数量, 第i个测试用例的缺陷检测能力值V i FP 表示为: 0027 0028 其中,表示第i个测试用例检测到缺陷的加权平均值,T I 表示第i个 测试用例检测到的各个严重性等级缺陷集合,DV j 表示第i个测试用例检测到的严重性等级 为。
18、j的缺陷个数,WD表示各个严重性等级缺陷的赋值;max(DV*WD)表示测试用例检测 到缺陷的加权平均值中的最大值,DV表示测试用例检测到各个严重性等级的缺陷个数。 0029 所述步骤3包括以下步骤: 0030 步骤3-1:对测试用例集进行初步排序,如果是首次测试,可以根据测试用例对应 的需求优先级,需求变更情况和实现复杂度对测试用例赋予相应的优先级,如果是回归测 试,则考虑历史缺陷检测能力,对测试用例赋予相应的优先级; 0031 步骤3-2:选择并执行当前具有最高优先级的测试用例,当检测到系统缺陷时,遍 历所有未执行的测试用例,根据测试用例与测试需求的对应关系TRM,动态地将测试用例的 优先。
19、级提高; 0032 步骤3-3:根据新的优先级顺序选择执行测试用例,重复这个过程,直到所有测试 用例都执行完毕。 0033 具体描述如下: 0034 方法:测试用例优先级排序动态调整方法 0035 输入:程序P的测试用例集T,测试用例和需求的对应关系TRM=(k i,j ) nm 0036 输出:排序后的测试用例集T 0037 说 明 书CN 102880545 A 4/5页 7 0038 0039 所述步骤3-2中,单个测试用例覆盖单个测试需求或多个测试需求,若不同的测 试用例覆盖同一测试需求,则认为测试用例和测试测试需求是相关的,测试用例和测试测 试需求的对应关系TRM为: 0040 测试。
20、用例集T=t 1 ,t 2 ,t n 与测试需求集R=r 1 ,r 2 ,r m 的对应关系TRM=(k i, j ) nm 是nm的矩阵,其中,当且仅当测试用例t i 被设计为覆盖需求r j 时,元素k i,j =1,否则 k i,j =0。 0041 与现有技术相比,本发明的有益效果在于: 0042 1.本发明将与需求相关的影响因素应用于测试用例排序,既可以用于首次测试, 也可以应用于回归测试,利用了测试用例与需求的相关性,在测试过程中动态调整测试用 例执行优先级,逐步优化测试执行顺序,以取得更好的测试效果; 说 明 书CN 102880545 A 5/5页 8 0043 2.有利于尽快检。
21、测到程序中的错误,为被测系统提供反馈使调试修改工作尽早开 始;有利于根据较早检测到错误的测试用例执行情况,调整后续测试用例的执行策略,提高 测试用例检测效率; 0044 3.有利于尽快达到测试的覆盖率标准,从而降低测试执行的时间开销和人力成 本;有利于在测试实践中受到时间等资源的限制时,能够在有限的资源下执行更多有效的 测试用例,相对充分地保证软件质量。 附图说明 0045 图1是测试用例优先级排序动态调整方法实施例流程图; 0046 图2是实施例中系统A前后两次的缺陷监测情况示意图; 0047 图3是实施例中系统B前后两次的缺陷监测情况示意图。 具体实施方式 0048 下面结合附图对本发明作。
22、进一步详细说明。 0049 图1为测试用例优先级排序动态调整方法流程图。 0050 为了能够更好地度量优先级方法,可以采用测试用例集在执行过程中的缺陷检测 加权平均百分比的度量标准APFD(Average of the Percentage of Faults Detected), 其中,执行测试用例运行情况作为横坐标,测试用例缺陷检测情况作为纵坐标,排序方法的 APFD值可通过缺陷检测曲线计算出来,APFD的值越大,说明对应的测试用例的排序检测到 缺陷的速度越快。 0051 假设测试用例集T含有m个测试用例,被测软件P中有k个缺陷,则APFD的定义 为: 0052 0053 其中,TF i 。
23、表示检测到缺陷i的第一个测试用例在T中的位置。 0054 为了评价和比较面向多样化需求的测试用例排序动态调整算法的有效性,我们选 取了两个系统进行测试与分析,针对测试需求,每个系统设计了100多个系统级测试用例, 每个系统执行两次测试,第一次测试执行未采用测试用例优先级排序动态调整方法的测试 用例,第二次采用测试用例优先级排序动态调整方法执行测试用例,系统A前后两次的缺 陷检测情况如图2所示,APFD值分别为0.55和0.71,系统B前后两次的缺陷检测情况如图 3所示,APFD值分别为0.58和0.64。 0055 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽 管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然 可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何 修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。 说 明 书CN 102880545 A 1/2页 9 图1 说 明 书 附 图CN 102880545 A 2/2页 10 图2 图3 说 明 书 附 图CN 102880545 A 10 。