一种最小测试用例集的生成方法

文档序号:6625971阅读:505来源:国知局
一种最小测试用例集的生成方法
【专利摘要】本发明公开了一种最小测试用例集的生成方法及其装置,该方法包括:根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;根据若干个互不相交的集合得到最小测试用例集。本发明可以生成由测试目标中所有测试需求所确定的固有最小测试用例集,从根本上解决了测试用例集的简化问题、提高测试效率。
【专利说明】一种最小测试用例集的生成方法

【技术领域】
[0001] 本发明涉及计算机软件测试【技术领域】,具体涉及一种最小测试用例集的生成方 法。

【背景技术】
[0002] 软件测试是一个十分复杂的过程。测试用例的数量和质量决定软件测试的成本和 有效性,如何得到高效的测试用例集是测试工作中最为重要的组成部分。
[0003] 对于每个测试需求一般都要产生相应的测试用例,以实现对这个测试需求的充 分测试。但这样产生的测试用例集一般数量比较大,而且可能有比较大的冗余,即这组测 试用例的某些子集也能满足所有的测试需求。由于运行和维护这些测试用例以及回归测试 将耗费大量的时间、人力和物力,软件测试的成本太大,因此人们一直在研究如何设计出 一组有效、数量少又能充分满足测试需求的测试用例集,从而在保证和提高软件测试质量 的同时,降低软件测试的成本。
[0004] 为了得到最小测试用例集,目前一般的处理方法是:首先根据测试目标中的每个 测试需求确定出相应的测试用例集,然后对这个测试用例集采用简化算法进行精简,去掉 一些冗余的测试用例,最后得到一组最小测试用例集。现有的简化算法有贪心算法和一些 启发式算法。但是,这些算法都只着眼于测试用例集的简化算法研究,而不考虑最初的测 试用例集的确定,所取得的效果将很有限。


【发明内容】

[0005] 本发明所要解决的技术问题在于,本发明提出一种最小测试用例集的生成方法, 通过充分考虑测试目标中的各个测试需求之间的相互关系,用以解决测试用例的简化问 题。
[0006] 为了解决上述问题,本发明提供一种最小测试用例集的生成方法,该方法包括:
[0007] 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合, 该若干个互不相交的集合的并集是T ;
[0008] 根据所述若干个互不相交的集合得到最小测试用例集。
[0009] 优选地,所述方法还包括:
[0010] 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的 步骤包括:
[0011] 当所述测试需求为^、r2时,根据测试需求&、r2所对应的测试用例集T 1、T2,
[0012] 将所述总的测试用例集T划分成以下集合H、T1 Π T2、T2-T115
[0013] 优选地,所述方法还包括:
[0014] 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的 步骤包括:
[0015] 当所述测试需求为I^r2、…、1^时,根据测试需求I^r2、…、r nm对应的测试用 例集 ?\、τ2、…、τη,
[0016]当Th nTi=0时,将总的测试用例集τ划分成以下集合=T1-T1 η τ2、T1 η τ2、 T2-T1 η τ2、.'H1 η TnJlri η τη、Tn-Tlri η τη;
[οοι7]当IV1 Π T0 时,
[0018] 将总的测试用例集T划分成以下集合:?\、T2、…、Τμ、T n ;
[0019] 0为空集,1彡i彡η,η为测试需求的个数。
[0020] 优选地,所述方法还包括:
[0021] 当TY1IH Ti= 0时,使用链表记录所述总的测试用例集T所划分成的集 合:T1-T1 η τ2、T1 n T2、T2-T1 η τ2、…、Tlri-Tlri η τη、Tlri η τη、Tn-Tlri η τη,将上述集合 依次填入所述链表开始的各结点内。
[0022] 优选地,所述方法还包括:
[0023] 根据所述若干个互不相交的集合得到最小测试用例集包括:
[0024] 将所述若干个互不相交的集合,使用贪心算法或启发式算法得到最小测试用例 集。
[0025] 为了解决上述问题,本发明还提供一种最小测试用例集的生成装置,该装置包 括:
[0026] 划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互 不相交的集合,该若干个互不相交的集合的并集是T ;
[0027] 计算模块,用于根据所述若干个互不相交的集合得到最小测试用例集。
[0028] 优选地,所述装置还具有以下特点:
[0029] 所述划分模块用于根据测试需求r的相互关系将总的测试用例集T划分成若干个 互不相交的集合是指:
[0030] 当所述测试需求为r2时,根据测试需求h、r2所对应的测试用例集?\、T 2,
[0031] 将所述总的测试用例集T划分成以下集合H、T1 Π T2、T2-T115
[0032] 优选地,所述装置还具有以下特点:
[0033] 所述划分模块,用于根据测试需求!的相互关系将总的测试用例集T划分成若干 个互不相交的集合是指:
[0034] 当所述测试需求为、…、1^时,根据测试需求、…、1^所对应的测试用 例集!\、T 2、…、Tn,
[0035] 当 TY1 η τ尸 0 时,
[0036] 将总的测试用例集τ划分成以下集合:I^-T1 η τ2、T1 η τ2、T2-T1 η τ···、 H1 η TnJlri η TnH1 η τη;
[0037] 当 Ti4 Π Ti# 0 时,
[0038] 将总的测试用例集T划分成以下集合:?\、T2、…、I;+ Tn ;
[0039] 0为空集,1彡i彡η,η为测试需求的个数。
[0040] 优选地,所述装置还具有以下特点:
[0041] 当TY1H T1= 0时,使用链表记录所述总的测试用例集T所划分成的集 合:T1-T1 η τ2、T1 η T2、T2-T1 η τ2、…、Tlri-Tlri η τη、Tlri η τη、Tn-Tlri η τη,将上述集合 依次填入所述链表开始的各结点内。
[0042] 优选地,所述装置还具有以下特点:
[0043] 所述计算模块用于根据所述若干个互不相交的集合得到最小测试用例集是指:
[0044] 所述计算模块,用于将所述若干个互不相交的集合通过使用贪心算法或启发式算 法得到最小测试用例集。
[0045] 本发明提出了一种最小测试用例集的生成方法及其装置,应用该方法可以生成由 测试目标中所有测试需求所确定的固有最小测试用例集,从根本上解决了测试用例集的 简化问题、提高测试效率。

