CN106445821A - 一种基于遗传算法实现测试用例自动生成的方法 - Google Patents
一种基于遗传算法实现测试用例自动生成的方法 Download PDFInfo
- Publication number
- CN106445821A CN106445821A CN201610843637.6A CN201610843637A CN106445821A CN 106445821 A CN106445821 A CN 106445821A CN 201610843637 A CN201610843637 A CN 201610843637A CN 106445821 A CN106445821 A CN 106445821A
- Authority
- CN
- China
- Prior art keywords
- test case
- genetic algorithm
- population
- test
- generation
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Quality & Reliability (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于遗传算法实现测试用例自动生成的方法,属于计算机软件测试技术领域,本发明要解决的技术问题为如何能够提高测试用例生成的有效性,并使不同类型的测试用例都能均衡产生充足的数量,保证测试的充分性,采用的技术方案为:该方法应用遗传算法求解一组优化的测试用例,在每一步进化计算过程中,自动测试用例生成器使用当前群体测试用例驱动被测试程序的执行,每一个测试用例的触发路径被跟踪和记录,以最大化程序执行路径的覆盖为适应性目标函数进行计算,产生出下一代群体;在多代进化之后,得到最优种群或超过特定的循环限制条件而结束。
Description
技术领域
本发明涉及计算机软件测试技术领域,具体地说是一种基于遗传算法实现测试用例自动生成的方法。
背景技术
遗传算法是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于他们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。
随着计算机技术和软件技术的迅速发展,软件质量的可靠性变得越来越重要,软件测试作为一种提高软件质量的可靠方式,以最少的人力、物力,尽快找出软件中潜在的各种缺陷,提高软件产品质量,尽量减少软件产品发布后潜在的软件缺陷带来的可能的商业风险。目前,软件测试的测试用例自动生成,但是测试用例自动生成过程中产生大量冗余数据,软件程序在不同测试用例的驱动下,有不同的执行路径,这些路径被执行的几率并不相同。对于容易执行到的路径,往往有较多的冗余测试用例生成,而对难以执行到的控制路径,却只有很少的测试用例。故如何能够提高测试用例生成的有效性,并使不同类型的测试用例都能均衡产生充足的数量,保证测试的充分性是目前现有技术中存在的技术问题。
发明内容
本发明的技术任务是提供一种基于遗传算法实现测试用例自动生成的方法,来解决如何能够提高测试用例生成的有效性,并使不同类型的测试用例都能均衡产生充足的数量,保证测试的充分性的问题。
本发明的技术任务是按以下方式实现的,一种基于遗传算法实现测试用例自动生成的方法,该方法应用遗传算法求解一组优化的测试用例,在每一步进化计算过程中, 自动测试用例生成器使用当前群体测试用例驱动被测试程序的执行,每一个测试用例的触发路径被跟踪和记录,以最大化程序执行路径的覆盖为适应性目标函数进行计算,产生出下一代群体;在多代进化之后,得到最优种群或超过特定的循环限制条件而结束。
作为优选,所述遗传算法的具体步骤如下:
(1)、面向触发路径随机产生第一代种群,第一代种群的产生是通过在被测试程序输入域空间上随机产生;
(2)、将步骤(1)中随机产生的第一代种群即当前生成的测试用例作为父辈种群,驱动被测试程序执行,记录下对应的触发路径;
(3)、根据单个测试用例对触发路径的贡献度重新计算各自对应的适应度;
(4)、根据个体在群体中的适应度与个体适应度的总和的比值作为概率进行选择算子,这样具有最大适应度的个体被保留,并根据其所占的比例被复制,再在这些高适应度个体之间进行配对交叉和突变操作;
(5)、判断是否满足算法的停止条件,算法的停止条件是在所有触发路径的测试用例集合中,元素个数非空且计算的适应度最大的测试用例的适应度都低于某个阈值时,算法停止:
①、若不满足,则执行步骤(2);
②、若满足,则算法停止。
更优地,所述步骤(3)中测试用例的贡献度表征了测试用例对于测试的适应性,贡献度越大,则对测试的价值越大。
更优地,所述步骤(4)中的算子包括交叉算子和变异算子。
更优地,所述交叉算子采用单点交叉的方式,单点交叉使得种群能够探索新的基因空间,从而使新的个体具有多样性。
本发明的基于遗传算法实现测试用例自动生成的方法具有以下优点:
1、本发明使用遗传算法指导测试用例的自动生成过程,根据程序动态执行时的触发路径,将生成的测试用例划分为不同的等价类,并根据路径对应的适应度动态调整测试用例的生成数量,遗传算法既能为每条执行路径生成一定数量的测试用例以保证测试充分性,又能降低冗余测试用例的生成,是有效的测试用例自动生成方法;
2、为了减少测试用例自动生成过程中产生的大量冗余数据,遗传算法是值得考虑的方向在测试用例自动生成的研究中,程序在不同测试用例的驱动下,有不同的执行路径,这些路径被执行的几率并不相同,对于容易执行到的路径,往往有较多的冗余测试用例生成,而对难以执行到的控制路径,却只有很少的测试用例,遗传算法可用于指导测试用例的自动生成,针对较易执行的程序路径,遗传算法可以抑制这类测试用例的生成,相反对难以出现的执行路径,遗传算法将尽可能鼓励这类测试用例的生成;因此,可以提高测试用例生成的有效性,并使不同类型的测试用例都能均衡产生充足的数量,保证测试的充分性;
3、本发明将自动测试用例生成器中加入遗传算法,便可以继承遗传算法的搜索优点,保证测试用例的数量及质量。
故本发明具有设计合理、结构简单、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于遗传算法实现测试用例自动生成的方法的流程框图;
附图2为遗传算法的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于遗传算法实现测试用例自动生成的方法作以下详细地说明。
实施例:
如附图1所示,本发明的基于遗传算法实现测试用例自动生成的方法, 该方法应用遗传算法求解一组优化的测试用例,在每一步进化计算过程中, 自动测试用例生成器使用当前群体测试用例驱动被测试程序的执行,每一个测试用例的触发路径被跟踪和记录,以最大化程序执行路径的覆盖为适应性目标函数进行计算,产生出下一代群体;在多代进化之后,得到最优种群或超过特定的循环限制条件而结束。
如附图2所示,遗传算法的具体步骤如下:
(1)、面向触发路径随机产生第一代种群,第一代种群的产生是通过在被测试程序输入域空间上随机产生;在设计初始权值时,以路径为目标,此时触发路径集被初始化,假定集合中每一条触发路径的执行几率是相同的,所以设定它们有相等的初始权值1/n,其中n表示触发路径集合中的路径数i,j。实际上面向路径的测试用例空间的划分并不是均匀的,对不同的路径i,j,它们的测试用例集中的个数通常并不相同,这也反映了测试用例空间在面向路径划分时的分布特性,随着对程序中执行错误而触发新路径会进行重新对触发路径集合进行修订。
(2)、将步骤(1)中随机产生的第一代种群即当前生成的测试用例作为父辈种群,驱动被测试程序执行,记录下对应的触发路径;第一代随机生成的测试用例会受到程序输入域分布的影响,因此较大可能会生成相似或相同的触发路径,反映了程序中最容易被执行的测试触发路径,合并相同触发路径的测试用例,生成当前触发路径的测试用例集。
(3)、根据单个测试用例对触发路径的贡献度重新计算各自对应的适应度;测试用例的贡献度表征了测试用例对于测试的适应性,贡献度越大,则对测试的价值越大。初始化时触发路径的权值设计为相等,但受测试用例在输入域空间上分布的影响,易于触发的路径所对应的测试用例所占分布区域较广,这一类的测试用例会大量产生,这也导致了该触发路径的测试用例集元素个数的增加,测试贡献度和测试用例集中元素的个数成反比,所以该集合测试用例的适应度也随之而下降;相反,难以被触发的路径所对应的测试用例产生的个数较少,因而具有较高的适应度,算法将奖励这类测试用例的生成。
(4)、根据个体在群体中的适应度与个体适应度的总和的比值作为概率进行选择算子,这样具有最大适应度的个体被保留,并根据其所占的比例被复制,再在这些高适应度个体之间进行配对交叉和突变操作;算子包括交叉算子和变异算子,交叉算子采用单点交叉的方式,单点交叉使得种群能够探索新的基因空间,从而使新的个体具有多样性。
(5)、判断是否满足算法的停止条件,算法的停止条件是在所有触发路径的测试用例集合中,元素个数非空且计算的适应度最大的测试用例的适应度都低于某个阈值时,算法停止,阈值的设计需要保证对最难以出现的触发路径的测试用例生成个数达到一定的数量:
①、若不满足,则执行步骤(2);
②、若满足,则算法停止。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的一种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (5)
1.一种基于遗传算法实现测试用例自动生成的方法,其特征在于该方法应用遗传算法求解一组优化的测试用例,在每一步进化计算过程中, 自动测试用例生成器使用当前群体测试用例驱动被测试程序的执行,每一个测试用例的触发路径被跟踪和记录,以最大化程序执行路径的覆盖为适应性目标函数进行计算,产生出下一代群体;在多代进化之后,得到最优种群或超过特定的循环限制条件而结束。
2.根据权利要求1所述的基于遗传算法实现测试用例自动生成的方法,其特征在于所述遗传算法的具体步骤如下:
(1)、面向触发路径随机产生第一代种群,第一代种群的产生是通过在被测试程序输入域空间上随机产生;
(2)、将步骤(1)中随机产生的第一代种群即当前生成的测试用例作为父辈种群,驱动被测试程序执行,记录下对应的触发路径;
(3)、根据单个测试用例对触发路径的贡献度重新计算各自对应的适应度;
(4)、根据个体在群体中的适应度与个体适应度的总和的比值作为概率进行选择算子;
(5)、判断是否满足算法的停止条件,算法的停止条件是在所有触发路径的测试用例集合中,元素个数非空且计算的适应度最大的测试用例的适应度都低于某个阈值时,算法停止:
①、若不满足,则执行步骤(2);
②、若满足,则算法停止。
3.根据权利要求2所述的基于遗传算法实现测试用例自动生成的方法,其特征在于所述步骤(3)中测试用例的贡献度表征了测试用例对于测试的适应性,贡献度越大,则对测试的价值越大。
4.根据权利要求2所述的基于遗传算法实现测试用例自动生成的方法,其特征在于所述步骤(4)中的算子包括交叉算子和变异算子。
5.根据权利要求4所述的基于遗传算法实现测试用例自动生成的方法,其特征在于所述交叉算子采用单点交叉的方式,单点交叉使得种群能够探索新的基因空间,从而使新的个体具有多样性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610843637.6A CN106445821A (zh) | 2016-09-23 | 2016-09-23 | 一种基于遗传算法实现测试用例自动生成的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610843637.6A CN106445821A (zh) | 2016-09-23 | 2016-09-23 | 一种基于遗传算法实现测试用例自动生成的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445821A true CN106445821A (zh) | 2017-02-22 |
Family
ID=58165992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610843637.6A Pending CN106445821A (zh) | 2016-09-23 | 2016-09-23 | 一种基于遗传算法实现测试用例自动生成的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445821A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108346098A (zh) * | 2018-01-19 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种风控规则挖掘的方法及装置 |
CN108763055A (zh) * | 2018-04-19 | 2018-11-06 | 北京航空航天大学 | 一种基于表观遗传的测试用例约束控制技术的构建方法 |
CN109376075A (zh) * | 2018-09-19 | 2019-02-22 | 北京奇安信科技有限公司 | 一种生成测试对象最优测试覆盖路径的处理方法及装置 |
CN110110854A (zh) * | 2019-04-01 | 2019-08-09 | 南京邮电大学 | 一种基于边状态的深度神经网络测试充分性的方法 |
CN110135558A (zh) * | 2019-04-22 | 2019-08-16 | 南京邮电大学 | 基于可变强度组合测试的深度神经网络测试充分性方法 |
CN110647752A (zh) * | 2019-09-26 | 2020-01-03 | 信联科技(南京)有限公司 | 一种基于遗传算法的模糊测试平台 |
CN111813669A (zh) * | 2020-07-04 | 2020-10-23 | 毛澄映 | 基于多目标群体智能的适应性随机测试用例生成方法 |
CN113268432A (zh) * | 2021-06-24 | 2021-08-17 | 广东电网有限责任公司计量中心 | 一种基于进化算法的电能表驱动程序测试方法及*** |
CN114490316A (zh) * | 2021-12-16 | 2022-05-13 | 四川大学 | 一种基于损失函数的单元测试用例自动生成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593287A (zh) * | 2013-10-30 | 2014-02-19 | 北京信息控制研究所 | 一种基于遗传算法的数据流测试用例自动生成方法 |
US20150261657A1 (en) * | 2014-03-13 | 2015-09-17 | Infosys Limited | Methods for generating test suites and devices thereof |
-
2016
- 2016-09-23 CN CN201610843637.6A patent/CN106445821A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593287A (zh) * | 2013-10-30 | 2014-02-19 | 北京信息控制研究所 | 一种基于遗传算法的数据流测试用例自动生成方法 |
US20150261657A1 (en) * | 2014-03-13 | 2015-09-17 | Infosys Limited | Methods for generating test suites and devices thereof |
Non-Patent Citations (1)
Title |
---|
金虎等: "基于面向路径的遗传算法的测试用例自动生成", 《计算机工程》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108346098B (zh) * | 2018-01-19 | 2022-05-31 | 创新先进技术有限公司 | 一种风控规则挖掘的方法及装置 |
CN108346098A (zh) * | 2018-01-19 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种风控规则挖掘的方法及装置 |
CN108763055B (zh) * | 2018-04-19 | 2020-08-25 | 北京航空航天大学 | 一种基于表观遗传的测试用例约束控制技术的构建方法 |
CN108763055A (zh) * | 2018-04-19 | 2018-11-06 | 北京航空航天大学 | 一种基于表观遗传的测试用例约束控制技术的构建方法 |
CN109376075A (zh) * | 2018-09-19 | 2019-02-22 | 北京奇安信科技有限公司 | 一种生成测试对象最优测试覆盖路径的处理方法及装置 |
CN109376075B (zh) * | 2018-09-19 | 2022-04-22 | 奇安信科技集团股份有限公司 | 一种生成测试对象最优测试覆盖路径的处理方法及装置 |
CN110110854A (zh) * | 2019-04-01 | 2019-08-09 | 南京邮电大学 | 一种基于边状态的深度神经网络测试充分性的方法 |
CN110110854B (zh) * | 2019-04-01 | 2022-04-22 | 南京邮电大学 | 一种基于边状态的深度神经网络测试充分性的方法 |
CN110135558B (zh) * | 2019-04-22 | 2022-04-12 | 南京邮电大学 | 基于可变强度组合测试的深度神经网络测试充分性方法 |
CN110135558A (zh) * | 2019-04-22 | 2019-08-16 | 南京邮电大学 | 基于可变强度组合测试的深度神经网络测试充分性方法 |
CN110647752A (zh) * | 2019-09-26 | 2020-01-03 | 信联科技(南京)有限公司 | 一种基于遗传算法的模糊测试平台 |
CN111813669A (zh) * | 2020-07-04 | 2020-10-23 | 毛澄映 | 基于多目标群体智能的适应性随机测试用例生成方法 |
CN111813669B (zh) * | 2020-07-04 | 2023-10-13 | 毛澄映 | 基于多目标群体智能的适应性随机测试用例生成方法 |
CN113268432A (zh) * | 2021-06-24 | 2021-08-17 | 广东电网有限责任公司计量中心 | 一种基于进化算法的电能表驱动程序测试方法及*** |
CN113268432B (zh) * | 2021-06-24 | 2023-09-01 | 广东电网有限责任公司计量中心 | 一种基于进化算法的电能表驱动程序测试方法及*** |
CN114490316B (zh) * | 2021-12-16 | 2023-04-18 | 四川大学 | 一种基于损失函数的单元测试用例自动生成方法 |
CN114490316A (zh) * | 2021-12-16 | 2022-05-13 | 四川大学 | 一种基于损失函数的单元测试用例自动生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445821A (zh) | 一种基于遗传算法实现测试用例自动生成的方法 | |
Cui et al. | A novel artificial bee colony algorithm with an adaptive population size for numerical function optimization | |
Woldesenbet et al. | Constraint handling in multiobjective evolutionary optimization | |
CN104866904B (zh) | 一种基于spark的遗传算法优化的BP神经网络并行化方法 | |
Perry et al. | Modified genetic algorithm strategy for structural identification | |
Cuevas et al. | A cuckoo search algorithm for multimodal optimization | |
Ali et al. | A modified cultural algorithm with a balanced performance for the differential evolution frameworks | |
CN110515845B (zh) | 基于改进ipo策略的组合测试用例优化生成方法 | |
Singh et al. | Performance of a hybrid EA-DE-memetic algorithm on CEC 2011 real world optimization problems | |
CN109284860A (zh) | 一种基于正交反向樽海鞘优化算法的预测方法 | |
CN110059802A (zh) | 用于训练学习模型的方法、装置和计算设备 | |
CN110738362A (zh) | 一种基于改进的多元宇宙算法构建预测模型的方法 | |
Harris et al. | A memetic algorithm for the quadratic assignment problem with parallel local search | |
CN106919504B (zh) | 一种基于ga算法的测试数据进化生成方法 | |
CN106294343A (zh) | 数据聚类方法、模型融合方法以及装置 | |
JP2002312755A (ja) | 遺伝的アルゴリズムを用いた最適化システム、制御装置、最適化方法、プログラムおよび記録媒体 | |
CN111897735B (zh) | 基于粒子群和多标准的模糊测试用例选择方法和装置 | |
Maca et al. | The inertia weight updating strategies in particle swarm optimisation based on the beta distribution | |
Peng et al. | Memetic differential evolution with an improved contraction criterion | |
Kumar et al. | An impact of cross over operator on the performance of genetic algorithm under operating system process scheduling problem | |
CN111813669A (zh) | 基于多目标群体智能的适应性随机测试用例生成方法 | |
Nema et al. | A hybrid cooperative search algorithm for constrained optimization | |
Liu | A fast and elitist multi-objective particle swarm algorithm: NSPSO | |
JP7359493B2 (ja) | ハイパーパラメータ調整装置、ハイパーパラメータ調整プログラムを記録した非一時的な記録媒体、及びハイパーパラメータ調整プログラム | |
Talaslioglu | A New Genetic Algorithm Methodology for Design Optimization of Truss Structures: Bipopulation‐Based Genetic Algorithm with Enhanced Interval Search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication |