CN112269736B - 多目标并发程序噪声注入群体优化方法 - Google Patents
多目标并发程序噪声注入群体优化方法 Download PDFInfo
- Publication number
- CN112269736B CN112269736B CN202011155668.5A CN202011155668A CN112269736B CN 112269736 B CN112269736 B CN 112269736B CN 202011155668 A CN202011155668 A CN 202011155668A CN 112269736 B CN112269736 B CN 112269736B
- Authority
- CN
- China
- Prior art keywords
- noise
- individual
- iteration
- program
- concurrent
- 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
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)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明针对并发程序噪声注入优化问题,公开了多目标并发程序噪声注入群体优化方法,属于并发程序测试领域。该方法首先对噪声注入编码,采用佳点集方法生成初始种群,并以并发程序执行时出现并发错误的次数与注入噪声的数量作为优化目标;然后求解初始种群中所有非支配解并保留在外部集合中;其次,对种群中的每个个体进行变异、交叉、选择操作生成新一代种群,更新外部集合并记录个体对应的适应度值;最后当达到迭代终止条件时,外部集合中的所有解即为并发程序噪声注入最优解集。本发明提供了一种有效且稳定的并发程序测试多目标噪声注入优化方法,有助于提高并发缺陷测试效率,降低测试代价。
Description
技术领域
本发明属于软件测试技术领域,具体涉及到并发程序噪声注入优化问题,提出了一种多目标并发程序噪声注入群体优化方法。
背景技术
在当前多核处理器充分普及的并发时代,多线程并发程序因其可以显著提高系统的资源利用率、计算速度快等优点得到了广泛的应用,但是由于线程调度交错执行具有不确定性,使得很多并发缺陷难以被发现,这样会增加软件调试和维护的代价。并发程序缺陷的暴露在多线程程序的研究中有着很重要的地位,因为并发缺陷检测、修复、规避的前提是暴露出并发缺陷,如果找到一个可以有效且全面暴露并发缺陷的方法不仅对并发缺陷的研究而且对提高软件质量等其他方面同样有着重要的意义。
为了尽可能多的检测并发错误,国内外众多学者致力于使用噪声注入技术检测并发错误的研究,以此来增加程序在执行期间出现并发错误的可能性,提高测试效率。基于噪声注入的并发缺陷检测技术是按照噪声注入序列对待测并发程序进行噪声注入,噪声注入序列包括噪声注入程序位置、注入的噪声类型。通常并发程序的规模比较庞大,注入的过多的噪声语句数量会使CPU频繁的执行上下文切换,这样不但会增加程序的运行时间开销和降低内存利用率,甚至还有可能会隐藏掉某些并发错误。为此,本发明提出了多目标并发程序噪声注入群体优化方法,该方法可以有效的优化并发程序执行过程中并发错误出现的次数和注入噪声语句的位置数量,使这两个目标达到相对较优。
发明内容
噪声注入技术是指在并发程序中注入如sleep()、wait()、yield()等噪声语句,干扰调度器对线程的调度,强制CPU执行上下文切换,增加并发错误出现的概率。在使用噪声注入序列对待测程序进行噪声注入过程中,目标是使并发程序执行过程中并发错误出现的次数尽可能增多,而注入噪声语句数量要尽可能减少。
本发明为多目标并发程序噪声注入群体优化方法,如图1所示,该方法的特征包括以下步骤:
步骤一:针对一个噪声注入序列Ti,使用L={1,2,...,i,...,m}表示被测并发程序的m个程序语句位置,其中i∈L,1≤i≤m,使用inject∈{0,1,2,3}表示某个程序语句位置是否注入噪声以及注入的噪声类型,当inject=0时表示该程序位置不注入噪声,inject=1时表示在该程序位置注入sleep()噪声,inject=2时表示在该程序位置注入wait()噪声,inject=3时表示在该程序位置注入yield()噪声,Ti是由噪声注入的程序位置与注入的噪声类型的有序序列组成,首先采用佳点集产生种群规模为N的初始种群集合PT,并根据噪声注入序列对被测并发程序进行噪声注入;
步骤二:使用被测并发程序在运行过程中出现的并发错误次数与注入的噪声数量作为优化目标函数f1与f2,其中f1、f2的定义域为PT,值域为实数,当f1的值越大f2的值越小时,说明该噪声注入序列更加优良,对于个体T1和T2,T1,T2∈PT,求解PT中所有满足f1(T1)>f1(T2)并且f2(T1)>f2(T2),或者f1(T1)<f1(T2)并且f2(T1)<f2(T2)帕累托支配关系的非支配解个体,并将求解得到的所有非支配解个体保存到外部非支配解集P_set中,其余个体保存在非帕累托集NP_set中,设定种群规模N、缩放因子F、交叉概率CR以及最大迭代次数,令迭代次数i=1,开始迭代;
步骤三:在第i次迭代中,从种群中随机选取三个个体Tr1(i),Tr2(i),Tr3(i)且r1≠r2≠r3,对于P_set中的个体Tm(i)=(Tm,1(i),Tm,2(i),...,Tm,n1(i))生成变异向量Hm(i):
Hm(i)=Tm,r1(i)+F×(Tm,r2(i)-Tm,r3(i))
对于NP_set中的个体Tn(i)=(Tn,1(i),Tn,2(i),...,Tn,n2(i))生成变异向量Hn(i):
Hn(i)=Tgbest(i)+F×(Tm,r2(i)-Tm,r3(i))
其中Tgbest(i)为当前种群中适应度值最好的个体,F∈[0,2]为缩放因子,用于调节向量差异的步长幅值以避免进化过程出现停滞;
步骤四:在第i次迭代中,从NP_set和P_set中分别随机选择个体进行交叉操作,即对于群体中第i代第n个个体Tn(i)与第第i代第k个变异向量Hk(i),首先至少随机选择变异向量Hk(i)中的一维变量作为交叉向量Vn的D维变量,对于其他维变量,可利用交叉概率CR决定交叉向量Vn中各基因位分别由Tn(i)或Hk(i)中的哪个提供,交叉操作的具体形式为:
其中,rand()为[0,1]之间均匀分布的随机数,CR∈[0,1];
步骤五:在第i次迭代中,对于交叉后个体Vn(i)与原个体Tn(i),求解二者是否互为支配关系,若交叉后个体Vn(i)支配原个体Tn(i),则将交叉后个体Vn(i)加入到P_set中;若原个体Tn(i)支配交叉后个体Vn(i),则将原个体作为选择后的个体加入到P_set;
步骤六:根据帕累托最优条件更新外部非支配解集P_set,两两比较P_set中的个体,将不是非支配解个体删除,使更新后的P_set中均为非支配解,记录本次迭代后的P_set中所有个体的并发错误次数与插入噪声的数量;
步骤七:判断终止条件,迭代的终止条件是当前迭代次数大于最大迭代次数,若迭代终止条件成立,那么此时外部非支配解集P_set为多目标噪声注入优化问题的最优解集,输出该解集并停止迭代;否则,令迭代次数i=i+1,返回步骤三。
附图说明
附图1为多目标并发程序噪声注入群体优化方法的流程图。
附图2为多目标并发程序噪声注入不同方法的平均并发错误出现次数对比图。
附图3为并发错误出现次数随噪声注入数量变化的散点图。
具体实施方式
以经典基准程序“Airlines”的噪声注入优化为例,结合附图1对本发明提出的多目标并发程序噪声注入群体优化方法的具体实施方式进行说明。
步骤一:针对一个噪声注入序列Ti,使用L={1,2,...,i,...,3054}表示被测并发程序的3054个程序语句位置,其中i∈L,1≤i≤3054,使用inject∈{0,1,2,3}表示某个程序语句位置是否注入噪声以及注入的噪声类型,当inject=0时表示该程序位置不注入噪声,inject=1时表示在该程序位置注入sleep()噪声,inject=2时表示在该程序位置注入wait()噪声,inject=3时表示在该程序位置注入yield()噪声,Ti是由噪声注入的程序位置与注入的噪声类型的有序序列组成,首先采用佳点集方法产生种群规模为100的初始种群集合PT,并根据噪声注入序列对被测并发程序进行噪声注入;
步骤二:使用被测准程序“Airlines”在运行过程中出现的并发错误次数与注入的噪声数量作为优化目标函数f1与f2,其中f1、f2的定义域为PT,值域为实数,当f1的值越大f2的值越小时,说明该噪声注入序列更加优良,对于个体T1和T2,T1,T2∈PT,求解PT中所有满足f1(T1)>f1(T2)并且f2(T1)>f2(T2),或者f1(T1)<f1(T2)并且f2(T1)<f2(T2)帕累托支配关系的非支配解个体,并将求解得到的所有非支配解个体保存到外部非支配解集P_set中,其余个体保存在非帕累托集NP_set中,设定种群规模N=100,缩放因子F=0.5,交叉概率CR=0.5以及最大迭代次数,令迭代次数i=1,开始迭代;
步骤三:在第i次迭代中,从种群中随机选取三个个体Tr1(i),Tr2(i),Tr3(i)且r1≠r2≠r3,对于P_set中的个体Tm(i)=(Tm,1(i),Tm,2(i),...,Tm,n1(i))生成变异向量Hm(i):
Hm(i)=Tm,r1(i)+F×(Tm,r2(i)-Tm,r3(i))
对于NP_set中的个体Tn(i)=(Tn,1(i),Tn,2(i),...,Tn,n2(i))生成变异向量Hn(i):
Hn(i)=Tgbest(i)+F×(Tm,r2(i)-Tm,r3(i))
其中Tgbest(i)为当前种群中适应度值最好的个体;
步骤四:在第i次迭代中,从NP_set和P_set中分别随机选择个体进行交叉操作,即对于群体中第i代第n个个体Tn(i)与第第i代第k个变异向量Hk(i),首先至少随机选择变异向量Hk(i)中的一维变量作为交叉向量Vn的D维变量,对于其他维变量,可利用交叉概率CR决定交叉向量Vn中各基因位分别由Tn(i)或Hk(i)中的哪个提供,交叉操作的具体形式为:
其中,rand()为[0,1]之间均匀分布的随机数,CR∈[0,1];
步骤五:在第i次迭代中,对于交叉后个体Vn(i)与原个体Tn(i),求解二者是否互为支配关系,若交叉后个体Vn(i)支配原个体Tn(i),则将交叉后个体Vn(i)加入到P_set中;若原个体Tn(i)支配交叉后个体Vn(i),则将原个体作为选择后的个体加入到P_set;
步骤六:根据帕累托最优条件更新外部非支配解集P_set,两两比较P_set中的个体,将不是非支配解个体删除,使更新后的P_set中均为非支配解,记录本次迭代后的P_set中所有个体出现的并发错误次数与插入噪声的数量;
步骤七:判断终止条件,本方法的迭代终止条件是当前迭代次数大于最大迭代次数MAX=100,若迭代终止条件成立,那么此时外部非支配解集P_set为多目标噪声注入优化问题的最优解集,输出该解集并停止迭代;否则,令迭代次数i=i+1,返回步骤三。例如,第100次迭代后,输出的最优噪声注入序列为(43,1)(295,3)(1256,1)(2865,3)(3145,3)(98,2)(365,2)(1345,2)(1963,2)(3241,1)(123,1)(365,2)(1345,2)(2245,3)(2936,2)(98,2)(421,1)(1856,3)(2547,1)(3145,3)(43,1)(214,2)(2105,1)(2547,1)(2714,1)(96,3)(254,3)(1756,3)(3012,2)(3041,3)
通过以上过程可以实现多目标并发程序噪声注入群体优化方法,针对基准程序“Airlines”,使用RN方法、GA方法与本发明中的方法分别进行10次实验,图2是10次实验中,迭代100次的并发错误出现次数平均值,从图2可以看出,本方法可以得到并发错误出现次数更多的噪声注入序列;针对基准程序“Airlines”使用本发明中的方法独立进行5次,图3是5次实验中,迭代100次并发错误出现次数随噪声注入数量变化的散点图,从图3可以看出,本方法得到的实验结果相对集中,因此本方法在噪声注入优化时是稳定的。
Claims (1)
1.多目标并发程序噪声注入群体优化方法,其特征在于包括以下步骤:
步骤一:针对一个噪声注入序列Ti,使用L={1,2,...,i,...,m}表示被测并发程序的m个程序语句位置,其中i∈L,1≤i≤m,使用inject∈{0,1,2,3}表示某个程序语句位置是否注入噪声以及注入的噪声类型,当inject=0时表示该程序位置不注入噪声,inject=1时表示在该程序位置注入sleep()噪声,inject=2时表示在该程序位置注入wait()噪声,inject=3时表示在该程序位置注入yield()噪声,Ti是由噪声注入的程序位置与注入的噪声类型的有序序列组成,首先采用佳点集方法产生种群规模为N的初始种群集合PT,并根据噪声注入序列对被测并发程序进行噪声注入;
步骤二:使用被测并发程序在运行过程中出现的并发错误次数与注入的噪声数量作为优化目标函数f1与f2,其中f1、f2的定义域为PT,值域为实数,当f1的值越大f2的值越小时,说明该噪声注入序列更加优良,对于个体T1和T2,T1,T2∈PT,求解PT中所有满足f1(T1)>f1(T2)并且f2(T1)>f2(T2),或者f1(T1)<f1(T2)并且f2(T1)<f2(T2)帕累托支配关系的非支配解个体,并将求解得到的所有非支配解个体保存到外部非支配解集P_set中,其余个体保存在非帕累托集NP_set中,设定种群规模N、缩放因子F、交叉概率CR以及最大迭代次数,令迭代次数i=1,开始迭代;
步骤三:在第i次迭代中,从种群中随机选取三个个体Tr1(i),Tr2(i),Tr3(i)且r1≠r2≠r3,对于P_set中的个体Tm(i)=(Tm,1(i),Tm,2(i),...,Tm,n1(i))生成变异向量Hm(i):
Hm(i)=Tm,r1(i)+F×(Tm,r2(i)-Tm,r3(i))
对于NP_set中的个体Tn(i)=(Tn,1(i),Tn,2(i),...,Tn,n2(i))生成变异向量Hn(i):
Hn(i)=Tgbest(i)+F×(Tm,r2(i)-Tm,r3(i))
其中Tgbest(i)为当前种群中适应度值最好的个体,F∈[0,2]为缩放因子,用于调节向量差异的步长幅值以避免进化过程出现停滞;
步骤四:在第i次迭代中,从NP_set和P_set中分别随机选择个体进行交叉操作,即对于群体中第i代第n个个体Tn(i)与第第i代第k个变异向量Hk(i),首先至少随机选择变异向量Hk(i)中的一维变量作为交叉向量Vn的D维变量,对于其他维变量,可利用交叉概率CR决定交叉向量Vn中各基因位分别由Tn(i)或Hk(i)中的哪个提供,交叉操作的具体形式为:
其中,rand()为[0,1]之间均匀分布的随机数,CR∈[0,1];
步骤五:在第i次迭代中,对于交叉后个体Vn(i)与原个体Tn(i),求解二者是否互为支配关系,若交叉后个体Vn(i)支配原个体Tn(i),则将交叉后个体Vn(i)加入到P_set中;若原个体Tn(i)支配交叉后个体Vn(i),则将原个体作为选择后的个体加入到P_set;
步骤六:根据帕累托最优条件更新外部非支配解集P_set,两两比较P_set中的个体,将不是非支配解个体删除,使更新后的P_set中均为非支配解,记录本次迭代后的P_set中所有个体的并发错误次数与插入噪声的数量;
步骤七:判断终止条件,迭代的终止条件是当前迭代次数大于最大迭代次数,若迭代终止条件成立,那么此时外部非支配解集P_set为多目标噪声注入优化问题的最优解集,输出该解集并停止迭代;否则,令迭代次数i=i+1,返回步骤三。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011155668.5A CN112269736B (zh) | 2020-10-26 | 2020-10-26 | 多目标并发程序噪声注入群体优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011155668.5A CN112269736B (zh) | 2020-10-26 | 2020-10-26 | 多目标并发程序噪声注入群体优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269736A CN112269736A (zh) | 2021-01-26 |
CN112269736B true CN112269736B (zh) | 2022-11-01 |
Family
ID=74341107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011155668.5A Active CN112269736B (zh) | 2020-10-26 | 2020-10-26 | 多目标并发程序噪声注入群体优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269736B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059015A (zh) * | 2019-04-28 | 2019-07-26 | 西安邮电大学 | 种群进化多目标测试用例优先级排序方法 |
CN110083538A (zh) * | 2019-04-28 | 2019-08-02 | 西安邮电大学 | 一种并发程序噪声注入方法 |
CN111563043A (zh) * | 2020-05-11 | 2020-08-21 | 西安邮电大学 | 一种并发程序测试噪声注入优化方法 |
CN111723366A (zh) * | 2019-03-19 | 2020-09-29 | 中国科学院沈阳自动化研究所 | 一种基于状态估计偏差的错误数据注入攻击鲁棒检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160004630A1 (en) * | 2014-07-01 | 2016-01-07 | International Business Machines Corporation | Opportunistic error injection |
US10802953B2 (en) * | 2017-12-01 | 2020-10-13 | Sap Se | Test plan generation using machine learning |
US10902149B2 (en) * | 2018-02-01 | 2021-01-26 | Microsoft Technology Licensing, Llc | Remote testing analysis for software optimization based on client-side local differential privacy-based data |
-
2020
- 2020-10-26 CN CN202011155668.5A patent/CN112269736B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111723366A (zh) * | 2019-03-19 | 2020-09-29 | 中国科学院沈阳自动化研究所 | 一种基于状态估计偏差的错误数据注入攻击鲁棒检测方法 |
CN110059015A (zh) * | 2019-04-28 | 2019-07-26 | 西安邮电大学 | 种群进化多目标测试用例优先级排序方法 |
CN110083538A (zh) * | 2019-04-28 | 2019-08-02 | 西安邮电大学 | 一种并发程序噪声注入方法 |
CN111563043A (zh) * | 2020-05-11 | 2020-08-21 | 西安邮电大学 | 一种并发程序测试噪声注入优化方法 |
Non-Patent Citations (2)
Title |
---|
基于种群自适应调整的多目标差分进化算法;郑建国等;《运筹与管理》;20170625(第06期);全文 * |
面向多目标测试用例优先排序的蚁群算法信息素更新策略;邢行等;《计算机应用》;20160910(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112269736A (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269736B (zh) | 多目标并发程序噪声注入群体优化方法 | |
Previlon et al. | PCFI: Program counter guided fault injection for accelerating GPU reliability assessment | |
Li et al. | Breeding software test data with genetic-particle swarm mixed algorithm. | |
Schönberger et al. | Quantum-inspired digital annealing for join ordering | |
CN111563043B (zh) | 一种并发程序测试噪声注入优化方法 | |
CN110083538B (zh) | 一种并发程序噪声注入方法 | |
CN111124694B (zh) | 一种基于petri网的可达图的死锁检测和解决方法 | |
Condia et al. | Microarchitectural reliability evaluation of a block scheduling controller in gpus | |
CN111797118A (zh) | 大型数据库系统的迭代式多属性索引选择 | |
CN113505017B (zh) | 一种问题排查方法、装置、存储介质和设备 | |
Sthamer et al. | Evolutionary testing of embedded systems | |
Kunz et al. | Runtime efficient event scheduling in multi-threaded network simulation | |
CN111177014B (zh) | 软件自动测试方法、系统及存储介质 | |
CN114722490A (zh) | 一种基于混合增点与区间缩减的代理模型全局优化方法 | |
CN114153494A (zh) | 一种基于热力图的热点代码优化方法及装置 | |
US8521464B2 (en) | Accelerating automatic test pattern generation in a multi-core computing environment via speculatively scheduled sequential multi-level parameter value optimization | |
CN112667957A (zh) | 一种基于深度神经网络的智能电能表失效率预测方法 | |
CN111488496A (zh) | 一种基于滑动窗口的Tango树构建方法及系统 | |
Peng et al. | An Improved Error-Based Pruning Algorithm of Decision Trees on Large Data Sets | |
CN113705112B (zh) | 一种恒温器寿命doe重要因子的识别方法 | |
CN105930096B (zh) | 一种基于PageRank的数据块预缓存方法 | |
CN112364600A (zh) | 一种处理器微架构设计验证方法 | |
Weibo et al. | Risk assessment technology of ship power system based on improved time series algorithm | |
CN108171016B (zh) | 一种线性汇编级的可配置容错方法、计算机、计算机程序 | |
Taht et al. | Dynajet: Dynamic java efficiency tuning |
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 |