一种数值程序蜕变关系的自动识别方法

文档序号:1964422 发布日期:2021-12-14 浏览:12次 >En<

阅读说明:本技术 一种数值程序蜕变关系的自动识别方法 (Automatic identification method for numerical program metamorphic relation ) 是由 李萌 王丽君 阳小华 闫仕宇 刘杰 万亚平 李丰源 任长安 陈珍平 谢金森 赵鹏 于 2021-08-18 设计创作,主要内容包括:本发明提出了一种数值程序蜕变关系(Metamorphic Relation,MR)的自动识别方法,包括以下步骤:(1)基于问题域的输入模式分析;(2)基于随机方法的初始测试输入生成;(3)基于基因表达式编程(Gene Expression Programming,GEP)的输出模式挖掘。本发明将蜕变关系的识别分解为输入模式分析和输出模式挖掘两个步骤,降低了蜕变关系识别难度。依据数值程序特点,给出四种输入模式的识别途径,避免随意地构造蜕变关系的问题;运用领域知识建立对验证有意义的输入模式,克服解空间庞大,求解效率低的问题;引入GEP自动搜索输出模式,克服MR识别结果随机性大、有效性低的问题。(The invention provides an automatic identification method of numerical program Metamorphic Relation (MR), which comprises the following steps: (1) problem domain based input pattern analysis; (2) generating initial test input based on a random method; (3) output pattern mining based on Gene Expression Programming (GEP). The method decomposes the identification of the metamorphic relation into two steps of input mode analysis and output mode mining, and reduces the difficulty of metamorphic relation identification. According to the characteristics of a numerical program, identification ways of four input modes are provided, and the problem of constructing a metamorphic relation at will is avoided; an input mode which is meaningful for verification is established by applying domain knowledge, and the problems of huge solution space and low solution efficiency are solved; and a GEP automatic search output mode is introduced, so that the problems of high randomness and low effectiveness of an MR identification result are solved.)

一种数值程序蜕变关系的自动识别方法

技术领域

本发明涉及计算机算法技术领域,具体涉及一种数值程序蜕变关系的自动识别方法。

背景技术

采用数值模拟的核设计与安全分析软件、航发动力设计仿真软件等科学计算、工业设计类软件,由于需要求解复杂的偏微分方程,通常没有解析解,普遍存在预期结果难以构造或构造成本极高问题,称为软件测试的Oracle问题。传统测试方法采用实际结果与预期结果直接对比的方式验证被测程序,Oracle问题使其难以对上述软件实施充分测试。缺乏充分的测试,软件质量难以保证。

蜕变测试(metamorphic testing,MT)是目前公认的解决Oracle问题的有效方法之一,它通过考察程序多次执行时输入与输出之间是否满足蜕变关系(metamorphicrelation,MR)来间接地实施验证。例如,假设被测程序P实现了正弦函数sin,由sin的周期性可得蜕变关系:sin(x)=sin(x+2π),生成一个随机值x1作为初始测试用例(Source TestCase,STC),由x1+2π得到x2作为后续测试用例(Follow-up Test Case,FTC),比较P(x1)与P(x2),如果相等则P通过测试,否则P未通过测试。一条蜕变关系由输入模式与输出模式组成,如上例中的x2=x1+2π和P(x2)=P(x1)。

蜕变关系是蜕变测试的核心,目前MR识别方法可分为静态和动态两大类。前者基于被测软件的领域知识,如物理规律、物理方程、数值求解算法、程序算法等,采用人工分析、推导MR;后者通过数据挖掘或基于搜索的方法从被测程序运行数据中寻找稳定模式,从而识别出蜕变关系,如假设MR为二次多项式,运用粒子群算法搜索多项式系数等。

静态识别技术准确性高,大多能用领域知识对MR给出合理解释,但是(1)即使领域专家也认为获取蜕变关系较为困难;(2)大多以手工、随意的方式得到蜕变关系,效率低、成本高,难以大规模推广。

动态识别技术不需要领域知识,现行方法是将输入模式与输出模式作为一个整体来求解,如假设被测程序P只有一个输入参数x和一个输出参数y,输入模式为线性关系x2=ax1+b,当输出模式取线性关系时,MR表示为c1P(x1)+c2P(ax1+b)+d=0,当输出模式取二次多项式时,MR表示为

c1P2(x1)+c2P(x1)P(ax1+b)+c3P2(ax1+b)+d1P(x1)+d2P(ax1+b)+e=0

