一种事件序列故障定位方法与流程

文档序号:11386422阅读:349来源:国知局
一种事件序列故障定位方法与流程

本发明涉及软件测试领域,特别是涉及一种事件序列故障定位方法。



背景技术:

在软件测试中,当事件序列测试用例引发软件错误时,需要测试人员找出触发系统故障的错误事件序列,现有技术中,软件测试人员采用逐条测试的方法查找引起故障的错误事件序列,效率低,亟需一种快速准确的定位测试激励中的错误事件序列的方法。



技术实现要素:

本发明的目的是提供一种快速准确的定位测试激励中的错误事件序列的方法。

为实现上述目的,本发明提供了如下方案:

一种事件序列故障定位方法,所述定位方法应用于测试系统中,所述定位方法包括:

根据所述测试系统中的测试结果,获得可能错误事件序列集;

根据所述可能错误事件序列集,获得强度为t的错误事件序列;根据所述强度为t的错误事件序列,获得多条测试激励;

逐条对所述多条测试激励触发,获得触发结果;

判断所述触发结果是否错误,如果是,将对应触发结果错误的测试激励加入到错误激励集合m中;否则,将对应触发结果正确的测试激励加入到正确激励集合n中;

根据所述正确激励集合n计算,获得所述测试系统的安全值集合;

根据所述安全值集合定位所述错误激励集合m中的每条所述测试激励中对应的错误事件序列,将所述错误事件序列存储在错误事件序列集h中,输出所述错误事件序列集h。

可选的,所述根据所述正确激励集合n计算,获得所述测试系统的安全值集合具体包括:

设所述正确激励具有k个事件;

从所述正确激励集合n中筛选出k>t的正确激励,获得新的正确激励集合n′;

将所述新的正确激励集合n′中的每条所述正确激励对应的第i个事件至第i+t个事件的序列存储到所述安全值集合中,获得所述安全值集合,当k>t时,i的取值为0,1,2,......,k-1。

可选的,根据所述安全值集合定位所述错误激励集合m中的每条所述测试激励中对应的错误事件序列具体包括:

设所述错误激励为t;

初始化所述错误激励t,获得集合a,所述集合a为1到k的整数;

判断所述集合a的强度是否大于t,如果是,继续进行;否则,采用所述安全值集合中的各元素逐一替换所述集合a中的各元素,定位所述集合a中的错误事件序列,获得所述错误事件序列;

将所述集合a平均分成t+1个互不相交的集合a1,a2,...,at+1;

采用所述集合a1,a2,...,at+1中的集合aj将所述错误激励对应位置上的元素替换为所述安全值,获得t+1条附加测试激励;

当测试过程中出现m条所述附加测试激励触发错误,获取m条所述附加测试激励的交集对应的因素集a′;

根据所述因素集a′生成新的测试激励t′;

执行所述新的测试激励t′,判断触发结果是否错误,如果是,将所述新的测试激励t′进行上述操作;否则,从m条所述附加测试激励中任选一条所述附加测试激励进行上述操作。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明公开了一种应用于测试系统中的事件故障序列定位方法,根据测试激励触发的结果获得正确测试激励和错误测试激励,根据正确测试激励获得安全值集合,根据错误测试激励和安全值定位分析,快速准确的获得每条测试激励中对应的错误事件序列。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种事件序列故障定位方法的流程图;

图2为计算安全值集合的方法流程图;

图3为定位分析方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种快速准确的定位测试激励中的错误事件序列的方法。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,一种事件序列故障定位方法,所述定位方法应用于测试系统中,所述定位方法包括:

步骤100:根据所述测试系统中的测试结果,获得可能错误事件序列集;

步骤200:根据所述可能错误事件序列集,获得强度为t的错误事件序列;根据所述强度为t的错误事件序列,获得多条测试激励;

步骤300:逐条对所述多条测试激励触发,将所述测试激励输入到测试系统中,获得触发结果;

步骤400:判断所述触发结果是否错误,如果是,执行步骤500;否则,执行步骤600;

步骤500:将对应触发结果错误的测试激励加入到错误激励集合m中;

步骤600:将对应触发结果正确的测试激励加入到正确激励集合n中;

步骤700:根据所述正确激励集合n计算,获得所述测试系统的安全值集合;

步骤800:根据所述安全值集合定位所述错误激励集合m中的每条所述测试激励中对应的错误事件序列,将所述错误事件序列存储在错误事件序列集h中,输出所述错误事件序列集h。

可选的,如图2所示,所述根据所述正确激励集合n计算,获得所述测试系统的安全值集合具体包括:

步骤701:设所述正确激励具有k个事件,由k个事件组成的测试激励;

步骤702:从所述正确激励集合n中筛选出k>t的正确激励,获得新的正确激励集合n′;

步骤703:将所述新的正确激励集合n′中的每条所述正确激励对应的第i个事件至第i+t个事件的序列存储到所述安全值集合中,获得所述安全值集合,当k>t时,i的取值为0,1,2,......,k-1。

可选的,如图3所示,根据所述安全值集合定位所述错误激励集合m中的每条所述测试激励中对应的错误事件序列具体包括:

步骤801:设所述错误激励为t;

步骤802:初始化所述错误激励t,获得集合a,所述集合a为1到k的整数;

步骤803:判断所述集合a的强度是否大于t,如果是,执行步骤805;否则,执行步骤804;

步骤804:采用所述安全值集合中的各元素逐一替换所述集合a中的各元素,定位所述集合a中的错误事件序列,获得所述错误事件序列;

步骤805:将所述集合a平均分成t+1个互不相交的集合a1,a2,...,at+1;

步骤806:采用所述集合a1,a2,...,at+1中的集合aj将所述错误激励对应位置上的元素替换为所述安全值,获得t+1条附加测试激励;

步骤807:当测试过程中出现m条所述附加测试激励触发错误,获取m条所述附加测试激励的交集对应的因素集a′;

步骤808:根据所述因素集a′生成新的测试激励t′;

步骤809:执行所述新的测试激励t′,判断触发结果是否错误,如果是,执行步骤810;否则,执行步骤811;

步骤810:将所述新的测试激励t′重新执行步骤801;

步骤811:从m条所述附加测试激励中任选一条所述附加测试激励重新执行801。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1