一种基于风险策略和多样性策略的Simulink测试方法技术

技术编号:30901692 阅读:11 留言:0更新日期:2021-11-22 23:45
本发明专利技术公开了一种基于风险策略和多样性策略的Simulink测试方法,具体步骤包括:收集测试用例;对生成的测试用例进行处理:统计每个测试用例中出现的Simulink模块名以及出现的次数;对关键词向量进行建模:将所有测试用例中出现的Simulink模块名构成一个关键词词典,并记录每个关键词出现的次数,将出现次数低于设定阈值的关键词删除;构建关键词矩阵KV、风险向量RV以及距离矩阵DM;使用基于风险向量RV的风险策略Dan、基于距离矩阵DM的多样性策略Var、以及结合了上述两种策略的多样性风险混合策略VarDan对Simulink测试用例进行优先化排序。优先化排序。优先化排序。

【技术实现步骤摘要】
一种基于风险策略和多样性策略的Simulink测试方法


[0001]本专利技术涉及测试用例的选择与排序领域,尤其涉及一种基于风险策略和多样性策略的Simulink测试方法。

技术介绍

[0002]芯片被称为“工业粮食”,是制造业的核心技术。随着国家对于芯片产业的不断重视,芯片设计产业正处于蓬勃发展之中。EDA是芯片设计必需、也是最重要的软件工具,因此如何实现高效稳定的EDA至关重要。Simulink作为一款使用广泛的电路设计EDA,人们对其能正常执行并达到预期效果的需求日益迫切。
[0003]近年来,已经提出了一些方法来促进自动化Simulink测试。这些技术依赖于一些测试用例生成工具(如SLforge)来生成大量的测试程序,通过运行这些生成的测试程序来检测Simulink差错。常见的方法有,通过LSTM学习SLforge基于规则生成的测试用例,批量生成新的测试用例,这些基于学习生成的测试用例比基于规则生成的测试用例更具随机性,更有可能查找到Simulink差错。还有一些研究,对已有的Simulink模型执行SLEMI变异,通过对测试用例中的僵尸块进行处理生成新的测试用例。具体的做法是首先通过预处理得到每个块的覆盖信息,识别嵌套的动态僵尸块。之后针对不同的情况有以下三种处理方式:(1)对于嵌套的僵尸块,删掉该块再将块前和块后连接。(2)对顶级僵尸块采取替换的方式,并确保替换的块有相同的采样时间。(3)否则,对活动层次执行变异。最后再通过对变异前的测试用例和新生成的测试用例进行差分测试来检测Simulink差错。该Simulink测试技术存在严重的效率问题,因为它们通常需要生成大量的Simulink模型并不断的对其进行测试,故需要很长的时间才能发现Simulink差错。虽然其只需要通过对已有测试用例执行EMI变异来查找Simulink差错,但是变异的手法较为单一,无法发现更为多样的差错类型。

技术实现思路

[0004]根据现有技术存在的问题,本专利技术公开了一种基于风险策略和多样性策略的Simulink测试方法,具体包括如下步骤:
[0005]收集测试用例,采用Simulink程序随机生成工具Slforge从而生成测试用例,通过差错检测程序判断是否造成Simulink崩溃,若发现Simulink差错则将其标记为fault;
[0006]对生成的测试用例进行处理:统计每个测试用例中出现的Simulink模块名以及出现的次数;
[0007]对关键词向量进行建模:将所有测试用例中出现的Simulink模块名构成一个关键词词典,并记录每个关键词出现的次数,将出现次数低于设定阈值的关键词删除;
[0008]构建关键词矩阵KV、风险向量RV以及距离矩阵DM;
[0009]对测试用例进行优先化处理:使用基于风险向量RV的风险策略Dan、基于距离矩阵DM的多样性策略Var、以及结合了上述两种策略的多样性风险混合策略VarDan对Simulink测试用例进行优先化排序。
[0010]所述构建关键词矩阵KV时:
[0011]为每个测试用例构建一个关键词向量tr
i
=(e
i,1
,e
i,2
,...,e
i,m
),其中m为关键词词典中的关键词的个数;如果第i个测试用例在关键词词典中包含第j个关键词,则e
i,j
=1,否则e
i,j
=0,KV是一个n
×
m矩阵,n表示有n个测试用例,m表示关键词词典中有m个关键词。
[0012]所述构建风险向量RV时:统计关键词向量tr
i
中1的个数,并将其作为测试用例中的风险值,用表示,通过计算出每个测试用例的风险值,从而构建出由n个错误报告形成的风险向量RV。
[0013]所述构建距离矩阵DM时:基于关键词矩阵KV计算每对测试用例的距离,对于两个关键词向量tr
i
和tr
k
,将对应位置j中e
i,j
和e
k,j
不同值的个数计为距离D(tr
i
,tr
k
),通过计算出每对测试用例的距离从而构建出距离矩阵DM。
[0014]采用风险策略Dan对Simulink测试用例进行优先化排序时:选择风险值RV(i)最高的测试用例tr
i
,将其放入有序队列QTR中,并将该测试用例从tr中删除,再从tr剩下的测试用例中选择风险值RV(i)最高的测试用例tr
i
,重复上述操作,直到tr长度为0时为止。
[0015]采用多样性策略Var对Simulink测试用例进行优先化排序时:选择风险值最高的测试用例tr
i
放入QTR中,并将其从tr中删除,再从tr中选择距离QTR最远,即D(tr,QTR)最大的测试用例tr
j
放入QTR中,同样将其从tr中删除,重复上述操作,直到TR长度为0时停止。
[0016]采用多样性风险混合策略VarDan对Simulink测试用例进行优先化排序时:选择风险值最大的测试用例进行检查,将其放入QTR中并从tr中删除,通过选择tr和QTR中D(tr,QTR)最大的前n
c
个未测试用例来构建候选集合CTR,选择CTR中风险最大的测试用例tr
j
进行检查,将其添加到QTR队列中,并从tr中删除,如果该测试用例被标记为fault,且δ>0,关键词向量KV将更新,风险值RV也将更新,之后重复上述操作,直到tr长度为0时停止。
[0017]由于采用了上述技术方案,本专利技术提供的一种基于风险策略和多样性策略的Simulink测试方法,该方法利用了两个关键策略:多样性策略Var来帮助检查各种各样的测试用例,避免测试重复的错误分类上;风险策略Dan帮助识别更有可能揭示错误的测试用例。通过将两种策略结合,从而尽可能早,并且尽可能多的发现错误。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本专利技术中方法的流程图
[0020]图2为本专利技术中Simulink模型文件示意图
[0021]图3为本专利技术中Simulink模型示意图
[0022]图4为本专利技术中Simulink常见模块示意图
[0023]图5为本专利技术中示例的关键词字典示意图
[0024]图6为本专利技术中示例的关键词矩阵示意图
[0025]图7为本专利技术中示例的距离矩阵示意图
具体实施方式
[0026]为使本专利技术的技术方案和优点更加清楚,下面结合本专利技术实施例中的附图,对本专利技术实施例中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于风险策略和多样性策略的Simulink测试方法,其特征在于包括:收集测试用例,采用Simulink程序随机生成工具Slforge从而生成测试用例,通过差错检测程序判断是否造成Simulink崩溃,若发现Simulink差错则将其标记为fault;对生成的测试用例进行处理:统计每个测试用例中出现的Simulink模块名以及出现的次数;对关键词向量进行建模:将所有测试用例中出现的Simulink模块名构成一个关键词词典,并记录每个关键词出现的次数,将出现次数低于设定阈值的关键词删除;构建关键词矩阵KV、风险向量RV以及距离矩阵DM;对测试用例进行优先化处理:使用基于风险向量RV的风险策略Dan、基于距离矩阵DM的多样性策略Var、以及结合了上述两种策略的多样性风险混合策略VarDan对Simulink测试用例进行优先化排序。2.根据权利要求1所述的方法,其特征在于:所述构建关键词矩阵KV时:为每个测试用例构建一个关键词向量tr
i
=(e
i,1
,e
i,2
,...,e
i,m
),其中m为关键词词典中的关键词的个数;如果第i个测试用例在关键词词典中包含第j个关键词,则e
i,j
=1,否则e
i,j
=0,KV是一个n
×
m矩阵,n表示有n个测试用例,m表示关键词词典中有m个关键词。3.根据权利要求1所述的方法,其特征在于:所述构建风险向量RV时:统计关键词向量tr
i
中1的个数,并将其作为测试用例中的风险值,用表示,通过计算出每个测试用例的风险值,从而构建出由n个错误报告形成的风险向量RV。4.根据权利要求2所述的方法,其特征在于:所述构建距离矩阵DM时:基于关键词矩阵KV计算每对测试用例的距离...

【专利技术属性】
技术研发人员:郭世凯汪海博王倩李孟儇李宇龙宋子煊
申请(专利权)人:大连海事大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1