CN111143195B - 一种基于候选测试用例集迭代的自适应随机测试方法 - Google Patents
一种基于候选测试用例集迭代的自适应随机测试方法 Download PDFInfo
- Publication number
- CN111143195B CN111143195B CN201911221411.2A CN201911221411A CN111143195B CN 111143195 B CN111143195 B CN 111143195B CN 201911221411 A CN201911221411 A CN 201911221411A CN 111143195 B CN111143195 B CN 111143195B
- Authority
- CN
- China
- Prior art keywords
- test case
- candidate
- test
- candidate test
- similarity
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于候选测试用例集迭代的自适应随机测试方法,通过减少随机生成的候选测试用例数量,降低自适应随机测试中候选测试用例与已执行测试用例之间的计算开销,提高自适应随机测试的时间性能。本发明主要包括:1、确定输入域的范围;2、在输入域中随机生成第一个测试用例;3、随机生成N个候选测试用例构成候选测试用例集;4、采用FSCS_ART算法选出下一个测试用例;5、更新候选测试用例集,保留K个相似性较低的候选测试用例,其余丢弃。6、随机生成N‑K个测试用例补充进候选测试用例集。重复4‑6,直到找到程序错误。通过实验验证,本发明的方法与FSCS_ART相比,在维持相同算法性能情况下,仅需要约50%的时间开销。
Description
技术领域
本发明提出了一种改进的基于候选测试用例集迭代的自适应随机测试方法,用于降低传统FSCS_ART技术的时间开销,属于测试自动化的技术领域。
背景技术
随着软件市场的不断扩大,导致软件规模日趋增大,软件功能日益复杂,如何确保软件产品的质量成为了一个重要的研究热点,而软件测试无疑成为了确保软件质量的重要环节。针对软件测试,科研人员提出了许多软件测试技术,而其中,随机测试由于其概念简单且可自动化,受到了越来越多的关注。
随机测试可以检测出人们无法预料到的错误(而这种错误的检测看起来只能由随机测试做到),但是,对于随机测试的争议自始至终存在,而这种争议主要是由于,随机测试只是盲目的随机产生测试用例,从不考虑已经执行过的测试用例的信息,所以,科研人员对于随机测试的效能产生了极大的争议性。
同时,Chan等人发现,软件测试的表现受软件失效模式的影响,所谓失效模式就是指软件失效区域的分布模式。他们发现,软件失效区域往往呈现连续型分布。Chan等人总结提出了三种失效模式:(i)块状模式,如图1的a图所示。(ii)条状模式,如图1的b图所示。(iii)点状模式,如图1的c图所示。同时,他们指出,块状和条状模式比点状模式更为普遍。
由于,失效区域是连续性的,不是失效区域的区域也应该是连续性的,所以,这给了科研人员很大的启发:当测试用例均匀分布,会增大测试用例找到失效区域的机会。基于这种启发,Chan等人提出了ART(自适应随机测试)方法。
传统的FSCS_ART(固定大小候选集的自适应随机测试)方法,通过不断计算距离,来达到测试用例的均匀分布,但是这种方法有很大的时间开销。时间开销主要来源于每个候选测试用例与每个已执行测试用例之间距离的计算,随着已执行的测试用例数量增长,计算开销快速增长。为此,本发明提出来一种基于测试用例迭代的自适应随机测试方法,在维持FSCS_ART算法性能的情况下,节省50%的时间开销。
发明内容
为了能够有效地提高随机测试方法的性能,本发明提出了一种基于测试用例迭代的自适应随机测试方法。另外,本发明还与FSCS_ART方法进行了比较,验证了提出方法的有效性和先进性。本发明的技术方案包括如下步骤:
步骤1,根据被测程序,确定输入域的维度和范围;初始化Executed(已执行测试用例集)数组及Candidate(候选测试用例)数组
步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;
步骤3,随机生成10个候选测试用例,保存进候选测试用例集;
步骤4,计算每个候选测试用例与已执行测试用例的相似性。选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;
步骤5,更新其余9个候选测试用例与被选中的测试的相似性;保留K个相似性较低的测试用例,其余丢弃;
步骤6,随机生成10-K个候选测试用例加入候选测试用例集,转到步骤4。
所述步骤1的具体过程如下:
步骤1.1,根据前期的软件设计文档,确定软件的输入域范围(即具有合理输入的集合);
步骤1.2,根据步骤1.1确定的输入域,确定软件的维度,维度和输入域相关,当输入域的参数为N时,则输入域的维度为N;
步骤1.3,初始化Executed数组,大小不限;初始化Candidate数组,大小固定为10。
所述步骤2的具体过程如下:
步骤2.1,根据输入域的维度和每个维度的范围值,随机产生第一个测试用例。
步骤2.2,将该测试用例测试软件,如果实际输出结果与预期输出结果一致,认为没有发现软件错误,转到步骤4,如果不一致,认为软件存在错误,测试结束。
所述步骤4的具体过程如下:
步骤4.1,本发明选用相似性度量为欧式距离,即距离越近,相似性越高。可根据实际程序选用合适的度量。
步骤4.2,计算每个候选测试用例与每个已执行测试用例的距离,选择最小距离为该候选测试用例的相似性值,选择候选测试用例中相似性值最低(最小距离最大)的测试用例为待测用例。
所述步骤5的具体过程如下:
步骤5.1,计算候选测试用例集剩余9个测试用例与本次选中的测试用例之间的相似性,若候选测试用例与被测用例相似性高于候选测试用例本身相似性值,则更新候选测试用例的相似性值(取更高相似性值)。
步骤5.2,更新完毕后,从剩余9个候选测试用例中选择相似性较低(最小距离较大)保留,其余丢弃。
步骤5.3,经实证研究分析,考虑算法性能与时间开销,在K=5时,综合性能最佳。
本发明的有益效果:
1、本发明构建了一种基于候选测试用例迭代的自适应随机测试方法,用于减少FSCS_ART算法计算候选测试用例与已执行测试用例相似性的计算开销,同时维持了FSCS_ART算法的高性能,综上所述,该方法的时间开销相比于FSCS_ART有很大的降低。
2、同比FSCS_ART方法,本发明的方法,在维持了相同水平的算法效率同时,降低了约50%的时间开销。
附图说明
图1是三种失效模式示意图;
图2是FSCS_ART方法的流程图。
图3是本发明方法的流程图。
具体实施方式
下面结合附图和实施案例对本发明作进一步说明,应指出的是,所描述的实施案例仅旨在便于对本发明的理解,而对其不起任何限定作用。
本发明以降低FSCS_ART方法时间开销为目的,提供一种基于测试用例迭代的自适应随机测试方法,同时维持原算法高性能,有效地检测软件Bug。为此验证本发明的方法,采用二维仿真实验对其进行说明。
如图3所示,本发明提出的算法包含如下步骤:
步骤1,生成二维正方形作为输入域,其中每个维度的范围为(0-1),同时生成失效率为a(通过实验预先设置)的正方形失效区域;
步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;
步骤3,随机生成10个候选测试用例,保存进候选测试用例集;
步骤4,计算每个候选测试用例与已执行测试用例的相似性。选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;
步骤5,更新其余9个候选测试用例与被选中的测试的相似性;保留K个相似性较低的测试用例,其余丢弃;
步骤6,随机生成10-K个候选测试用例加入候选测试用例集,转到步骤4。
上述步骤1的具体步骤如下:
步骤1.1,根据前期的软件设计文档,确定软件的输入域范围(即具有合理输入的集合),在该实例中,产生一个二维正方形的输入域,输入域在每个维度上的范围都为0—1;
步骤1.2,根据步骤1.1确定的输入域,确定软件的维度,维度和输入域相关,由于该输入域涉及两个参数(X轴坐标输入及Y轴坐标输入),所以维度为2;
步骤1.3,根据步骤1.1产生的输入域,求得输入域的面积(设为D),在输入域中随机产生一个正方形的、面积为a*D的失效域。
步骤1.4,初始化Executed数组,大小不限;初始化Candidate数组,大小固定为10。
上述步骤2的具体步骤如下:
步骤2.1,根据输入域的维度和每个维度的范围值,随机产生第一个测试用例。
步骤2.2,判断该测试用例是否在失效区域中,如果不在失效区域中,认为没有发现错误,转到步骤4,如果位于失效区域中,认为存在错误,测试结束。
上述步骤4的具体步骤如下:
步骤4.1,本发明选用相似性度量为欧式距离,即距离越近,相似性越高。实际应用需要根据实际程序选用合适的度量。例如,待测程序需要数值型输入,则可选用欧式距离、曼哈顿距离等能衡量数值类型输入的相似性度量(具体选择根据需求);如果待测程序需要字符串输入,则可选用字符串编辑距离作为相似性度量。
步骤4.2,计算每个候选测试用例与每个已执行测试用例的距离,选择最小距离为该候选测试用例的最高相似性值并保存,选择候选测试用例中最高相似性值最低小(与其他已执行测试用例最小距离最大)的测试用例为待测用例。
上述步骤5的具体步骤如下:
步骤5.1,计算候选测试用例集剩余9个测试用例与本次选中的测试用例之间的相似性,若候选测试用例与本次被测用例之间相似性高于候选测试用例之前保存的最高相似性值,则更新候选测试用例的最高相似性值并保存(取更高相似性值)。
步骤5.2,更新完毕后,从剩余9个候选测试用例中选择相似性较低(最小距离较大)的K个保留,其余丢弃。
步骤5.3,经实证研究分析,考虑算法性能与时间开销,在K=5时,综合性能最佳。评估标准
本发明旨在保证并提高测试效率的基础上,减少测试用例生成的时间,在实际的软件测试过程中,测试人员往往在发现第一个Bug时,就开始了程序修复,所以,将发现第一个错误所需的测试用例数量作为检查标准就具有重要的实际意义。将测试过程中发现第一个错误所需要的测试用例的平均值作为衡量标准,称之为F_measure,同样,将测试过程中发现第一个错误所需要的测试用例的平均时间作为衡量标准,称之为F_time。对于本发明的方法,采用5%的准确率和95%的置信水平,根据中心极限定理,所需实验次数至少为3000次。
结果分析
本发明设置了二维正方形输入域,同时分别设定失效率大小为0.005,0.001,0.0005,0.0001这四组实验,获取了分别采用FSCS_ART方法和本发明的方法检测错误所需的测试用例的数量以及时间,其中,FSCS_ART方法的流程图按照图2所示执行,具体的对比结果如下。
表1 F_measure实验结果对比
表2 F_time实验结果对比
最终的实验结果显示,同比FSCS_ART方法,本发明的方法,维持了相同水平的算法效率,降低了约50%的时间开销。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,包括如下步骤:
步骤1,根据被测程序,确定输入域的维度和范围;初始化Executed(已执行测试用例集)数组及Candidate(候选测试用例)数组
步骤2,在输入域范围内随机生成第一个测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤3;
步骤3,随机生成M个候选测试用例,保存进候选测试用例集;
步骤4,计算每个候选测试用例与已执行测试用例的相似性,选择相似性最低的候选测试用例作为下一个测试用例,执行该测试用例,如果测试用例检测到程序错误,测试结束,并反馈相关信息,否则转到步骤5;
具体过程如下:
步骤4.1,选用相似性度量为欧式距离,距离越近,相似性越高,根据实际程序选用合适的度量;
步骤4.2,计算每个候选测试用例与每个已执行测试用例的距离,选择最小距离为该候选测试用例的相似性值,选择候选测试用例中相似性值最低,即最小距离最大的测试用例为待测用例;
步骤5,更新其余M-1个候选测试用例与被选中的测试的相似性;保留K个相似性较低的测试用例,其余丢弃;
具体过程如下:
步骤5.1,计算候选测试用例集剩余9个测试用例与本次选中的测试用例之间的相似性,若候选测试用例与被测用例相似性高于候选测试用例本身相似性值,则更新候选测试用例的相似性值,即取更高相似性值;
步骤5.2,更新完毕后,从剩余9个候选测试用例中选择相似性较低即最小距离较大者保留,其余丢弃;
步骤6,随机生成M-K个候选测试用例加入候选测试用例集,转到步骤4。
2.根据权利要求1所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述步骤1的具体过程如下:
步骤1.1,根据前期的软件设计文档,确定软件的输入域范围,即具有合理输入的集合;
步骤1.2,根据步骤1.1确定的输入域,确定软件的维度,维度和输入域相关,当输入域的参数为N,则输入域的维度为N;
步骤1.3,根据步骤1.1产生的输入域,求得输入域的面积(设为D),在输入域中随机产生一个正方形的、面积为a*D的失效域;
步骤1.4,初始化Executed数组,大小不限;初始化Candidate数组,大小固定为M。
3.根据权利要求1所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述M设置为10。
4.根据权利要求2所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述步骤1.1中确定的软件输入域为二维正方形输入域,并且输入域在每个维度上的范围都为0-1;所述步骤1.2中的N取值为2。
5.根据权利要求1所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述步骤2的具体过程如下:
步骤2.1,根据输入域的维度和每个维度的范围值,随机产生第一个测试用例;
步骤2.2,将该测试用例测试软件,如果实际输出结果与预期输出结果一致,认为没有发现软件错误,转到步骤4,如果不一致,认为软件存在错误,测试结束。
6.根据权利要求1所述的一种基于候选测试用例集迭代的自适应随机测试方法,其特征在于,所述步骤5中,K取值为5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911221411.2A CN111143195B (zh) | 2019-12-03 | 2019-12-03 | 一种基于候选测试用例集迭代的自适应随机测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911221411.2A CN111143195B (zh) | 2019-12-03 | 2019-12-03 | 一种基于候选测试用例集迭代的自适应随机测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143195A CN111143195A (zh) | 2020-05-12 |
CN111143195B true CN111143195B (zh) | 2023-07-18 |
Family
ID=70517464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911221411.2A Active CN111143195B (zh) | 2019-12-03 | 2019-12-03 | 一种基于候选测试用例集迭代的自适应随机测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143195B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813669B (zh) * | 2020-07-04 | 2023-10-13 | 毛澄映 | 基于多目标群体智能的适应性随机测试用例生成方法 |
CN112148592B (zh) * | 2020-08-31 | 2024-05-14 | 江苏大学 | 一种基于有利点树划分多维输入域空间的自适应随机测试方法 |
CN117520211A (zh) * | 2024-01-08 | 2024-02-06 | 江西财经大学 | 基于多维覆盖矩阵的随机组合测试用例生成方法与系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5412510B2 (ja) * | 2008-05-19 | 2014-02-12 | ジョンソン コントロールズ テクノロジー カンパニー | 1個のソフトウェアの少なくとも一部を検証するためにテストケースを自動的に形成する方法 |
CN101859273B (zh) * | 2009-04-07 | 2013-10-02 | 西门子(中国)有限公司 | 一种产生测试用例的方法及装置 |
CN110221957B (zh) * | 2018-12-10 | 2023-06-09 | 江苏大学 | 一种基于迭代区域均分与定位的自适应随机测试方法 |
-
2019
- 2019-12-03 CN CN201911221411.2A patent/CN111143195B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111143195A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143195B (zh) | 一种基于候选测试用例集迭代的自适应随机测试方法 | |
CN110221957B (zh) | 一种基于迭代区域均分与定位的自适应随机测试方法 | |
Chan et al. | Restricted random testing | |
Nixon et al. | Measuring calibration in deep learning. | |
US11837309B2 (en) | Processing method of chip probing data and computer-readable storage medium | |
CN111276179A (zh) | 一种NAND Flash错误率的分组测试装置 | |
Chan et al. | Normalized restricted random testing | |
Iwabuchi et al. | NVM-based hybrid BFS with memory efficient data structure | |
CN109347680B (zh) | 一种网络拓扑重构方法、装置及终端设备 | |
CN111352834B (zh) | 一种基于局部敏感哈希的自适应随机测试方法 | |
CN110704259B (zh) | 一种高效的数字微流控生物芯片测试路径优化方法 | |
CN111341374B (zh) | 存储器的测试方法、装置及可读存储器 | |
Keeping et al. | Data variance and statistical significance in 2D-gel electrophoresis and DIGE experiments: comparison of the effects of normalization methods | |
WO2022052542A1 (zh) | 失效位元的修补方案的确定方法和装置 | |
CN112069059B (zh) | 基于极大似然估计最大期望的测试用例生成方法及系统 | |
CN114896105A (zh) | 电子设备的可靠性评估方法、装置、设备和介质 | |
Choi et al. | A hybrid incremental genetic algorithm for subgraph isomorphism problem | |
CN113672508A (zh) | 一种基于风险策略和多样性策略的Simulink测试方法 | |
CN113778865A (zh) | 一种蜕变测试的测试用例自适应随机生成方法 | |
Teh et al. | Modified group chain acceptance sampling plans (MGChSP) based on the minimum angle method | |
CN1336553A (zh) | 用于半导体测试系统的模式发生器 | |
CN112148592B (zh) | 一种基于有利点树划分多维输入域空间的自适应随机测试方法 | |
CN112035343B (zh) | 一种基于贝叶斯估计的测试用例生成方法及系统 | |
WO2018218927A1 (zh) | 一种排序网络、排序方法及排序装置 | |
CN116820772B (zh) | 网格并行读取方法、装置、终端设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |