CN104239204A - 一种最小测试用例集的生成方法 - Google Patents
一种最小测试用例集的生成方法 Download PDFInfo
- Publication number
- CN104239204A CN104239204A CN201410449147.9A CN201410449147A CN104239204A CN 104239204 A CN104239204 A CN 104239204A CN 201410449147 A CN201410449147 A CN 201410449147A CN 104239204 A CN104239204 A CN 104239204A
- Authority
- CN
- China
- Prior art keywords
- use cases
- testing requirement
- test use
- divided
- mutually disjoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种最小测试用例集的生成方法及其装置,该方法包括:根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;根据若干个互不相交的集合得到最小测试用例集。本发明可以生成由测试目标中所有测试需求所确定的固有最小测试用例集,从根本上解决了测试用例集的简化问题、提高测试效率。
Description
技术领域
本发明涉及计算机软件测试技术领域,具体涉及一种最小测试用例集的生成方法。
背景技术
软件测试是一个十分复杂的过程。测试用例的数量和质量决定软件测试的成本和有效性,如何得到高效的测试用例集是测试工作中最为重要的组成部分。
对于每个测试需求一般都要产生相应的测试用例,以实现对这个测试需求的充分测试。但这样产生的测试用例集一般数量比较大,而且可能有比较大的冗余,即这组测试用例的某些子集也能满足所有的测试需求。由于运行和维护这些测试用例以及回归测试将耗费大量的时间、人力和物力,软件测试的成本太大,因此人们一直在研究如何设计出一组有效、数量少又能充分满足测试需求的测试用例集,从而在保证和提高软件测试质量的同时,降低软件测试的成本。
为了得到最小测试用例集,目前一般的处理方法是:首先根据测试目标中的每个测试需求确定出相应的测试用例集,然后对这个测试用例集采用简化算法进行精简,去掉一些冗余的测试用例,最后得到一组最小测试用例集。现有的简化算法有贪心算法和一些启发式算法。但是,这些算法都只着眼于测试用例集的简化算法研究,而不考虑最初的测试用例集的确定,所取得的效果将很有限。
发明内容
本发明所要解决的技术问题在于,本发明提出一种最小测试用例集的生成方法,通过充分考虑测试目标中的各个测试需求之间的相互关系,用以解决测试用例的简化问题。
为了解决上述问题,本发明提供一种最小测试用例集的生成方法,该方法包括:
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;
根据所述若干个互不相交的集合得到最小测试用例集。
优选地,所述方法还包括:
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤包括:
当所述测试需求为r1、r2时,根据测试需求r1、r2所对应的测试用例集T1、T2,
将所述总的测试用例集T划分成以下集合:T1-T2、T1∩T2、T2-T1。
优选地,所述方法还包括:
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤包括:
当所述测试需求为r1、r2、…、rn时,根据测试需求r1、r2、…、rn所对应的测试用例集T1、T2、…、Tn,
当时,将总的测试用例集T划分成以下集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn;
当时,
将总的测试用例集T划分成以下集合:T1、T2、…、Tn-1、Tn;
为空集,1≤i≤n,n为测试需求的个数。
优选地,所述方法还包括:
当时,使用链表记录所述总的测试用例集T所划分成的集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn,将上述集合依次填入所述链表开始的各结点内。
优选地,所述方法还包括:
根据所述若干个互不相交的集合得到最小测试用例集包括:
将所述若干个互不相交的集合,使用贪心算法或启发式算法得到最小测试用例集。
为了解决上述问题,本发明还提供一种最小测试用例集的生成装置,该装置包括:
划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;
计算模块,用于根据所述若干个互不相交的集合得到最小测试用例集。
优选地,所述装置还具有以下特点:
所述划分模块用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合是指:
当所述测试需求为r1、r2时,根据测试需求r1、r2所对应的测试用例集T1、T2,
将所述总的测试用例集T划分成以下集合:T1-T2、T1∩T2、T2-T1。
优选地,所述装置还具有以下特点:
所述划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合是指:
当所述测试需求为r1、r2、…、rn时,根据测试需求r1、r2、…、rn所对应的测试用例集T1、T2、…、Tn,
当时,
将总的测试用例集T划分成以下集合:T1-T1∩T2、T1∩T2、T2-T1∩T…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn;
当时,
将总的测试用例集T划分成以下集合:T1、T2、…、Tn-1、Tn;
为空集,1≤i≤n,n为测试需求的个数。
优选地,所述装置还具有以下特点:
当时,使用链表记录所述总的测试用例集T所划分成的集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn,将上述集合依次填入所述链表开始的各结点内。
优选地,所述装置还具有以下特点:
所述计算模块用于根据所述若干个互不相交的集合得到最小测试用例集是指:
所述计算模块,用于将所述若干个互不相交的集合通过使用贪心算法或启发式算法得到最小测试用例集。
本发明提出了一种最小测试用例集的生成方法及其装置,应用该方法可以生成由测试目标中所有测试需求所确定的固有最小测试用例集,从根本上解决了测试用例集的简化问题、提高测试效率。
附图说明
图1所示为本发明实施例划分互不相交的集合的流程图;
图2所示为本发明实施例划分互不相交的集合的结构图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征的相互均在本发明的保护范围之内。
本发明的实施例提供了一种最小测试用例集的生成方法,该方法包括:
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;
根据所述若干个互不相交的集合得到最小测试用例集。
可选地,根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤包括:
当所述测试需求为r1、r2时,根据测试需求r1、r2所对应的测试用例集T1、T2,
将所述总的测试用例集T划分成以下集合:T1-T2、T1∩T2、T2-T1。
可选地,根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤包括:
当所述测试需求为r1、r2、…、rn时,根据测试需求r1、r2、…、rn所对应的测试用例集T1、T2、…、Tn,
当时;
将总的测试用例集T划分成以下集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn。
当时,
将总的测试用例集T划分成以下集合:T1、T2、…、Tn-1、Tn;
为空集,其中1≤i≤n,n为测试需求的个数。
可选地,当时,使用链表记录所述总的测试用例集T所划分成的集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn,,将上述集合依次填入所述链表开始的各结点内。
可选地,将T1-T1∩T2填入链表首部的第1个结点内,将T1∩T2填入链表首部的第2个结点内,将T2-T1∩T2后填入链表首部的第3个结点内,…,将Tn-1-Tn-1∩Tn填入链表首部的第2n-3个结点内,将Tn-1-Tn-1∩Tn填入链表首部的第2n-2个结点内,将Tn-1-Tn-1∩Tn填入链表首部的第2n-1个结点内。
可选地,根据所述若干个互不相交的集合得到最小测试用例集包括:
将所述若干个互不相交的集合,使用贪心算法或启发式算法得到最小测试用例集。
为了实现上述方法,本发明还提供了一种最小测试用例集的生成装置,如图2所示,该装置包括:
划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;
计算模块,用于根据所述若干个互不相交的集合得到最小测试用例集。
可选地,所述划分模块用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合是指:
当所述测试需求为r1、r2时,根据测试需求r1、r2所对应的测试用例集T1、T2,
将所述总的测试用例集T划分:T1-T2、T1∩T2、T2-T1。
可选地,所述划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合是指:
当所述测试需求为r1、r2、…、rn时,根据测试需求r1、r2、…、rn所对应的测试用例集T1、T2、…、Tn,
当时;
将总的测试用例集T划分成以下集合:T1-T1∩T2、T1∩T2、T2-T1∩T…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn。
当时,
将总的测试用例集T划分成以下集合:T1、T2、…、Tn-1、Tn;
为空集,其中1≤i≤n,n为测试需求的个数。
可选地,当时,使用链表记录所述总的测试用例集T所划分成的集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn,将上述集合依次填入所述链表开始的各结点内。
可选地,将T1-T1∩T2填入链表首部的第1个结点内,将T1∩T2填入链表首部的第2个结点内,将T2-T1∩T2后填入链表首部的第3个结点内,…,将Tn-1-Tn-1∩Tn填入链表首部的第2n-3个结点内,将Tn-1-Tn-1∩Tn填入链表首部的第2n-2个结点内,将Tn-1-Tn-1∩Tn填入链表首部的第2n-1个结点内。
可选的,所述计算模块用于根据所述若干个互不相交的集合得到最小测试用例集是指:
所述计算模块,用于将所述若干个互不相交的集合通过使用贪心算法或启发式算法得到最小测试用例集。
根据上述方法和装置,可知本发明可以生成由测试目标中所有测试需求所确定的固有最小测试用例集,从根本上解决了测试用例集的简化问题、提高测试效率。
为了便于更好的理解本发明的方法,下面具体说明。
(1)为了得到所有可用测试用例集T的一个划分,可用一个链表来记录划分的结果,每个子集存放在每个结点。首先将满足测试需求r1的测试用例集T1放在链表首部第一个结点内。
(2)考虑满足测试需求r2的测试用例集T2与T1的关系.如果 时,将集合T2及其对应测试需求的编号填入链表第一个结点后的结点内.此时链表中有两个结点,第一个结点中存放的是只满足测试需求r1的测试用例集T1,第二个结点中存放的是只满足测试需求r2的测试用例集T2。
(3)如果此时首先将链表中第一个结点中测试用例集T1去掉T1∩T2中的元素,然后将T1∩T2填入链表的第二个结点,并把r1和r2的标号填入相应的域,以表明该结点中的测试用例集可同时满足这两个测试需求。最后将T2去掉T1∩T2中的元素,如果非空,把它填入第三个结点中。这样链表中就有3个结点,第一个结点中存放的是只满足测试需求r1的测试用例集T1-T1∩T2,第二个结点中存放的是同时满足r1和r2的测试用例集T1∩T2,第三个结点存放的是只满足测试需求r2的测试用例集T2-T1∩T2。
(4)然后再考虑测试需求r3对应的测试用例集T3与链表中各个结点中测试用例集的关系。依此类推,直到最后一个测试需求rn对应的测试用例集Tn。
(5)在整个测试用例集T划分出的子集族的基础上应用贪心算法或启发式算法等进行简化,即可得到最小测试用例集。
本发明的有益效果是:现有的最小测试用例集生成方法都是对测试用例进行简化,然而在测试需求分析阶段就发现测试需求集中往往就已存在冗余,一个测试需求点通常对应一个数量较多的测试用例集,测试需求中的冗余会导致大量测试用例的冗余。基于此种情况,本发明提出以上方法根据测试目标中的测试需求来产生相应的最初测试用例集,在此用例集的基础上进行简化即可得到最小测试用例集,在实现对目标充分测试的基础上,提高测试效率,降低测试成本。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种最小测试用例集的生成方法,其特征在于,包括:
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;
根据所述若干个互不相交的集合得到最小测试用例集。
2.如权利要求1所述的方法,其特征在于,
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤包括:
当所述测试需求为r1、r2时,根据测试需求r1、r2所对应的测试用例集T1、T2,
将所述总的测试用例集T划分成以下集合:T1-T2、T1∩T2、T2-T1。
3.如权利要求1所述的方法,其特征在于,
根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合的步骤包括:
当所述测试需求为r1、r2、…、rn时,根据测试需求r1、r2、…、rn所对应的测试用例集T1、T2、…、Tn,
当时,将总的测试用例集T划分成以下集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn;
当时,
将总的测试用例集T划分成以下集合:T1、T2、…、Tn-1、Tn;
为空集,1≤i≤n,n为测试需求的个数。
4.如权利要求3所述的方法,其特征在于,
当时,使用链表记录所述总的测试用例集T所划分成的集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn,将上述集合依次填入所述链表开始的各结点内。
5.如权利要求1-4所述的方法,其特征在于,根据所述若干个互不相交的集合得到最小测试用例集包括:
将所述若干个互不相交的集合,使用贪心算法或启发式算法得到最小测试用例集。
6.一种最小测试用例集的生成装置,其特征在于,包括:
划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合,该若干个互不相交的集合的并集是T;
计算模块,用于根据所述若干个互不相交的集合得到最小测试用例集。
7.如权利要求6所述的方法,其特征在于,
所述划分模块用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合是指:
当所述测试需求为r1、r2时,根据测试需求r1、r2所对应的测试用例集T1、T2,
将所述总的测试用例集T划分成以下集合:T1-T2、T1∩T2、T2-T1。
8.如权利要求6所述的装置,其特征在于,
所述划分模块,用于根据测试需求r的相互关系将总的测试用例集T划分成若干个互不相交的集合是指:
当所述测试需求为r1、r2、…、rn时,根据测试需求r1、r2、…、rn所对应的测试用例集T1、T2、…、Tn,
当时,
将总的测试用例集T划分成以下集合:T1-T1∩T2、T1∩T2、T2-T1∩T…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn;
当时,
将总的测试用例集T划分成以下集合:T1、T2、…、Tn-1、Tn;
为空集,1≤i≤n,n为测试需求的个数。
9.如权利要求8所述的装置,其特征在于,
当时,使用链表记录所述总的测试用例集T所划分成的集合:T1-T1∩T2、T1∩T2、T2-T1∩T2、…、Tn-1-Tn-1∩Tn、Tn-1∩Tn、Tn-Tn-1∩Tn,将上述集合依次填入所述链表开始的各结点内。
10.如权利要求6-9所述的方法,其特征在于,所述计算模块用于根据所述若干个互不相交的集合得到最小测试用例集是指:
所述计算模块,用于将所述若干个互不相交的集合通过使用贪心算法或启发式算法得到最小测试用例集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410449147.9A CN104239204A (zh) | 2014-08-20 | 2014-09-04 | 一种最小测试用例集的生成方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410412156.0 | 2014-08-20 | ||
CN201410412156 | 2014-08-20 | ||
CN201410449147.9A CN104239204A (zh) | 2014-08-20 | 2014-09-04 | 一种最小测试用例集的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104239204A true CN104239204A (zh) | 2014-12-24 |
Family
ID=52227320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410449147.9A Pending CN104239204A (zh) | 2014-08-20 | 2014-09-04 | 一种最小测试用例集的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239204A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463505A (zh) * | 2017-09-29 | 2017-12-12 | 郑州云海信息技术有限公司 | 一种基于测试需求生成最小用例集的方法及装置 |
CN107741912A (zh) * | 2017-11-22 | 2018-02-27 | 郑州云海信息技术有限公司 | 一种对测试用例进行精简的方法、装置、设备及存储介质 |
CN111563041A (zh) * | 2020-05-08 | 2020-08-21 | 吴迪 | 一种测试用例按需精准执行方法 |
CN114880242A (zh) * | 2022-06-08 | 2022-08-09 | 北京百度网讯科技有限公司 | 测试用例的提取方法、装置、设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364449A (zh) * | 2011-10-24 | 2012-02-29 | 中兴通讯股份有限公司 | 一种最小测试用例集的生成方法及系统 |
-
2014
- 2014-09-04 CN CN201410449147.9A patent/CN104239204A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364449A (zh) * | 2011-10-24 | 2012-02-29 | 中兴通讯股份有限公司 | 一种最小测试用例集的生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
聂长海,徐宝文: "一种最小测试用例集生成方法", 《计算机学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463505A (zh) * | 2017-09-29 | 2017-12-12 | 郑州云海信息技术有限公司 | 一种基于测试需求生成最小用例集的方法及装置 |
CN107463505B (zh) * | 2017-09-29 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种基于测试需求生成最小用例集的方法及装置 |
CN107741912A (zh) * | 2017-11-22 | 2018-02-27 | 郑州云海信息技术有限公司 | 一种对测试用例进行精简的方法、装置、设备及存储介质 |
CN111563041A (zh) * | 2020-05-08 | 2020-08-21 | 吴迪 | 一种测试用例按需精准执行方法 |
CN111563041B (zh) * | 2020-05-08 | 2022-02-08 | 吴迪 | 一种测试用例按需精准执行方法 |
CN114880242A (zh) * | 2022-06-08 | 2022-08-09 | 北京百度网讯科技有限公司 | 测试用例的提取方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016200465A3 (en) | System and method for hierarchical cryptographic key generation using biometric data | |
CN104239204A (zh) | 一种最小测试用例集的生成方法 | |
CN104899284B (zh) | 一种基于元数据驱动调度系统的方法及装置 | |
EP2608074A3 (en) | Systems and methods for merging source records in accordance with survivorship rules | |
CN110209728A (zh) | 一种分布式异构数据库同步方法、电子设备及存储介质 | |
CN104731956A (zh) | 同步数据的方法、系统及相关数据库 | |
Sethi et al. | P-FHM+: Parallel high utility itemset mining algorithm for big data processing | |
CN104317966A (zh) | 一种用于电力大数据快速组合查询的动态索引方法 | |
DE602006002606D1 (de) | System und verfahren zur erzeugung einheitlicher bilder einer menge von datenobjekten | |
CN105205105A (zh) | 一种基于storm的数据ETL系统及处理方法 | |
CN104021219B (zh) | 一种数据模板的生成方法及装置 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN105071994B (zh) | 一种海量数据监控系统 | |
CN106293938A (zh) | 解决大数据计算过程中数据倾斜的方法 | |
Riedy et al. | Multithreaded community monitoring for massive streaming graph data | |
CN107070645A (zh) | 比较数据表的数据的方法和系统 | |
CN105763886A (zh) | 一种分布式转码方法和装置 | |
CN104331496B (zh) | 图片分享方法和设备 | |
CN106407233A (zh) | 一种数据处理方法和设备 | |
CN104714983B (zh) | 分布式索引的生成方法及装置 | |
EP2381652A3 (en) | A method and device for network address configuration | |
CN103761298B (zh) | 一种基于分布式架构的实体匹配方法 | |
CN112445776A (zh) | 基于Presto的动态分桶方法、系统、设备及可读存储介质 | |
IN2015DE00970A (zh) | ||
Kloks et al. | Treewidth and pathwidth of cocomparability graphs of bounded dimension |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141224 |
|
WD01 | Invention patent application deemed withdrawn after publication |