显然,即使P只有一个输入参数,求解二次多项式MR的搜索空间与计算量也是相当大的。

同时,方法的有效性很大程度上受到数据集的影响,因缺乏领域专家指导,数据集的生成通常具有较大的随机性或盲目性,使得数据集中存在大量对软件验证无意义的输入/输出,难以对解空间进行有效压缩,求解效率低。由于基于搜索的方法其搜索方向是随机的,这就导致即使存在MR,也有可能错过,并且使得MR识别结果存在较大随机性,因此,通常采用多次重复上述过程来提高发现MR的可能性。

发明内容

本发明的目的在于提出一种数值程序蜕变关系的自动识别方法,降低MR识别难度,克服MR识别随机性问题,避免采用随意的方式得到MR,提高求解效率。

本发明的技术方案是这样实现的:

本发明提供一种数值程序蜕变关系的自动识别方法,包括以下步骤:

(1)基于问题域的输入模式分析;

(2)基于随机方法的初始测试输入生成;

(3)基于GEP的输出模式挖掘。

作为本发明的进一步改进,具体方法如下:

(1)依据领域背景知识,从模型数学性质、数值算法性质、输入参数数据变异、已有模式的复合四种途径来分析、推导、识别输入模式;

(2)随机生成一批初始测试输入,根据输入模式生成相应的后续测试输入,构成输入偶对;

(3)使用输入偶对驱动被测程序执行,得到输出结果偶对;

(4)结合初等函数与领域背景知识来分析、推导GEP符号表达式的函数算子;

(5)依据预设的函数算子,采用GEP技术从输出结果偶对中挖掘输出模式;

(6)由输入模式与输出模式共同构成蜕变关系。

作为本发明的进一步改进,所述数学性质包括物理模型与数值求解方法的单调性、周期性、奇偶性、对称性。

作为本发明的进一步改进,若存在单调性,则构造单调增长x1<x2或递减x1>x2的输入偶对(x1,x2);若存在周期性T,则构造输入偶对(x1,x2=x1+T);若存在奇偶性,则构造符号相反的输入偶对(x1,x2=(-1)x1);若存在对称性,且关于直线x=a对称,则构造输入偶对(x1,x2=2a-x1)。

作为本发明的进一步改进,所述算法性质为分析数值算法参数,包括坐标点、步长;通过设置不同的参数值来构造输入模式。

作为本发明的进一步改进,所述输入参数数据变异为对原始数据进行变异操作,通过在初始输入上应用数据变异算子构造输入模式。

作为本发明的进一步改进,所述数据变异算子选自INC(自增1)、DEC(自减1)、ADD(加上一个常数)、SUB(减去一个常数)、DIV(倒数,如果值为0则不变)、MUL(乘上常数)、NEG(符号取负)中的至少一种。

作为本发明的进一步改进,所述复合输入模式为对已有输入模式进行复合运算得到新输入模式。

本发明具有如下有益效果:本发明将蜕变关系的识别分解为输入模式分析和输出模式挖掘两个步骤,降低了蜕变关系识别难度。依据数值程序特点,给出四种输入模式的识别途径,避免了随意地构造蜕变关系的问题;运用领域知识建立对验证有意义的输入模式,克服了解空间庞大,求解效率低的问题;引入GEP自动搜索输出模式,克服了MR识别结果随机性大、有效性低的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明蜕变关系识别算法的示意图。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于数值程序的大多数参数为数值型变量,有利于动态方法的自动计算,对于少量非数值型参数,可以映射为整数将其转化为数值型。本发明是一种适用于数值程序的MR动态识别技术。

因为蜕变关系本质上是输入模式和输出模式的蕴涵关系,所以提出一种“输入模式与输出模式分离”的蜕变关系识别方法。本发明通过数值程序领域知识分析、推导输入模式,然后随机生成初始输入,运用输入模式建立后续输入,组成蜕变测试的输入偶对,执行被测程序得到实际输出,然后应用基因表达式编程技术(Gene Expression Programming,GEP)来挖掘初始输出与后续输出之间隐藏的输出模式,进而得到蜕变关系。

