CN108763055B - 一种基于表观遗传的测试用例约束控制技术的构建方法 - Google Patents
一种基于表观遗传的测试用例约束控制技术的构建方法 Download PDFInfo
- Publication number
- CN108763055B CN108763055B CN201810353435.2A CN201810353435A CN108763055B CN 108763055 B CN108763055 B CN 108763055B CN 201810353435 A CN201810353435 A CN 201810353435A CN 108763055 B CN108763055 B CN 108763055B
- Authority
- CN
- China
- Prior art keywords
- constraint
- population
- evolution
- epigenetic
- test case
- 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
Images
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
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于表观遗传的测试用例约束控制技术的构建方法,步骤如下:1、给定适应度函数、基因编码方式、约束控制规则;2、参数初始化:设置种群规模、进化代数、终止适应度函数值;3、种群初始化:随机生成初始种群;4、进化终止判断;5、基于表观遗传的约束调控:根据约束控制规则实施约束甲基化或约束乙酰化;6、个体选择;7、完成种群的表观遗传进化;8、输出测试用例集。通过上述步骤,可以完成对基于表观遗传的测试用例约束控制技术的构建。本发明可以帮助软件测试人员设计更加符合软件实际运行情况的测试用例,发现更多软件错误,提高软件测试的质量。
Description
技术领域
本发明提供一种基于表观遗传的测试用例约束控制技术的构建方法,它涉及一种基于表观遗传的测试用例约束控制技术的实现,属于软件可靠性、软件测试领域。
背景技术
随着计算机技术的快速发展,软件的功能在变得越来越强大的同时,其规模和复杂度也急剧增大。为减小软件故障并提升其可靠性,在软件正式发布之前进行软件测试,发现软件故障并排除故障成为一件必须的工作。软件测试的核心问题之一就是测试用例的生成,在某种程度上测试用例的质量决定了软件测试的质量。软件运行在不同的环境中时,会表现出不同的运行稳定性,如何在设计测试用例的时候充分考虑到实际运行条件下的各种约束成为软件测试的一个重要问题。同时,各种约束应该是可控的,要能根据实际情况在设计测试用例时对约束进行调控,比如约束的开启/关闭以及增强/减弱。与此同时,由于现代软件庞大的规模,传统的测试方法由于费时费力,成本居高不下,实现测试自动化成为降低成本的重要方法。测试用例的自动生成以及自动执行是测试自动化的主要内容,当前实践较为成功的测试用例自动生成方法就是模拟生物学中的各种自然进化过程以寻求覆盖率达标的测试用例集,这方面的应用最为广泛和成熟的是遗传学理论。
经典遗传学理论(Genetics)认为DNA序列决定了生物的表型,表观遗传学(Epigenetics)的概念基于遗传学而来,它是指由非DNA变异而改变表型的“可遗传”的现象,其定义是:DNA序列没有变异的情况下能稳定遗传的表型变化。这里的表型(Phenotype)又称性状,是指一个生物体或细胞可以观察到的性状或特征,是特定的基因型与环境相互作用的结果。表观遗传的调节机制有DNA修饰、组蛋白修饰、非编码RNA调控、染色质重塑以及核小体定位等。DNA甲基化是一种天然的DNA修饰方式,也是目前研究最为充分的表观遗传修饰形式,DNA甲基化导致某些区域DNA构象变化,从而影响蛋白质与DNA的相互作用,甲基化达到一定程度时会使许多蛋白质因子赖以结合的原件缩入大沟而不利于转录的起始,导致基因失活。同时,不同位点的甲基化对于基因的表达可以起到抑制或者促进的作用。组蛋白乙酰化修饰可以通过电荷中和的方式削弱组蛋白-DNA或核小体-核小体的相互作用,或引起构象的变化,破坏稳定的核小体结构。乙酰化修饰后的组蛋白也可以募集其他相关因子进入到一个基因位点,影响转录。简言之,甲基化和乙酰化都可以控制基因表达,在不改变基因序列的情况下产生能稳定遗传的表型变化。
软件在运行时,由于复杂的运行环境,可能会面临着各种的约束,进而导致各种软件故障。导致软件发生故障的因素有很多,可能是软件本身时序、调度、共享内存保护、中断处理等约束,也可能是硬件环境约束,甚至一些外部的干扰信号有时也会对软件的处理逻辑和接口信息造成偶发故障。在进行软件测试时,这些内外部约束也应该被考虑到测试用例的设计中去,其中,这些约束的开启/关闭、增强/减弱以及遗传/非遗传(约束在测试用例的自动生成中连续存在视为遗传)的控制是应该重点解决的问题。而当前的较为成熟的测试用例自动生成方法重在生成的测试用例集的覆盖率的提升,对于各种约束及这些约束间的依赖关系并未考虑到测试用例的设计中去。针对这一状况,我们将提出一种基于表观遗传的测试用例约束控制技术的构建方法,在这项技术中,我们借鉴表观遗传理论,在测试时不改变程序本身,对各种约束进行表观遗传调控。我们提供一种类似于甲基化和乙酰化的基因修饰机制,进行约束(基因)调控,对约束进行包括开关、增强/减弱、遗传/非遗传等调控操作。相较于DNA,表观遗传范畴的可遗传信息更易受环境的影响,更容易发生动态、可逆的变化,因此更加适合约束的进化控制。使用这一技术可以充分利用已有的表观遗传学知识,生成更加符合实际使用情况的软件测试用例,提高测试的质量。
该软件测试用例生成技术基于表观遗传理论进行构建,形成基于表观遗传的测试用例约束控制技术,在提高软件测试质量的同时,达到提高软件可信性的目的。
发明内容
(一)本发明目的:现有测试用例自动生成方法重在生成的测试用例集对程序本身的覆盖率的提升,以检测软件中存在的错误。但导致软件发生故障的因素有很多,不仅是软件本身时序、调度、中断处理等约束,还可能是硬件环境约束,甚至一些外部的干扰信号有时也会对软件的处理逻辑和接口信息造成影响进而触发偶发故障。不考虑各种软件运行时面临的各种约束,这样的测试用例只能测出软件在实验室条件下存在的错误,对于软件在实际约束下可能发生的故障则无能为力。因此本发明将结合表观遗传理论,提供一种基于表观遗传的测试用例约束控制技术的构建方法。表观遗传理论指的是DNA序列没有发生变异的情况下能稳定遗传的表型变化,我们可以借鉴表观遗传机制在不改变程序本身的情况下对约束进行各种调控,包括开关、增强/减弱、遗传/非遗传等进化操作。即提供一种类似于甲基化和乙酰化的基因修饰机制,进行约束(基因)调控,有的约束表现出来,有的约束不表现出来。在本发明中设计新的约束表观遗传操作算子包括:约束甲基化-对应约束开启模式,并可以加入后续的遗传进程;约束乙酰化-对应约束停止模式,并避免加入后续的遗传进程。表观遗传范畴的可遗传信息更受环境的影响,更容易发生动态、可逆的变化,因此更加适合约束的遗传进化控制。该技术可以帮助测试人员设计更加符合软件实际运行情况的测试用例,发现更多的潜在软件故障,提高软件测试的质量。
可以看出该技术的构建对现有的进化式测试用例生成技术和表观遗传理论进行了整合与创新,形成了基于表观遗传的测试用例约束控制技术。
(二)技术方案
本发明技术方案:基于表观遗传的测试用例约束控制技术的构建方法过程如下:
本发明所述方法中,引用ETCC来表述基于表观遗传(即“Epigenetics”)的测试用例约束控制(即“Test case Constraint Control”)技术。
本发明提供一种基于表观遗传的测试用例约束控制技术的构建方法,其步骤如下:
步骤1、给定适应度函数、基因编码方式、约束控制规则;
步骤2、参数初始化:设置种群规模、进化代数、终止适应度函数值;
步骤3、种群初始化:随机生成初始种群;
步骤4、进化终止判断;
步骤5、基于表观遗传的约束调控:根据约束控制规则实施约束甲基化或约束乙酰化;
步骤6、个体选择;
步骤7、完成种群的表观遗传进化;
步骤8、输出测试用例集。
其中,在步骤1中所述的“给定适应度函数、约束控制规则、基因编码方式”,其做法如下:适应度函数是种群中个体在进化中优胜劣汰的衡量标准,在软件测试中,覆盖率可以体现测试用例集的好坏,因而本发明中使用覆盖率作为适应度函数F(x),测试用例集的覆盖率可以使用测试工具Testbed直接获得;
编码是指如何描述问题的可行解,即把一个实际问题的可行解从其解空间转换到表观遗传方法所能处理的搜索空间的转换方法;本发明选择实数编码,假定一个个体包含的变量有D维,则种群的第i个个体Xi可以表示为Xi=[xi1,xi2,L,xij,L,xiD],其中,i=1,2,L,Npop,j=1,2,L,D,Npop为种群规模,即种群的个体总数,xij是范围为[Linput,Uinput]的实数变量,[Linput,Uinput]是被测程序输入的上下限;
约束控制规则是指确定何时加入约束,以及约束何时停止,在约束开始加入到停止期间,约束随着种群的进化而遗传,同时还需确定施加约束的大小;这里的约束是指软件在运行时面临的硬件环境约束,以及外部的噪声干扰约束;软件面临的约束,在测试时表现为对程序正常输入的干扰,假定共有NC个可能的约束,使用D维实数变量将第i个约束量化表示为Ci=[ci1,ci2,L,cij,L,ciD],其中,i=1,2,L,NC,j=1,2,L,D,D为约束的维数,同种群个体的维数保持一致;将软件面临的约束量化为实数变量,可以通过表观遗传的调控方式加入到后续的测试用例的进化生成过程中,实现约束的遗传进化控制;约束控制规则根据软件的实际运行情况制定,除开始及结束时间外,Ci的大小,即约束的强度,也依据实际需求确定,在进化过程中选择性的加入;
在本发明中,种群即代表测试用例集,种群的个体即为测试用例。
其中,在步骤2中所述的“参数初始化:设置种群规模、进化代数、终止适应度函数值”,其做法如下:根据实际需求设定种群规模Npop,进化代数Istop,终止适应度函数值Fstop;
种群规模Npop即代表着一次生成多少个测试用例,其多少根据待测程序的实际情况决定;理论上讲,尽可能多的进化代数可以生成更高的覆盖率的测试用例集,但是到一定的代数后,覆盖率的提升变得不明显或者不再提升,而进化次数越多,对硬件的要求也越高,耗费时间也相应增加,因而需要根据实际需求进行权衡,综合考虑终止进化代数Istop。终止适应度函数Fstop同进化代数一样,过高的终止适应度可能直接是达不到的,只是徒耗运算资源而已,因此也需要综合考虑。
其中,在步骤3中所述的“种群初始化:随机生成初始种群”,其做法如下:种群的第i个个体Xi表示为Xi=[xi1,xi2,L,xij,L,xiD],被测程序输入的上下限为[Linput,Uinput],随机生成初始种群则是指通过xij在[Linput,Uinput]之间随机取值的方式确定每个个体Xi的值,以此生成初始种群,并使用P0表示初始种群。
其中,在步骤4中所述的“进化终止判断”,其做法如下:使用软件测试用具Testbed获取初始种群的适应度函数值F,若F<Fstop,且进化代数小于设定的终止进化代数Istop,则继续进行种群的表观遗传进化,反之停止进化,输出初始种群作为测试用例集。
其中,在步骤5中所述的“基于表观遗传的约束调控:根据约束控制规则实施约束甲基化或约束乙酰化”,其做法如下:约束甲基化-对应约束开启模式,将已经量化的约束Ci加入到种群中参与进化,由于约束Ci与个体Xi的维度相同,均为D维,直接将约束加到个体上,即可让个体产生变异,形成新的个体;使用Xi'表示甲基化后的新个体,则有Xi'=Xi+λCi,其中,λ表示缩放倍数,可以通过设定λ的值,控制约束的强度;照此规则,即可更新种群P0的所有个体,从而形成新的种群P0',即种群的进化;若约束不关闭,则约束一直存在于遗传进程中,持续影响种群进化;
此外,约束乙酰化-对应约束停止模式,在本发明中,令λ=0,即可关闭约束,约束不再对种群进化产生影响。
其中,在步骤6中所述的“个体选择”,其做法如下:计算通过表观遗传进化得到的新种群的适应度值,选出父代种群P0和新种群P0'中适应度最高的Npop个个体,保持种群规模不变,组成新的种群P1进行下一轮进化;
本发明是基于表观遗传理论,是通过甲基化和乙酰化对约束进行调控,没有改变基因序列本身,因而没有常见的基因变异、交叉等遗传操作;在进行甲基化或乙酰化后,只需通过选择操作选出适应度更高的个体,组成新的种群,直接参与后续的表观遗传操作即可。
其中,在步骤7中所述的“完成种群的表观遗传进化”,其做法如下:通过步骤6得到进行一轮表观遗传进化后的新种群P1,然后重复步骤4-步骤6,直至达到设定的进化代数Istop,或者种群的适应度不小于终止适应度函数值Fstop,停止进化;至此,种群的表观遗传进化完成。
其中,在步骤8中所述的“输出测试用例集”,其做法如下:种群的表观遗传进化完成后,将种群输出,此时的种群即为满足要求的测试用例集。
通过上述步骤,可以完成对基于表观遗传的测试用例约束控制技术的构建,我们借鉴表观遗传理论,在测试时不改变程序本身,对各种约束进行表观遗传调控。提供一种类似于甲基化和乙酰化的修饰机制,对约束进行包括开关、增强/减弱、遗传/非遗传等调控操作,使得生产的测试用例更好的反映软件的实际运行情况。本发明适用于解决实际软件测试中的软件故障发现问题,可以帮助软件测试人员在测试时将软件运行面临的实际约束考虑到测试用例的设计中去,使得测试用例更具有针对性,发现更多的软件故障,提高软件测试的质量,具有较高的实际应用价值。
(三)优点
本发明与现有技术相比的优点在于:现有的测试用例自动生成方法重在追求程序空间覆盖的提升,重在检测程序本身存在的错误,但是软件发生故障的原因有很多,不仅是软件本身时序、调度、中断处理等约束,还可能是硬件环境约束,甚至一些外部的干扰信号有时也会对软件的处理逻辑和接口信息造成影响进而触发偶发故障。不考虑软件运行时面临的各种约束生成的测试用例只能测出软件在实验室条件下存在的错误,对于软件在实际约束下可能发生的故障则无能为力。因此本发明将借鉴表观遗传理论,在生成测试用例的过程中提供一种类似于甲基化和乙酰化的基因修饰机制,进行约束调控,生成更加符合软件实际运行情况的测试用例。本发明对现有的表观遗传理论和测试用例自动生成方法进行了整合与创新,提供一种基于表观遗传的测试用例约束控制技术。
附图说明
图1为本发明所述方法的总体步骤流程图。
图2为基于表观遗传的测试用例约束控制流程图。
图中序号、符号、代号说明如下:
图1中的“步骤1~8”即技术方案中对应的步骤;
图1中的F(x)即为适应度函数;
图1中的Npop、Istop、Fstop即为种群规模、终止进化代数、终止适应度函数值;
图1中的P0、Ci即为初始种群、约束;
图2中的Istop、Fstop即为终止进化代数、终止适应度函数值;
图2中的F即为当前种群的适应度值。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图进行详细描述。
本发明提供了一种基于表观遗传的测试用例约束控制技术的构建方法。利用该方法构建的技术可以提高软件测试的质量。在这项技术中,提供一种类似于甲基化和乙酰化的基因修饰机制,进行约束调控,包括开关、增强/减弱、遗传/非遗传等进化操作。该技术可以在测试用例的生成过程中考虑软件运行时面临的各种实际约束,生成更加符合实际情况的测试用例,进而发现更多的软件错误。
本发明一种基于表观遗传的测试用例约束控制技术的构建方法,如图1所示,其具体构建步骤如下:
步骤一:给定适应度函数、约束控制规则、基因编码方式。其构建方法是:
适应度函数是种群中个体在进化中优胜劣汰的衡量标准,在软件测试中,覆盖率可以体现测试用例集的好坏,因而本发明中使用覆盖率作为适应度函数F(x),测试用例集的覆盖率可以使用测试工具Testbed直接获得。
编码是指如何描述问题的可行解,即把一个实际问题的可行解从其解空间转换到表观遗传方法所能处理的搜索空间的转换方法。本发明选择实数编码,假定一个个体包含的变量有D维,则种群的第i个个体Xi可以表示为Xi=[xi1,xi2,L,xij,L,xiD],其中,i=1,2,L,Npop,j=1,2,L,D,Npop为种群规模,即种群的个体总数,xij是范围为[Linput,Uinput]的实数变量,[Linput,Uinput]是被测程序输入的上下限。
约束控制规则是指确定何时加入约束,以及约束何时停止,在约束开始加入到停止期间,约束随着种群的进化而遗传。同时还需确定施加约束的大小。这里的约束是指软件在运行时面临的硬件环境约束,以及外部的噪声干扰约束。软件面临的约束,在测试时表现为对程序正常输入的干扰,假定共有NC个可能的约束,使用D维实数变量将第i个约束表示为Ci=[ci1,ci2,L,cij,L,ciD],其中,i=1,2,L,NC,j=1,2,L,D,D为约束的维数,同种群个体的维数保持一致。将软件面临的约束量化为实数变量,可以通过表观遗传的调控方式加入到后续的测试用例的进化生成过程中,实现约束的遗传进化控制。约束控制规则根据软件的实际运行情况制定,除开始及结束时间外,Ci的大小,即约束的强度,也依据软件的实际运行情况,在进化过程中选择性的加入。本发明的约束调控要求尽可能的模拟软件在运行时面临的约束情况,只有这样才能使生成的测试用例更加具有针对性,发现更多的软件错误。
在本发明中,种群即代表测试用例集,种群的个体即为测试用例。
步骤二:参数初始化:设置种群规模、进化代数、终止适应度函数值。其构建方法是:
根据实际需求设定种群规模Npop,进化代数Istop,终止适应度函数值Fstop。种群规模即代表着一次生成多少个测试用例,其多少根据实际情况决定。理论上讲,尽可能多的进化代数可以生成更高的覆盖率的测试用例,但是到一定的代数后,覆盖率的提升变得不明显或者不再提升,同时进化次数越多,对硬件的要求也越高,因而需要根据实际需求综合考虑进化代数。终止适应度函数同进化代数一样,过高的终止适应度可能直接是达不到的,只是徒耗运算资源而已,因此也需要综合考虑,并不是越高越好。
步骤三:种群初始化:随机生成初始种群。其构建方法是:
本发明将种群的第i个个体Xi表示为Xi=[xi1,xi2,L,xij,L,xiD],被测程序输入的上下限为[Linput,Uinput],随机生成初始种群则是指通过xij在[Linput,Uinput]之间随机取值的方式确定每个个体Xi的值,以此生成初始种群,并使用P0表示初始种群。
步骤四:进化终止判断。其构建方法是:
使用软件测试用具Testbed获取初始种群的适应度函数值F,若F<Fstop,且进化代数小于设定的终止进化代数Istop,则继续进行种群的表观遗传进化。反之停止进化,输出初始种群作为满足要求的测试用例集。
步骤五:基于表观遗传的约束调控:根据约束控制规则实施约束甲基化或约束乙酰化。其构建方法是:
约束甲基化-对应约束开启模式,将已经量化的约束Ci加入到种群中参与进化,由于约束Ci与个体Xi的维度相同,均为D维,直接将约束加到个体上,即可让个体产生变异,形成新的个体。使用Xi'表示甲基化后的新个体,则有Xi'=Xi+λCi,其中,λ表示约束缩放倍数,可以通过设定λ的值,控制约束的强度。照此规则,即可更新种群P0的所有个体,从而形成新的种群P0',即种群进化。若约束不关闭,则约束一直存在于遗传进程中,持续影响种群进化。
约束乙酰化则对应约束停止模式,在本发明中,令λ=0,即可关闭约束,约束不再对种群进化产生影响。
步骤六:个体选择。其构建方法是:
计算通过表观遗传进化得到的新种群的适应度值,选出父代种群P0和新种群P0'中适应度最高的Npop个个体,保持种群规模不变,组成新的种群P1进行下一轮进化。
本发明是基于表观遗传理论,是通过甲基化和乙酰化对约束进行调控,没有改变基因序列本身,因而没有常见的基因变异、交叉等遗传操作。在进行甲基化或乙酰化后,只需通过选择操作选出适应度更高的个体,组成新的种群,直接参与后续的表观遗传操作即可。
步骤七:完成种群的表观遗传进化。其构建方法如下:
通过步骤6得到进行一轮表观遗传进化后的新种群P1,然后重复步骤4-步骤6,直至达到设定的进化代数Istop,或者种群的适应度不小于终止适应度函数值Fstop,停止进化。至此,种群的表观遗传进化完成。
步骤八:输出测试用例集。其构建方法如下:
种群的表观遗传进化完成后,将种群输出,此时的种群即为满足要求的测试用例集。整个基于表观遗传的测试用例约束控制技术的流程图如图2所示。
通过上述步骤,可以完成对基于表观遗传的测试用例约束控制技术的构建。在这项技术中,我们借鉴表观遗传机制在不改变程序本身的情况下对约束进行各种调控,包括开关、增强/减弱、遗传/非遗传等进化操作。提供一种类似于甲基化和乙酰化的基因修饰机制,进行约束调控。在本发明中设计新的约束表观遗传操作算子包括:约束甲基化-对应约束开启模式,并可以加入后续的遗传进程;约束乙酰化-对应约束停止模式,并避免加入后续的遗传进程。该技术可以在测试用例的生成过程中考虑软件运行时面临的各种实际约束,生成更加符合实际情况的测试用例,进而发现更多的软件错误,提高软件测试的质量。
该故障预测技术基于表观遗传理论进行构建,形成较为实用的基于表观遗传的测试用例约束控制技术。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于表观遗传的测试用例约束控制技术的构建方法,其特征在于:其步骤如下:
步骤1、给定适应度函数、基因编码方式、约束控制规则;
步骤2、参数初始化:设置种群规模、进化代数、终止适应度函数值;
步骤3、种群初始化:随机生成初始种群;
步骤4、进化终止判断;
步骤5、基于表观遗传的约束调控:根据约束控制规则实施约束甲基化及约束乙酰化;
步骤6、个体选择;
步骤7、完成种群的表观遗传进化;
步骤8、输出测试用例集;
通过上述步骤,能完成对基于表观遗传的测试用例约束控制技术的构建;
其中,在步骤1中所述的给定适应度函数、基因编码方式、约束控制规则,其做法如下:适应度函数是种群中个体在进化中优胜劣汰的衡量标准,在软件测试中,覆盖率能体现测试用例集的好坏,因而使用覆盖率作为适应度函数F(x),测试用例集的覆盖率能使用测试工具Testbed直接获得;
编码是指如何描述问题的可行解,即把一个实际问题的可行解从其解空间转换到表观遗传方法所能处理的搜索空间的转换方法;选择实数编码,假定一个个体包含的变量有D维,则种群的第i个个体Xi能表示为Xi=[xi1,xi2,…,xij,…,xiD],
其中,i=1,2,…,Npop,j=1,2,…,D,Npop为种群规模,即种群的个体总数,xij是范围为[Linput,Uinput]的实数变量,[Linput,Uinput]是被测程序输入的上下限;
约束控制规则是指确定何时加入约束,以及约束何时停止,在约束开始加入到停止期间,约束随着种群的进化而遗传,同时还需确定施加约束的大小;这里的约束是指软件在运行时面临的硬件环境约束,以及外部的噪声干扰约束;软件面临的约束,在测试时表现为对程序正常输入的干扰,假定共有NC个可能的约束,使用D维实数变量将第i个约束量化表示为Ci=[ci1,ci2,…,cij,…,ciD],其中,i=1,2,…,NC,j=1,2,…,D,D为约束的维数,同种群个体的维数保持一致;将软件面临的约束量化为实数变量,能通过表观遗传的调控方式加入到后续的测试用例的进化生成过程中,实现约束的遗传进化控制;约束控制规则根据软件的实际运行情况制定,除开始及结束时间外,Ci的大小,即约束的强度,也依据实际需求确定,在进化过程中选择性的加入;种群即代表测试用例集,种群的个体即为测试用例;
在步骤2中所述的参数初始化:设置种群规模、进化代数、终止适应度函数值,其做法如下:根据实际需求设定种群规模Npop,进化代数Istop,终止适应度函数值Fstop;
在步骤3中所述的种群初始化:随机生成初始种群,其做法如下:种群的第i个个体Xi表示为Xi=[xi1,xi2,…,xij,,xiD],被测程序输入的上下限为[Linput,Uinput],随机生成初始种群则是指通过xij在[Linput,Uinput]之间随机取值的方式确定每个个体Xi的值,以此生成初始种群,并使用P0表示初始种群;
在步骤4中所述的进化终止判断,其做法如下:使用软件测试用具Testbed获取初始种群的适应度函数值F,若F<Fstop,且进化代数小于设定的终止进化代数Istop,则继续进行种群的表观遗传进化,反之停止进化,输出初始种群作为测试用例集;
在步骤5中所述的基于表观遗传的约束调控:根据约束控制规则实施约束甲基化及约束乙酰化,其做法如下:约束甲基化-对应约束开启模式,将已经量化的约束Ci加入到种群中参与进化,由于约束Ci与个体Xi的维度相同,均为D维,直接将约束加到个体上,即让个体产生变异,形成新的个体;使用Xi'表示甲基化后的新个体,则有Xi'=Xi+λCi,其中,λ表示缩放倍数,能通过设定λ的值,控制约束的强度;照此规则,即能更新种群P0的所有个体,从而形成新的种群P0',即种群的进化;若约束不关闭,则约束一直存在于遗传进程中,持续影响种群进化;
此外,约束乙酰化-对应约束停止模式,令λ=0,即关闭约束,约束不再对种群进化产生影响;
在步骤6中所述的个体选择,其做法如下:计算通过表观遗传进化得到的新种群的适应度值,选出父代种群P0和新种群P0'中适应度最高的Npop个个体,保持种群规模不变,组成新的种群P1进行下一轮进化;
在步骤7中所述的完成种群的表观遗传进化,其做法如下:通过步骤6得到进行一轮表观遗传进化后的新种群P1,然后重复步骤4-步骤6,直至达到设定的进化代数Istop,及种群的适应度不小于终止适应度函数值Fstop,停止进化;至此,种群的表观遗传进化完成;
在步骤8中所述的输出测试用例集,其做法如下:种群的表观遗传进化完成后,将种群输出,此时的种群即为满足要求的测试用例集。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810353435.2A CN108763055B (zh) | 2018-04-19 | 2018-04-19 | 一种基于表观遗传的测试用例约束控制技术的构建方法 |
US16/198,601 US11354224B2 (en) | 2018-04-19 | 2018-11-21 | Construction method of test case constraint control technology based on epigenetics |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810353435.2A CN108763055B (zh) | 2018-04-19 | 2018-04-19 | 一种基于表观遗传的测试用例约束控制技术的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763055A CN108763055A (zh) | 2018-11-06 |
CN108763055B true CN108763055B (zh) | 2020-08-25 |
Family
ID=64011150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810353435.2A Active CN108763055B (zh) | 2018-04-19 | 2018-04-19 | 一种基于表观遗传的测试用例约束控制技术的构建方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11354224B2 (zh) |
CN (1) | CN108763055B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010284B1 (en) * | 2018-05-31 | 2021-05-18 | The Ultimate Software Group, Inc. | System for understanding navigational semantics via hypothesis generation and contextual analysis |
CN110347580A (zh) * | 2019-04-28 | 2019-10-18 | 北京航空航天大学 | 一种构建非嵌入式软件可靠性测试过程模型的方法 |
CN110879778B (zh) * | 2019-10-14 | 2023-09-26 | 杭州电子科技大学 | 一种新的动态反馈和改进型补丁评价的软件自动修复方法 |
CN111274867B (zh) * | 2019-12-30 | 2023-03-31 | 西北大学 | 一种野外阵风模拟方法 |
CN111221741B (zh) * | 2020-01-17 | 2023-10-10 | 北京工业大学 | 一种基于遗传算法和日志分析的异常单元测试自动生成的方法 |
CN111367790B (zh) * | 2020-02-14 | 2023-05-12 | 重庆邮电大学 | 一种基于混合模型的元启发式测试用例排序方法 |
CN111563043B (zh) * | 2020-05-11 | 2022-11-01 | 西安邮电大学 | 一种并发程序测试噪声注入优化方法 |
CN112699050A (zh) * | 2020-08-03 | 2021-04-23 | 徐州工程学院 | 一种基于变异体分组的软件测试用例多种群进化生成方法 |
CN112346997B (zh) * | 2020-12-04 | 2022-05-31 | 福州理工学院 | 一种测试用例自动生成方法及终端 |
CN112463629B (zh) * | 2020-12-11 | 2022-03-29 | 北京航空航天大学 | 一种基于遗传进化的自主无人系统软件配置项调整方法 |
CN112579462B (zh) * | 2020-12-25 | 2024-02-09 | 平安银行股份有限公司 | 测试用例获取方法、系统、设备及计算机可读存储介质 |
CN112699039B (zh) * | 2020-12-31 | 2024-04-16 | 哈尔滨工业大学 | 一种基于分类树的测试数据自动生成方法及系统 |
CN114579435B (zh) * | 2022-02-23 | 2024-05-28 | 南京信息工程大学 | 一种软件测试用例的生成方法 |
CN114968824B (zh) * | 2022-07-28 | 2022-09-30 | 江西财经大学 | 一种基于链式多路径覆盖的测试方法与系统 |
CN115617700B (zh) * | 2022-12-19 | 2023-04-07 | 华东交通大学 | 基于关系分析的测试用例设计、生成方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859274A (zh) * | 2009-04-07 | 2010-10-13 | 西门子(中国)有限公司 | 一种进行模糊测试的方法及系统 |
CN106445821A (zh) * | 2016-09-23 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种基于遗传算法实现测试用例自动生成的方法 |
CN106502908A (zh) * | 2016-11-07 | 2017-03-15 | 牡丹江师范学院 | 基于统计分析的可执行基础路径进化生成方法 |
CN107391385A (zh) * | 2017-08-28 | 2017-11-24 | 北京航空航天大学 | 一种软件测试用例生成技术的构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180126452A (ko) * | 2016-01-05 | 2018-11-27 | 센티언트 테크놀로지스 (바베이도스) 리미티드 | 인공 신경망을 이용하는 웹 인터페이스 생성 및 테스팅 |
-
2018
- 2018-04-19 CN CN201810353435.2A patent/CN108763055B/zh active Active
- 2018-11-21 US US16/198,601 patent/US11354224B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859274A (zh) * | 2009-04-07 | 2010-10-13 | 西门子(中国)有限公司 | 一种进行模糊测试的方法及系统 |
CN106445821A (zh) * | 2016-09-23 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种基于遗传算法实现测试用例自动生成的方法 |
CN106502908A (zh) * | 2016-11-07 | 2017-03-15 | 牡丹江师范学院 | 基于统计分析的可执行基础路径进化生成方法 |
CN107391385A (zh) * | 2017-08-28 | 2017-11-24 | 北京航空航天大学 | 一种软件测试用例生成技术的构建方法 |
Non-Patent Citations (1)
Title |
---|
基于约束条件的组合测试用例集构建方法分析;丁怀宝,龚蓬,高凤,周飞;《电脑知识与技术》;20151130;1-2 * |
Also Published As
Publication number | Publication date |
---|---|
US20190087313A1 (en) | 2019-03-21 |
US11354224B2 (en) | 2022-06-07 |
CN108763055A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763055B (zh) | 一种基于表观遗传的测试用例约束控制技术的构建方法 | |
de Almeida et al. | DeepSTARR predicts enhancer activity from DNA sequence and enables the de novo design of synthetic enhancers | |
Segal et al. | From promoter sequence to expression: a probabilistic framework | |
Ceccarelli et al. | De novo reconstruction of gene regulatory networks from time series data, an approach based on formal methods | |
Sesia et al. | Gene hunting with knockoffs for hidden markov models | |
Camacho et al. | Comparison of reverse‐engineering methods using an in silico network | |
Bonilla-Huerta et al. | Hybrid filter-wrapper with a specialized random multi-parent crossover operator for gene selection and classification problems | |
JP7318383B2 (ja) | 情報処理プログラム、情報処理方法、及び情報処理装置 | |
CN111352830A (zh) | 基于语句占优关系的变异测试数据进化生成方法 | |
Du et al. | Multiscale cooperative differential evolution algorithm | |
WO2022026069A1 (en) | Kinematic modeling of biochemical pathways | |
CN112417463A (zh) | 软件漏洞预测方法、装置、计算机设备及存储介质 | |
US20230197194A1 (en) | Inferrence of a gene expression profile via neural network | |
Kaplow et al. | Neural network modeling of differential binding between wild-type and mutant CTCF reveals putative binding preferences for zinc fingers 1–2 | |
Guo et al. | Stability of gene regulatory networks | |
JP2023502254A (ja) | Pcrバイアスおよび結合親和性を分離するための潜在変数モデリング | |
EP4169021A1 (en) | Kinematic modeling of biochemical pathways | |
JP2021108190A (ja) | 読解モデルのトレーニング方法及び読解処理方法 | |
CN113821975A (zh) | 一种燃料电池性能衰减预测方法及系统 | |
Wang et al. | Transiently increased intercommunity regulation characterizes concerted cell phenotypic transition | |
DasGupta et al. | Reverse engineering of molecular networks from a common combinatorial approach | |
Bernot et al. | Modeling, observability and experiment, a case study | |
Cai et al. | Utilizing RNA-seq data for cancer network inference | |
CN116594713A (zh) | 一种服务器配置参数的确定方法、装置、设备和介质 | |
Musso et al. | Mutation–selection dynamics and error threshold in an evolutionary model for Turing machines |
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 |