【专利附图】

【附图说明】
[0046] 图1所示为本发明实施例划分互不相交的集合的流程图;
[0047] 图2所示为本发明实施例划分互不相交的集合的结构图。

【具体实施方式】
[0048] 以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用 技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明 的是,如果不冲突,本发明实施例以及实施例中的各个特征的相互均在本发明的保护范围 之内。
[0049] 本发明的实施例提供了一种最小测试用例集的生成方法,该方法包括:
[0050] 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合, 该若干个互不相交的集合的并集是T ;
[0051] 根据所述若干个互不相交的集合得到最小测试用例集。
[0052] 可选地,根据测试需求!的相互关系将总的测试用例集T划分成若干个互不相交 的集合的步骤包括:
[0053] 当所述测试需求为r2时,根据测试需求h、r2所对应的测试用例集?\、T 2,
[0054] 将所述总的测试用例集T划分成以下集合H、T1 Π T2、T2-T115
[0055] 可选地,根据测试需求!的相互关系将总的测试用例集T划分成若干个互不相交 的集合的步骤包括:
[0056] 当所述测试需求为、…、1^时,根据测试需求、…、1^所对应的测试用 例集!\、T 2、…、Tn,
[0057] 当 T i4 η T i= 0 时;
[0058] 将总的测试用例集τ划分成以下集合:I^-T1 η t2、T1 η t2、T2-T1 n T2、…、 H1 η TnJlri η TnH1 η τη。
[0059] 当 TV1 η T 0 时,
[0060] 将总的测试用例集T划分成以下集合:?\、T2、…、Τμ、T n ;
[0061] 0为空集,其中1彡i彡η,η为测试需求的个数。
[0062]可选地,当τT1= 0时,使用链表记录所述总的测试用例集T所划分成的集 合:TfT1 Π T2、T1 Π T2J2-T1 Π T2、Π H1 Π Tn、Tn-Tlri Π Tn,,将上述集合 依次填入所述链表开始的各结点内。
[0063] 可选地,将T1-T1 n T2填入链表首部的第1个结点内,将T1 n T2填入链表首部的第 2个结点内,将T2-T1 n T2后填入链表首部的第3个结点内,…,将Tlri-Tlri η Tn填入链表首 部的第2η-3个结点内,将Tlri-Tlri n Tn填入链表首部的第2η-2个结点内,将Tlri-Tlri n Tn 填入链表首部的第2η-1个结点内。
[0064] 可选地,根据所述若干个互不相交的集合得到最小测试用例集包括:
[0065] 将所述若干个互不相交的集合,使用贪心算法或启发式算法得到最小测试用例 集。
[0066] 为了实现上述方法,本发明还提供了一种最小测试用例集的生成装置,如图2所 示,该装置包括:
[0067] 划分模块,用于根据测试需求!的相互关系将总的测试用例集T划分成若干个互 不相交的集合,该若干个互不相交的集合的并集是T ;
[0068] 计算模块,用于根据所述若干个互不相交的集合得到最小测试用例集。
[0069] 可选地,所述划分模块用于根据测试需求!的相互关系将总的测试用例集T划分 成若干个互不相交的集合是指:
[0070] 当所述测试需求为r2时,根据测试需求h、r2所对应的测试用例集?\、Τ 2,
[0071] 将所述总的测试用例集τ划分:T「T2、T1 η τ2、T2-V
[0072] 可选地,所述划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分 成若干个互不相交的集合是指:
[0073] 当所述测试需求为、…、1^时,根据测试需求、…、1^所对应的测试用 例集!\、T 2、…、Tn,
[0074] 当 T w η T 尸 0 时;
[0075] 将总的测试用例集τ划分成以下集合:I^-T1 η τ2、T1 η τ2、T2-T1 η τ···、 H1 η TnJlri η TnH1 η τη。
[ο076]当 Th HTi^ 0 时,
[0077] 将总的测试用例集T划分成以下集合:?\、T2、…、I;+ Tn ;
[0078] 0为空集,其中I < i < η,η为测试需求的个数。
[0079] 可选地,当Tp1 Π Ti= 0时,使用链表记录所述总的测试用例集T所划分成的集 合:T1-T1 η τ2、T1 η τ2、T2-T1 η τ2、…、Tlri-Tlri η τη、Tlri η τη、Tn-Tlri η τη,将上述集合 依次填入所述链表开始的各结点内。
[0080] 可选地,将T1-T1 n T2填入链表首部的第1个结点内,将T1 n T2填入链表首部的第 2个结点内,将T2-T1 n T2后填入链表首部的第3个结点内,…,将Tlri-Tlri η Tn填入链表首 部的第2η-3个结点内,将Tlri-Tlri n Tn填入链表首部的第2η-2个结点内,将Tlri-Tlri n Tn 填入链表首部的第2η-1个结点内。
[0081] 可选的,所述计算模块用于根据所述若干个互不相交的集合得到最小测试用例集 是指:
[0082] 所述计算模块,用于将所述若干个互不相交的集合通过使用贪心算法或启发式算 法得到最小测试用例集。
[0083] 根据上述方法和装置,可知本发明可以生成由测试目标中所有测试需求所确定的 固有最小测试用例集,从根本上解决了测试用例集的简化问题、提高测试效率。
[0084] 为了便于更好的理解本发明的方法,下面具体说明。
[0085] (1)为了得到所有可用测试用例集T的一个划分,可用一个链表来记录划分的结 果,每个子集存放在每个结点。首先将满足测试需求A的测试用例集T 1放在链表首部第 一个结点内。
[0086] (2)考虑满足测试需求r2的测试用例集T2与T 1的关系.如果T ! Π T2= 0时, 将集合T2及其对应测试需求的编号填入链表第一个结点后的结点内.此时链表中有两个 结点,第一个结点中存放的是只满足测试需求^的测试用例集T1,第二个结点中存放的是 只满足测试需求r 2的测试用例集Τ2。
[0087] (3)如果T1H T# 0,此时首先将链表中第一个结点中测试用例集Tl去掉 T1 n T2中的元素,然后将T1 n T2填入链表的第二个结点,并把&和r2的标号填入相应的 域,以表明该结点中的测试用例集可同时满足这两个测试需求。最后将T2去掉T1 n T2中 的元素,如果非空,把它填入第三个结点中。这样链表中就有3个结点,第一个结点中存 放的是只满足测试需求ri的测试用例集T 1-T1 n T2,第二个结点中存放的是同时满足!^和 r2的测试用例集T1 n T2,第三个结点存放的是只满足测试需求r2的测试用例集T2-T 1 η τ2。
[0088] (4)然后再考虑测试需求r3对应的测试用例集T3与链表中各个结点中测试用例 集的关系。依此类推,直到最后一个测试需求r n对应的测试用例集Tn。
[0089] (5)在整个测试用例集T划分出的子集族的基础上应用贪心算法或启发式算法等 进行简化,即可得到最小测试用例集。
[0090] 本发明的有益效果是:现有的最小测试用例集生成方法都是对测试用例进行简 化,然而在测试需求分析阶段就发现测试需求集中往往就已存在冗余,一个测试需求点通 常对应一个数量较多的测试用例集,测试需求中的冗余会导致大量测试用例的冗余。基 于此种情况,本发明提出以上方法根据测试目标中的测试需求来产生相应的最初测试用例 集,在此用例集的基础上进行简化即可得到最小测试用例集,在实现对目标充分测试的基 础上,提高测试效率,降低测试成本。
[0091] 虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采 用的实施方式,并非用以限定本发明。任何本发明所属【技术领域】内的技术人员,在不脱离本 发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化, 但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【权利要求】
1. 一种最小测试用例集的生成方法,其特征在于,包括: 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若 干个互不相交的集合的并集是T; 根据所述若干个互不相交的集合得到最小测试用例集。
2. 如权利要求1所述的方法,其特征在于, 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤 包括: 当所述测试需求为r2时,根据测试需求Γι、r2所对应的测试用例集?\、T2, 将所述总的测试用例集T划分成以下集合=T1-I^T1ΠI^T2-T115
3. 如权利要求1所述的方法,其特征在于, 根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤 包括: 当所述测试需求为ri、r2、…、心时,根据测试需求!^、!^、…、rn所对应的测试用例集Ti、T2、 ...、Tn, 当TwΠTi= 0时,将总的测试用例集τ划分成以下集合=T1-T1ητ2、T1ητ2、T2-T1ητ2、.'H1ηTnJlriητη、Tn-Tlriητη; 当ThATi古0时, 将总的测试用例集T划分成以下集合:?\、T2、…、I;+Tn; 0为空集,1彡i彡η,η为测试需求的个数。
4. 如权利要求3所述的方法,其特征在于, 当TV1ΠT1= 0时,使用链表记录所述总的测试用例集T所划分成的集 合:T1-T1ητ2、T1nT2、T2-T1ητ2、…、Tlri-Tlriητη、Tlriητη、Tn-Tlriητη,将上述集合 依次填入所述链表开始的各结点内。
5. 如权利要求1-4所述的方法,其特征在于,根据所述若干个互不相交的集合得到最 小测试用例集包括: 将所述若干个互不相交的集合,使用贪心算法或启发式算法得到最小测试用例集。
6. -种最小测试用例集的生成装置,其特征在于,包括: 划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相 交的集合,该若干个互不相交的集合的并集是T; 计算模块,用于根据所述若干个互不相交的集合得到最小测试用例集。
7. 如权利要求6所述的方法,其特征在于, 所述划分模块用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不 相交的集合是指: 当所述测试需求为r2时,根据测试需求Γι、r2所对应的测试用例集?\、T2, 将所述总的测试用例集τ划分成以下集合=T1-TpT1nI^T2-T115
8. 如权利要求6所述的装置,其特征在于, 所述划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互 不相交的集合是指: 当所述测试需求为ri、r2、…、心时,根据测试需求!^、!^、…、rn所对应的测试用例集 Ti、T2、 ...、Tn, 当T14HT1=G时, 将总的测试用例集τ划分成以下集合=T1-T1ητ2、ι\nT2J2-T1ητ···、!^-!^ητη、TlriηTnH1ητη; 当TmHT1^ 0 时, 将总的测试用例集τ划分成以下集合:?\、T2、…、I;+τη; 0为空集,1彡i彡η,η为测试需求的个数。
9. 如权利要求8所述的装置,其特征在于, 当ThΠTi= 0时,使用链表记录所述总的测试用例集T所划分成的集 合:T1-T1ηt2、T1ηt2、T2-T1ητ2、…、Tlri-Tlriητη、Tlriητη、Tn-Tlriητη,将上述集合 依次填入所述链表开始的各结点内。
10. 如权利要求6-9所述的方法,其特征在于,所述计算模块用于根据所述若干个互不 相交的集合得到最小测试用例集是指: 所述计算模块,用于将所述若干个互不相交的集合通过使用贪心算法或启发式算法得 到最小测试用例集。
【文档编号】G06F11/36GK104239204SQ201410449147
【公开日】2014年12月24日 申请日期:2014年9月4日 优先权日:2014年8月20日
【发明者】杨晋博, 尹艳艳 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1