GEP是费雷拉(Ferreira)借鉴生物遗传进化算法的提出的一种基于基因型和表现型的数据挖掘方法,常用于符号表达式回归,即从输入数据x和输出数据y中寻找符号表达式,使得y=f(x)与数据拟合得最好。研究表明,当变异概率取0.6-1时,GEP挖掘成功率达到20%-80%,只要数据中存在模式,GEP就一定能找到,确保了识别结果的稳定性,因此非常适合用于解决MR识别结果随机性大的难题。

由于分析了领域知识,得到了对验证有意义的输入模式,如倍数x2=3x1,符号取反x2=-x1,倒数x2=1/x1等,所以建立蜕变测试输入偶对时避免了盲目性,并且,与完全随机方法相比,约简了解空间;同时,对于输出模式,只需给定可能出现的函数算子,如加法、幂函数等,GEP就会搜索由这些算子构成的f(x)的候选形式,如f(x)=x2+x或f(x)=x等,使得f(x)与输出结果偶对拟合得最好。研究表明,良性结构的基因经过查删改等一系列随机遗传操作后得到的基因还是一个合法的基因,确保识别结果的有效性。

具体地,本方法中蜕变关系识别由三个步骤组成:(1)基于问题域的输入模式分析;(2)基于随机方法的初始测试输入生成;(3)基于GEP的输出模式挖掘。算法流程图如图1所示。

算法执行过程如下:

(1)依据领域背景知识,从模型数学性质、数值算法性质、输入参数数据变异、已有模式的复合四种途径来分析、推导、识别输入模式;

(2)随机生成一批初始测试输入,根据输入模式生成相应的后续测试输入,构成输入偶对;

(3)使用输入偶对驱动被测程序执行,得到输出结果偶对;

(4)结合初等函数与领域背景知识来分析、推导GEP符号表达式的函数算子;

(5)依据预设的函数算子,采用GEP技术从输出结果偶对中挖掘输出模式;

(6)由输入模式与输出模式共同构成蜕变关系。

根据数值程序的特点,可从以下四个方面来分析输入模式:

(1)数学性质。重点考察物理模型与数值求解方法的单调性、周期性、奇偶性、对称性。若存在单调性,则构造单调增长x1<x2或递减x1>x2的输入偶对(x1,x2);若存在周期性T,则构造输入偶对(x1,x2=x1+T);若存在奇偶性,则构造符号相反的输入偶对(x1,x2=(-1)x1);若存在对称性,且关于直线x=a对称,则构造输入偶对(x1,x2=2a-x1)。

(2)算法性质。重点分析数值算法参数,如坐标点、步长等,通过设置不同的参数值来构造输入模式,如调整起始坐标变更所在象限、修改步长影响迭代次数等。

(3)数据变异。数据变异是对原始数据值实施变异操作产生新数据的过程,蜕变关系中的输入模式可以视作是对原始数据进行一种变异操作,通过在初始输入上应用数据变异算子构造输入模式,常用算子如表1所示。

表1数据变异算子

序号 算子名 描述
1 INC 自增1
2 DEC 自减1
3 ADD 加上一个常数
4 SUB 减去一个常数
5 DIV 倒数,如果值为0则不变
6 MUL 乘上常数
7 NEG 符号取负

(4)输入模式的复合。如果将输入模式看作函数关系,则输入模式的复合可以看作函数的复合。对已有输入模式进行复合运算得到新输入模式,如两条输入模式分别为x2=(-1)x1和x2=3x1,通过复合得到x2=(-1)*3x1

实施例1

以正弦函数sin为例。

(1)由周期性可得输入模式r1:x2=x1+2π,由对称性可得r2:x2=π-x1,由奇函数性质得r3:x2=-x1

(2)在[0,1]范围随机生成100个初始测试输入Istc=Random(0,1,100),根据r1生成相应的后续测试输入Iftc={Istc+2π},构成输入偶对(Istc,Iftc),其它输入模式依此类推;

(3)使用输入偶对驱动被测程序Psin执行,得到输出结果偶对(Psin(Istc),Psin(Iftc));

(4)预设GEP的函数算子为Op={+,-,×,/,x2};

(5)依据Op,采用GEP技术从输出结果偶对中挖掘输出模式,采用和方差(The sumof squares due to error,SSE)作为适应度函数来评价输出模式质量,数值越小越好,GEP主要参数为种群大小100、变异概率0.05、进化代数200,结果如下表2;

表2

(5)由输入模式与输出模式共同构成蜕变关系,如表3。

表3

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于脉冲的量子门实现方法及装置、电子设备和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!