面向错误定位的巧合正确性测试用例识别方法及装置的制造方法

文档序号:9396797阅读:266来源:国知局
面向错误定位的巧合正确性测试用例识别方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机软件调试领域,更具体地说,涉及一种面向错误定位的巧合正 确性测试用例识别方法及装置。
【背景技术】
[0002] 当前大多数错误定位方法利用程序覆盖信息,基于特定的统计模型对比和分析程 序语句在正确测试用例和失败测试用例之间的统计差异来推断程序中错误可能存在的位 置。为了更有效地定位错误,研究学者提出了多种的统计模型。这类统计模型利用程序语 句的覆盖信息与程序正确/失败执行存在的关联性定位错误,它们一般是基于如下的两个 假设条件来定位错误:
[0003] 1、一个程序语句如果被越多的失败测试用例执行,那么该语句越可能包含错误;
[0004] 2、一个程序语句如果被越多的正确测试用例执行,那么该语句越可能是正确的语 句。
[0005] 从上述假设条件可以看出,这类统计模型假定了错误语句与失败测试用例存在着 强关联性,也就是说当错误的语句被执行时,程序会产生错误的输出。当这个条件满足时, 这类统计方法将能够较有效地找出程序中错误的位置。然而,在测试过程中这种假设并不 总是会满足,例如错误的语句被执行了但程序没有产生错误信息。研究人员提出了一种PIE 模型来研究错误信息能够被观测到需要满足的三个条件:
[0006] 1、错误语句被执行到;
[0007] 2、错误语句使程序产生错误的程序状态;
[0008] 3、错误的程序状态传播并影响到程序的输出。
[0009] 只有当这三个条件同时满足时,程序才能产生错误的输出。然而,只要后面两个条 件中任何一个不被满足时,错误语句即使被执行到了,程序仍能产生正确的输出。这种情形 下,测试用例在执行过程中覆盖了错误语句,却被标记为正确的测试用例。根据上述两个假 设条件可知,这类测试用例可能会降低错误语句的可疑度,从而对错误定位技术产生不利 的影响。
[0010] 因此,如何提高测试用例定位错误位置的效率,是现在需要解决的问题。

【发明内容】

[0011] 本发明的目的在于提供一种面向错误定位的巧合正确性测试用例识别方法及装 置,以提高测试用例定位错误位置的效率。
[0012] 为实现上述目的,本发明实施例提供了如下技术方案:
[0013] -种面向错误定位的巧合正确性测试用例识别方法,包括:
[0014] 收集测试用例集中每个测试用例运行预设程序的覆盖特征信息;
[0015] 将所述每个测试用例运行所述预设程序的执行结果作为所述每个测试用例的分 类标签;
[0016] 根据所述覆盖特征信息及携带分类标签的测试用例集,对回归模型进行训练,得 到分类模型;
[0017] 根据所述分类模型,对正确测试用例进行预测,筛选出所述正确测试用例中的巧 合正确性测试用例;其中,所述巧合正确性测试用例为在程序执行过程中执行了错误的语 句但是产生了正确的输出的测试用例。
[0018] 优选的,所述得出巧合正确性测试用例之后,还包括:
[0019] 对所述巧合正确性测试用例执行重标记策略。
[0020] 优选的,所述得出巧合正确性测试用例之后,还包括:
[0021] 对所述巧合正确性测试用例执行丢弃策略。
[0022] 优选的,所述根据所述分类模型,对正确测试用例进行预测,筛选出所述正确测试 用例中的巧合正确性测试用例,包括:
[0023] 根据所述分类模型,对正确测试用例进行预测,得出所述正确测试用例为巧合正 确性测试用例的概率排序;
[0024] 根据所述正确测试用例为巧合正确性测试用例的概率排序,筛选出所述正确测试 用例中的巧合正确性测试用例。
[0025] 优选的,所述回归模型为logistic回归模型。
[0026] -种面向错误定位的巧合正确性测试用例识别装置,包括:
[0027] 收集模块,用于收集测试用例集中每个测试用例运行预设程序的覆盖特征信息;
[0028] 分类标签设置模块,用于将所述每个测试用例运行所述预设程序的执行结果作为 所述每个测试用例的分类标签;
[0029] 训练模块,用于根据所述覆盖特征信息及携带分类标签的测试用例集,对回归模 型进行训练,得到分类模型;
[0030] 筛选模块,用于根据所述分类模型,对正确测试用例进行预测,筛选出所述正确测 试用例中的巧合正确性测试用例;其中,所述巧合正确性测试用例为在程序执行过程中执 行了错误的语句但是产生了正确的输出的测试用例。
[0031] 优选的,还包括:
[0032] 重标记模块,用于对所述巧合正确性测试用例执行重标记策略;
[0033] 优选的,还包括:
[0034] 丢弃模块,用于对所述巧合正确性测试用例执行丢弃策略。
[0035] 优选的,所述筛选模块包括:
[0036] 概率排序单元,用于根据所述分类模型,对正确测试用例进行预测,得出所述正确 测试用例为巧合正确性测试用例的概率排序;
[0037] 筛选单元,用于根据所述正确测试用例为巧合正确性测试用例的概率排序,筛选 出所述正确测试用例中的巧合正确性测试用例。
[0038] 优选的,所述回归模型为logistic回归模型。
[0039] 通过以上方案可知,本发明实施例提供的一种面向错误定位的巧合正确性测试用 例识别方法及装置,包括:收集测试用例集中每个测试用例运行预设程序的覆盖特征信息; 将所述每个测试用例运行所述预设程序的执行结果作为所述每个测试用例的分类标签;根 据所述覆盖特征信息及携带分类标签的测试用例集,对回归模型进行训练,得到分类模型; 根据所述分类模型,对正确测试用例进行预测,筛选出所述正确测试用例中的巧合正确性 测试用例,从而提高测试用例定位错误位置的效率。
【附图说明】
[0040] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0041] 图1为本发明实施例公开的一种面向错误定位的巧合正确性测试用例识别方法 流程图;
[0042] 图2为本发明实施例公开的一种面向错误定位的巧合正确性测试用例识别装置 结构示意图。
【具体实施方式】
[0043] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0044] 本发明实施例公开了一种面向错误定位的巧合正确性测试用例识别方法及装置, 以提高测试用例定位错误位置的效率。
[0045] 参见图1,本发明实施例提供的一种面向错误定位的巧合正确性测试用例识别方 法,包括:
[0046] S101、收集测试用例集中每个测试用例运行预设程序的覆盖特征信息;
[0047] 具体的,收集测试用例集在运行过程中的覆盖信息,并提取适当的覆盖信息作为 测试用例集的覆盖特征信息。
[0048] 具体的,巧合正确性测试用例在程序执行过程中必然覆盖了错误代码。这些测试 用例分布在能够到达错误代码所在位置的所有程序路径上。从路径执行的角度上看,为了 到达程序中的错误代码,这些测试用例在执行路径上的分支必须满足一定的取值条件。因 此,对于覆盖了错误代码的一条路径而言,分布在这条路径上的测试用例在执行路径上的 分支取值将表现出相似的取值特性,所以本实施例提取分支覆盖信息作为单条测试用例的 覆盖特征信息。
[0049] 具体的,假设程序P包含了 m个分支<Pl,p2, . . .,Ρηι>,本实施例采用以下步骤来收 集测试用例的覆盖特征信息。
[0050] (1)
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1