[发明专利]基于遗传算法的消息传递接口程序分支覆盖测试方法有效
申请号: | 201911343498.0 | 申请日: | 2019-12-24 |
公开(公告)号: | CN111459790B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 巩敦卫;孙百才;沈鑫;杜莹;潘峰;姚香娟;田甜 | 申请(专利权)人: | 中国矿业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/126;G06N3/006 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 221116 江苏省徐州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 遗传 算法 消息 传递 接口 程序 分支 覆盖 测试 方法 | ||
1.基于遗传算法的消息传递接口程序分支覆盖测试套件生成方法,其特征在于,该方法包括如下步骤:
步骤(1):记一个消息传递接口程序为P={p0,p1,...,pm-1},其中,pi表示P中的第i个进程,i=0,1,...,m-1,m表示进程数;将用于收集覆盖信息的探针插入到进程pi的所有分支中,并基于这些探针,定义如式(1)所示的最小归一化分支距离:
上式中,表示进程pi中第j个分支,T={t1,t2,...,tN}表示包含N个测试数据tk的候选测试套件,k=1,2,...,N,T也表示一个进化个体,用于覆盖进程pi中所有分支,以及表示T覆盖的最小分支距离;
步骤(2):基于公式(1),进程pi中的分支总数,以及候选测试套件T实际覆盖的进程pi中分支数,设计如公式(2)所示的目标函数,用于评价种群中个体的目标函数值:
上式中,Mi是指进程pi中所有分支总数,是指以T执行程序时进程pi中被覆盖的分支数,以及为进程pi的分支集合;
步骤(3):使用遗传算法生成进化个体,并基于设计的目标函数,计算这些个体的目标函数值,以此引导后续种群按照如下操作进行交叉与变异:
交叉鉴于每一进化个体由N个测试数据组成,基于两个父进化个体P1与P2,生成两个后代O1和O2的步骤如下:一方面,生成介于[0,1]之间的伪随机数α,如果α小于交叉概率,那么生成介于[0,1]之间的伪随机数λ,并将P1中前λ·N个测试数据,以及P2中最后(1-λ)·N个测试数据遗传给O1;另一方面,将P2中前λ·N个测试数据,以及P1中最后(1-λ)·N个测试数据遗传给O2;
变异针对进化个体包含的每一测试数据,生成介于[0,1]之间的伪随机数β,如果β小于变异概率,那么任选该测试数据的一个基因位,并反转所选择基因位的0或1值;
步骤(4):使用遗传算法进化生成测试套件的过程中,当目标函数值为0时,对应的进化个体即为覆盖消息传递接口程序所有分支的测试套件;当覆盖所有分支的测试套件已生成或是达到设定的最大进化代数时,算法终止,输出结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国矿业大学,未经中国矿业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911343498.0/1.html,转载请声明来源钻瓜专利网。