[发明专利]一种并发程序噪声注入方法有效

专利信息
申请号: 201910347672.2 申请日: 2019-04-28
公开(公告)号: CN110083538B 公开(公告)日: 2022-09-30
发明(设计)人: 孙家泽;王丹;阳伽伟 申请(专利权)人: 西安邮电大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 暂无信息 代理人: 暂无信息
地址: 710121 陕西*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 并发 程序 噪声 注入 方法
【权利要求书】:

1.一种并发程序噪声注入方法,其特征在于包括以下几个步骤:

步骤一:针对一个待测的并发程序P,假设程序P中有m个共享变量,执行测试用例集运行待测程序P,统计程序P运行过程中各个共享变量被访问的次数,根据各共享变量被访问的次数由高到低对共享变量进行排序:v1,v2,...,vm,其中v1为被访问次数最多的共享变量,vm为被访问次数最少的共享变量,i为1到m之间的任意一个整数值,vi表示程序P运行过程中各共享变量根据被访问次数由高到低排序后排名第i的共享变量;

步骤二:访问共享变量的每个程序位置称作一个事件,假设被测程序P中与共享变量vi(1=i=m)相关的事件有n个:li1,li2,...,lij,...,lin,其中li1为与共享变量vi相关的第1个事件,lij为与共享变量vi相关的第j个事件,lin为与共享变量vi相关的第n个事件,j为1到n之间的任意一个整数值,令i=1,令j=1;

步骤三:针对被测程序P中与共享变量vi(1=i=m)相关的n个事件li1,li2,...,lij,...,lin,每一个事件都计算该事件注入噪声的概率:

(1)针对每一个事件lij(1=j=n),确定考查因子k,k值的选取方法为:当1=n=3时,令k=1;当3n=10时,令k=2;当10n=30时,令k=3;当30n=100时,令k=4;当n100时,令k=5;生成一个0-1000之间的随机数r,在事件lij和随机选取其他k-1个事件后插入噪声语句Thread.sleep(r),执行测试用例集重复运行程序w次,一般情况下令w=100,统计程序在运行过程中出现新的线程交织的次数c,进而得出事件lij增加并发交织的概率pij=c/w;

(2)根据事件lij增加并发交织的概率pij,确定在事件lij处插入噪声的概率fij:当pij=0.2时,令fij=1;当0.15=pij0.2时,令fij=0.9;当0.1=pij0.15时,令fij=0.7;当0.05=pij0.1时,令fij=0.5;当0pij0.1时,令fij=0.3;当pij=0时,令fij=0;

步骤四:根据上述步骤三得到的噪声注入结果,在与共享变量vi相关的n个事件li1,li2,...,lij,...,lin上分别以fi1,fi2,...,fij,...,fin的概率插入噪声:生成一个0-100之间的随机数r1,生成一个0-1000之间的随机数r2,如果r1=fij*100,在事件lij后插入噪声语句Thread.sleep(r2);

步骤五:针对每一个共享变量vi,执行测试用例集,若即有新的并发交织出现,且im,令i=i+1,重复上述步骤三、步骤四;否则结束整个步骤,完成本方法。

2.根据权利要求书1所述的一种并发程序噪声注入方法,其特征在于:该方法应用于并发程序测试中并发交织覆盖难问题,能够有效地增加并发程序运行过程中出现并发交织数量,提高并发程序测试效率。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910347672.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top