CN116804971A - 一种基于信息熵的模糊测试方法 - Google Patents
一种基于信息熵的模糊测试方法 Download PDFInfo
- Publication number
- CN116804971A CN116804971A CN202311057917.0A CN202311057917A CN116804971A CN 116804971 A CN116804971 A CN 116804971A CN 202311057917 A CN202311057917 A CN 202311057917A CN 116804971 A CN116804971 A CN 116804971A
- Authority
- CN
- China
- Prior art keywords
- information entropy
- calculating
- value
- passing rate
- test case
- 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.)
- Granted
Links
- 238000010998 test method Methods 0.000 title claims abstract description 18
- 238000012360 testing method Methods 0.000 claims abstract description 146
- 238000001914 filtration Methods 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 13
- 230000004584 weight gain Effects 0.000 claims description 10
- 235000019786 weight gain Nutrition 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 5
- 230000007547 defect Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供一种基于信息熵的模糊测试方法,包括:步骤一,收集样本,所述样本包括多个不同的会话样本,每个会话样本中包括多个不同的模板,所述模板用于生成测试用例;步骤二,计算信息熵熵值,采用各会话样本的各模板生成多个不同的测试用例,计算各测试用例的信息熵熵值;步骤三,拟合计算信息熵阈值;步骤四,协同过滤,根据所述信息熵阈值对各测试用例进行过滤,将各测试用例的信息熵熵值和所述信息熵阈值进行比较,小于等于所述信息熵阈值的测试用例保留,大于所述信息熵阈值的测试用例丢弃。本发明提供的基于信息熵的模糊测试方法,基于信息熵对测试用例进行了有效的筛选,从而增加了测试的有效性,极大提高了缺陷查找的可能性。
Description
技术领域
本发明实施例涉及模糊测试技术领域,特别是涉及一种基于信息熵的模糊测试方法。
背景技术
近年,随着网络应用的普及,人们越来越关注软件的安全性、稳定性和软件质量问题。然而软件系统也越来越复杂,经过仔细测试的软件系统有时也会有漏洞逃逸。目前,在测试技术领域,通常采用模糊测试的方式来进行模糊用例的生成,实现用例的扩充。相比于一般的信息系统,网络协议在运行中会进入不同的协议状态,不同状态对应不同的输入,因此网络协议的模糊测试过程较为复杂,传统的模糊测试存在以下问题:第一,盲目生成用例,导致测试效果不够可靠;第二,测试用例随机性较强,难以覆盖全部代码。
因此,有必要提供一种基于信息熵的模糊测试方法,可以有效解决上述问题。
发明内容
本发明提供一种基于信息熵的模糊测试方法,基于信息熵对测试用例进行了有效的筛选,从而增加了测试的有效性,极大提高了缺陷查找的可能性。
本发明实施例提供一种基于信息熵的模糊测试方法,包括:
步骤一,收集样本,所述样本包括多个不同的会话样本,每个会话样本中包括多个不同的模板,所述模板用于生成测试用例;
步骤二,计算信息熵熵值,采用各会话样本的各模板生成多个不同的测试用例,计算各测试用例的信息熵熵值;
步骤三,拟合计算信息熵阈值;
步骤四,协同过滤,根据所述信息熵阈值对各测试用例进行过滤,将各测试用例的信息熵熵值和所述信息熵阈值进行比较,小于等于所述信息熵阈值的测试用例保留,大于所述信息熵阈值的测试用例丢弃。
优选地,所述步骤二中,计算各测试用例的信息熵熵值,对于任一待计算测试用例,包括:
获取所述待计算测试用例的模板的参数;
计算所述待计算测试用例中每个字符串的几何平均值;
以所述几何平均值作为随机变量等价类划分;
计算所述待计算测试用例中每个字符串的数学期望;
计算所述随机变量在某一位置出现的概率;
计算所述随机变量在某一位置的增重系数;
根据公式计算所述待计算测试用例的信息熵分量向量;
根据公式计算所述待计算测试用例的平均熵分量向量;
根据所述待计算测试用例的信息熵分量向量与所述待计算测试用例的平均熵分量向量计算所述信息熵熵值。
优选地,所述步骤三中,拟合计算信息熵阈值,包括:
计算横坐标,对于任一会话样本,根据其中各模板的变异字符串原语数求几何平均值,对所有会话样本进行相同操作,得到横坐标序列;
计算纵坐标,对于任一会话样本,根据其中各模板组合生成多个测试用例组合,计算各测试用例组合的信息熵熵值并进行排序,取排名预设位置的信息熵熵值作为目标阈值,对所有会话样本进行相同操作,得到纵坐标序列;
将所述横坐标序列数值与所述纵坐标序列的数值一一组合,形成多个孤立的坐标点,对多个所述孤立的坐标点进行拟合,得到一样平滑的曲线,作为模板组合与阈值的数学关系。
优选地,在所述步骤四,协同过滤,还包括根据通过率对各测试用例进行过滤,所述步骤四中还包括:
计算通过率上限和下限,对于会话样本数在1万以内,则通过率上限为0.75,通过率下限为0.65;
对于会话样本数超过1万时,则通过率上限为,通过率下限为/>。
优选地,所述步骤四中还包括:判断过滤数是否为0,如果过滤数为0,则直接对各测试用例进行判断其信息熵是否小于等于所述信息熵阈值;如果过滤数不为0,则判断通过率是否在所述通过率上限与所述通过率下限之间。
优选地,所述步骤四中,判断通过率是否在所述通过率上限与所述通过率下限之间,包括:
判断通过率是否低于所述通过率下限,如果低于通过率下限,需要动态提高通过率,则调整所述信息熵熵值与所述信息熵阈值相等,提高通过率,然后判断信息熵熵值是否小于等于所述信息熵阈值;
如果高于所述通过率下限,则进一步判断通过率是否高于所述通过率上限,如果高于通过率上限,需要动态降低通过率,则调整所述信息熵熵值减去预设值以作为所述信息熵阈值,降低通过率;
如果在所述通过率上限与所述通过率下限之间,则无需调整,直接判断该用例的信息熵熵值是否小于等于信息熵阈值。
优选地,所述步骤三中,对多个所述孤立的坐标点进行拟合,是采用python numpy模块进行拟合。
优选地,所述待计算测试用例的信息熵分量向量具体通过以下公式进行计算:
,
其中,表示信息熵分量向量,/>表示增重系数,/>表示几何平均值,/>表示概率,/>表示概率的对数,/>表示自然数。
优选地,所述待计算测试用例的平均熵分量向量具体通过以下公式进行计算:
,
其中,表示每个字符串的数学期望,/>表示平均熵分量向量,/>表示概率,表示概率的对数,/>表示自然数。
优选地,所述信息熵熵值具体通过以下公式进行计算:
,
其中,表示信息熵分量向量,/>表示平均熵分量向量,/>表示自然数。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例的基于信息熵熵值的模糊测试方法, 收集样本,所述样本包括多个不同的会话样本,每个会话样本中包括多个不同的模板,所述模板用于生成测试用例;计算信息熵熵值,采用各会话样本的各模板生成多个不同的测试用例,计算各测试用例的信息熵熵值;拟合计算信息熵阈值;协同过滤,根据所述信息熵阈值对各测试用例进行过滤,小于等于所述信息熵阈值的测试用例保留,大于所述信息熵阈值的测试用例丢弃,基于信息熵熵值对测试用例进行了有效的筛选,从而增加了测试的有效性,极大提高了缺陷查找的可能性;
进一步地,获取所述待计算测试用例的模板的参数;计算所述待计算测试用例中每个字符串的几何平均值;以所述几何平均值作为随机变量等价类划分;计算所述待计算测试用例中每个字符串的数学期望;计算所述随机变量在某一位置出现的概率;计算所述随机变量在某一位置的增重系数;根据公式计算所述待计算测试用例的信息熵分量向量;根据公式计算所述待计算测试用例的平均熵分量向量;根据所述待计算测试用例的信息熵分量向量与所述待计算测试用例的平均熵分量向量计算所述信息熵熵值,从而有效得到各测试用例的信息熵熵值;
进一步地,计算横坐标,对于任一会话样本,根据其中各模板的变异字符串原语数求几何平均值,对所有会话样本进行相同操作,得到横坐标序列;计算纵坐标,对于任一会话样本,根据其中各模板组合生成多个测试用例组合,计算各测试用例组合的信息熵熵值并进行排序,取排名预设位置的信息熵熵值作为目标阈值,对所有会话样本进行相同操作,得到纵坐标序列;将所述横坐标序列数值与所述纵坐标序列的数值一一组合,形成多个孤立的坐标点,对多个所述孤立的坐标点进行拟合,得到一样平滑的曲线,作为模板组合与阈值的数学关系,从而得到会话样本的横坐标序列数值和纵坐标序列数值,进一步得到模板组合与阈值的数学关系;
进一步地计算通过率上限和下限,对于会话样本数在1万以内,则通过率上限为0.75,通过率下限为0.65;对于会话样本数超过1万时,则通过率上限为,通过率下限为/>,根据会话样本数的数量设置通过率的上限和下限,从而进一步提高增加了测试的有效性,提高了缺陷查找的可能性;
判断通过率是否低于所述通过率下限,如果低于通过率下限,需要动态提高通过率,则调整所述信息熵熵值与所述信息熵阈值相等,提高通过率,然后判断信息熵熵值是否小于等于所述信息熵阈值;如果高于所述通过率下限,则进一步判断通过率是否高于所述通过率上限,如果高于通过率上限,需要动态降低通过率,则调整所述信息熵熵值减去预设值以作为所述信息熵阈值,降低通过率;如果在所述通过率上限与所述通过率下限之间,则无需调整,直接判断该用例的信息熵熵值是否小于等于信息熵阈值,通过判断通过率的上限和下限,则调整所述信息熵熵值与所述信息熵阈值,从而动态提高通过率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一个实施例提供的基于信息熵的模糊测试方法的流程示意图;
图2为本发明的一个实施例提供的基于信息熵的模糊测试方法的会话样本的示意图;
图3为本发明的一个实施例提供的基于信息熵的模糊测试方法的计算各测试用例的信息熵流程示意图;
图4为本发明的一个实施例提供的基于信息熵的模糊测试方法的拟合计算信息熵阈值流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
基于现有技术存在的问题,本发明提供一种基于信息熵的模糊测试方法,基于信息熵对测试用例进行了有效的筛选,从而增加了测试的有效性,极大提高了缺陷查找的可能性。
图1为本发明的一个实施例提供的基于信息熵的模糊测试方法的流程示意图,图2为本发明的一个实施例提供的基于信息熵的模糊测试方法的流程会话样本的示意图,现在参看图1和图2,本发明实施例提供一种基于信息熵的模糊测试方法,包括:
步骤一S101,收集样本,所述样本包括多个不同的会话样本,每个会话样本中包括多个不同的模板,所述模板用于生成测试用例;
步骤二S102,计算信息熵熵值,采用各会话样本的各模板生成多个不同的测试用例,计算各测试用例的信息熵熵值;
步骤三S103,拟合计算信息熵阈值;
步骤四S104,协同过滤,根据所述信息熵阈值对各测试用例进行过滤,将各测试用例的信息熵熵值和所述信息熵阈值进行比较,小于等于所述信息熵阈值的测试用例保留,大于所述信息熵阈值的测试用例丢弃。
具体地,收集样本,假设有N个样本,分别是:
会话样本1【模板A1,模板A2......模板AM1】
会话样本2【模板B1,模板B2......模板AM2】
会话样本N【模板N1,模板N2......模板AMN】
图3为本发明的一个实施例提供的基于信息熵的模糊测试方法的计算各测试用例的信息熵流程示意图,现在参看图3,在具体实施中,所述步骤二中,计算各测试用例的信息熵熵值,对于任一待计算测试用例,包括:
步骤S301:获取所述待计算测试用例的模板的参数;
步骤S302:计算所述待计算测试用例中每个字符串的几何平均值;
步骤S303:以所述几何平均值作为随机变量等价类划分;
步骤S304:计算所述待计算测试用例中每个字符串的数学期望;
步骤S305:计算所述随机变量在某一位置出现的概率;
步骤S306:计算所述随机变量在某一位置的增重系数;
步骤S307:根据公式计算所述待计算测试用例的信息熵分量向量;
步骤S308:根据公式计算所述待计算测试用例的平均熵分量向量;
步骤S309:根据所述待计算测试用例的信息熵分量向量与所述待计算测试用例的平均熵分量向量计算所述信息熵熵值。
具体地,步骤S301中,获取所述待计算测试用例的模板的参数,假设待计算帧模板实例中,字符串类型字段称作Si,字符串类型字段总数为n,将变异或随机生成获取值的手段,称作Ff,将其他生成获取值的手段,称作Fm,通过Ff而设值的字段总数为f,通过Fm而设值的字段总数为m(m=n-f),以下的举例参数:n=8,f=1,m=7,一条模板帧实例包含的八个字符串字段分别是username:“root”、password:“admin”、t1:“+++++”,t2:“bbb”,t3:“ccc”、t4:“ddd”、t5:“eee”、t6:“fff”,其中t1为变异字段Ff。
步骤S302中,计算所述待计算测试用例中每个字符串的几何平均值,几何平均值能在多个数量级中确定处于相对中间位置的那个数量级,从而在这个意义上反映该组数据的中等水平。将字符串类型字段Si进行去重,得到字符串Si’,统计Si’中每个字符在Si中的数量,除以Si长度,得到该字符的分数值,然后求这些分数值的几何平均值gi。
当前第一个字符串字段:S1=“root”
去重后字符串字段:S1’=“rot”
计算该字符的分数值:“r”=1/4=0.25,“o”=1/2=0.5,“t”=1/4=0.25,
几何平均值: ;
以此类推求得接下来每个字符串字段的几何平均值,g2=0.2,g3=1,g4=1,g5=1,g6=1,g7=1,g8=1。
步骤S304中:计算所述待计算测试用例中每个字符串的数学期望
E(X),每个Ff字段的权重:1/(f+1),每个Fm字段的权重:1/[(f+1)*m],f=1,m=7,因此:每个Ff字段权重:0.5000=1/(1+1),每个Fm字段权重:0.071=1/[(1+1)*7]。
E(X)=∑gi*字段权重
=0.314*0.071+0.2*0.071+1*0.5+1*0.071+1*0.071+1*0.071+1*0.071+1*0.071
=0.022294+0.0142+0.5+0.071+0.071+0.071+0.071+0.071
≈0.893
步骤S305:计算所述随机变量X在某一位置i出现的概率P;设想成引擎不断从剩余随机变量集合中往指定位置投递。
P1=1/8;P2=1/7;P3=1/6;P4=1/5;P5=1/4;P6=1/3;P7=1/2;P8=1/1。
步骤S306:计算所述随机变量X在某一位置i的增重系数p,越前越靠左的条件判断,越重要。设:界定系数0.5,Xn集合中以Xk为界[k=(n+1)//2],则:
p0=0.5,n=8,k=4
p1=-log(p0-P1,2)=1.415
p2=-log(p0-P2,2)=1.485
p3=-log(p0-P3,2)=1.585
p4=-log(p0-P4,2)=1.737
p5=p6=p7=p8=1.0
将p1,p2,p3,p4进行从大到小排列p1’=p4,p2’=p3,p3’=p2,p4’=p1,
得到全新的增重系数列表:[p1’,p2’,p3’,p4’,p5’,p6’,p7’,p8’]。
步骤S307:根据公式计算所述待计算测试用例的信息熵分量向量,其计算公式为:
,
其中,表示信息熵分量向量,/>表示增重系数,/>表示几何平均值,/>表示概率,/>表示概率的对数,/>表示自然数。
根据公式,得到该帧模板实例的信息熵分量向量:
X1=-p1’*g1*P1*log(P1)=-1.737*0.314*0.125*3=0.205,
X2=-p2’*g2*P2*log(P2)=1.585*0.2*0.143*2.805=0.127,
X3=-p3’*g3*P3*log(P3)=1.485*1*0.167*2.585=0.641,
X4=-p4’*g4*P4*log(P4)=1.415*1*0.2*2.322=0.657,
X5=-p5’*g5*P5*log(P5)=1*1*0.25*2=0.5,
X6=-p6’*g6*P6*log(P6)=1*1*0.333*1.585=0.527
X7=-p7’*g7*P7*log(P7)=1*1*0.5*1=0.5
X8=-p8’*g8*P8*log(P8)=1*1*1*0=0
步骤S308:根据公式计算所述待计算测试用例的平均熵分量向量;所述待计算测试用例的平均熵分量向量具体通过以下公式进行计算:
,
其中,表示每个字符串的数学期望,/>表示平均熵分量向量,/>表示概率,表示概率的对数,/>表示自然数。
Y1=-Ex*P1*log(P1)=0.893*0.125*3=0.335,
Y2=-Ex*P2*log(P2)=0.893*0.143*2.805=0.358
Y3=-Ex*P3*log(P3)=0.893*0.167*2.585=0.386
Y4=-Ex*P4*log(P4)=0.893*0.2*2.322=0.415
Y5=-Ex*P5*log(P5)=0.893*0.25*2=0.446
Y6=-Ex*P6*log(P6)=0.893*0.333*1.585=0.471
Y7=-Ex*P7*log(P7)=0.893*0.5*1=0.447
Y8=-Ex*P8*log(P8)=0.893*1*0=0
步骤S309:根据所述待计算测试用例的信息熵分量向量与所述待计算测试用例的平均熵分量向量计算所述信息熵熵值。
,
其中,表示信息熵分量向量,/>表示平均熵分量向量,/>表示自然数。
;
;
;
;
图4为本发明的一个实施例提供的基于信息熵的模糊测试方法的拟合计算信息熵阈值流程示意图,现在参看图4,在具体实施中,所述步骤三中,拟合计算信息熵阈值,包括:
计算横坐标,对于任一会话样本,根据其中各模板的变异字符串原语数求几何平均值,对所有会话样本进行相同操作,得到横坐标序列;
计算纵坐标,对于任一会话样本,根据其中各模板组合生成多个测试用例组合,计算各测试用例组合的信息熵熵值并进行排序,取排名预设位置的信息熵熵值作为目标阈值,对所有会话样本进行相同操作,得到纵坐标序列;
将所述横坐标序列数值与所述纵坐标序列的数值一一组合,形成多个孤立的坐标点,对多个所述孤立的坐标点进行拟合,得到一样平滑的曲线,作为模板组合与阈值的数学关系。
具体地,计算横坐标X,根据会话中各个模板的变异string原语数求几何平均值,以会话样本1为例,由此可得出:X=[x1,x2,......,xN]。
计算纵坐标Y,以会话样本1为例,模板数为4,根据会话中的模板组合生成大量的测试用例组合,
[
[t10,t11,t12,t13],
[t20,t21,t22,t23],
[tk0,tk1,tk2,tk3],
]
对每个测试用例组合计算信息熵熵值,得到信息熵熵值集合[entropy1,entropy2,......,entropyK],对信息熵熵值集合排序后取第30%位置的熵值为目标阈值y,对所有样本进行上述相同操作得出:Y=[y1,y2,......yN]。
在具体实施中,所述步骤三中,将计算得出的X和Y组合成N个孤立的点,points=[(x1,y1),(x2,y2),......,(xN,yN)],对多个所述孤立的坐标点进行拟合,是采用pythonnumpy模块进行拟合。根据python numpy模块进行拟合,描绘出一条平滑的曲线,得到模板组合x与阈值y的数学关系y=0.2655242*cos(0.8700829*x+-2.11570707)+0.26317952。
在具体实施中, 在所述步骤四,协同过滤,还包括根据通过率对各测试用例进行过滤,所述步骤四中还包括:
计算通过率上限和下限,对于会话样本数在1万以内,则通过率上限为0.75,通过率下限为0.65;
对于会话样本数超过1万时,则通过率上限为,通过率下限为/>;
将n=100000为例,也就是当会话样本数为10万时,代入公式进行计算所得上限为0.700005,下限为0.699995。
具体地,从拟合计算阈值部分得到初始化阈值threshold:
y=0.2655242*cos(0.8700829*x+-2.11570707)+0.26317952。
计算通过率上限和下限,过滤样本数N在1万以内,上限为0.75,下限为0.65;过滤样本数A超出1万时,上限为,下限为。
在具体实施中,所述步骤四中还包括:判断过滤数是否为0,如果过滤数为0,则直接对各测试用例进行判断其信息熵熵值是否小于等于所述信息熵阈值;如果过滤数不为0,则判断通过率是否在所述通过率上限与所述通过率下限之间。
在具体实施中, 所述步骤四中,判断通过率是否在所述通过率上限与所述通过率下限之间,包括:
判断通过率是否低于所述通过率下限,如果低于通过率下限,需要动态提高通过率,则调整所述信息熵熵值与所述信息熵阈值相等,提高通过率,然后判断信息熵熵值是否小于等于所述信息熵阈值;
如果高于所述通过率下限,则进一步判断通过率是否高于所述通过率上限,如果高于通过率上限,需要动态降低通过率,则调整所述信息熵熵值减去预设值以作为所述信息熵阈值,降低通过率;
如果在所述通过率上限与所述通过率下限之间,则无需调整,直接判断该用例的信息熵熵值是否小于等于信息熵阈值。
综上所述,本发明实施例提供的基于信息熵的模糊测试方法, 收集样本,所述样本包括多个不同的会话样本,每个会话样本中包括多个不同的模板,所述模板用于生成测试用例;计算信息熵熵值,采用各会话样本的各模板生成多个不同的测试用例,计算各测试用例的信息熵熵值;拟合计算信息熵阈值;协同过滤,根据所述信息熵阈值对各测试用例进行过滤,小于等于所述信息熵阈值的测试用例保留,大于所述信息熵阈值的测试用例丢弃,基于信息熵熵值对测试用例进行了有效的筛选,从而增加了测试的有效性,极大提高了缺陷查找的可能性;
进一步地,获取所述待计算测试用例的模板的参数;计算所述待计算测试用例中每个字符串的几何平均值;以所述几何平均值作为随机变量等价类划分;计算所述待计算测试用例中每个字符串的数学期望;计算所述随机变量在某一位置出现的概率;计算所述随机变量在某一位置的增重系数;根据公式计算所述待计算测试用例的信息熵分量向量;根据公式计算所述待计算测试用例的平均熵分量向量;根据所述待计算测试用例的信息熵分量向量与所述待计算测试用例的平均熵分量向量计算所述信息熵熵值,从而有效得到各测试用例的信息熵熵值;
进一步地,计算横坐标,对于任一会话样本,根据其中各模板的变异字符串原语数求几何平均值,对所有会话样本进行相同操作,得到横坐标序列;计算纵坐标,对于任一会话样本,根据其中各模板组合生成多个测试用例组合,计算各测试用例组合的信息熵熵值并进行排序,取排名预设位置的信息熵熵值作为目标阈值,对所有会话样本进行相同操作,得到纵坐标序列;将所述横坐标序列数值与所述纵坐标序列的数值一一组合,形成多个孤立的坐标点,对多个所述孤立的坐标点进行拟合,得到一样平滑的曲线,作为模板组合与阈值的数学关系,从而得到会话样本的横坐标序列数值和纵坐标序列数值,进一步得到模板组合与阈值的数学关系;
进一步地计算通过率上限和下限,对于会话样本数在1万以内,则通过率上限为0.75,通过率下限为0.65;对于会话样本数超过1万时,则通过率上限为,通过率下限为/>,从而进一步提高增加了测试的有效性,提高了缺陷查找的可能性;
判断通过率是否低于所述通过率下限,如果低于通过率下限,需要动态提高通过率,则调整所述信息熵熵值与所述信息熵阈值相等,提高通过率,然后判断信息熵熵值是否小于等于所述信息熵阈值;如果高于所述通过率下限,则进一步判断通过率是否高于所述通过率上限,如果高于通过率上限,需要动态降低通过率,则调整所述信息熵熵值减去预设值以作为所述信息熵阈值,降低通过率;如果在所述通过率上限与所述通过率下限之间,则无需调整,直接判断该用例的信息熵熵值是否小于等于信息熵阈值,通过判断通过率的上限和下限,则调整所述信息熵熵值与所述信息熵阈值,从而动态提高通过率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于信息熵的模糊测试方法,其特征在于,包括:
步骤一,收集样本,所述样本包括多个不同的会话样本,每个会话样本中包括多个不同的模板,所述模板用于生成测试用例;
步骤二,计算信息熵熵值,采用各会话样本的各模板生成多个不同的测试用例,计算各测试用例的信息熵熵值;
步骤三,拟合计算信息熵阈值;
步骤四,协同过滤,根据所述信息熵阈值对各测试用例进行过滤,将各测试用例的信息熵熵值和所述信息熵阈值进行比较,小于等于所述信息熵阈值的测试用例保留,大于所述信息熵阈值的测试用例丢弃。
2.根据权利要求1所述的基于信息熵的模糊测试方法,其特征在于,
所述步骤二中,计算各测试用例的信息熵熵值,对于任一待计算测试用例,包括:
获取所述待计算测试用例的模板的参数;
计算所述待计算测试用例中每个字符串的几何平均值;
以所述几何平均值作为随机变量等价类划分;
计算所述待计算测试用例中每个字符串的数学期望;
计算所述随机变量在某一位置出现的概率;
计算所述随机变量在某一位置的增重系数;
根据公式计算所述待计算测试用例的信息熵分量向量;
根据公式计算所述待计算测试用例的平均熵分量向量;
根据所述待计算测试用例的信息熵分量向量与所述待计算测试用例的平均熵分量向量计算所述信息熵熵值。
3.根据权利要求1所述的基于信息熵的模糊测试方法,其特征在于,
所述步骤三中,拟合计算信息熵阈值,包括:
计算横坐标,对于任一会话样本,根据其中各模板的变异字符串原语数求几何平均值,对所有会话样本进行相同操作,得到横坐标序列;
计算纵坐标,对于任一会话样本,根据其中各模板组合生成多个测试用例组合,计算各测试用例组合的信息熵熵值并进行排序,取排名预设位置的信息熵熵值作为目标阈值,对所有会话样本进行相同操作,得到纵坐标序列;
将所述横坐标序列数值与所述纵坐标序列的数值一一组合,形成多个孤立的坐标点,对多个所述孤立的坐标点进行拟合,得到一样平滑的曲线,作为模板组合与阈值的数学关系。
4.根据权利要求1所述的基于信息熵的模糊测试方法,其特征在于,
在所述步骤四,协同过滤,还包括根据通过率对各测试用例进行过滤,所述步骤四中还包括:
计算通过率上限和下限,对于会话样本数在1万以内,则通过率上限为0.75,通过率下限为0.65;
对于会话样本数超过1万时,则通过率上限为,通过率下限为/>。
5.根据权利要求4所述的基于信息熵的模糊测试方法,其特征在于,
所述步骤四中还包括:判断过滤数是否为0,如果过滤数为0,则直接对各测试用例进行判断其信息熵是否小于等于所述信息熵阈值;如果过滤数不为0,则判断通过率是否在所述通过率上限与所述通过率下限之间。
6.根据权利要求5所述的基于信息熵的模糊测试方法,其特征在于,
所述步骤四中,判断通过率是否在所述通过率上限与所述通过率下限之间,包括:
判断通过率是否低于所述通过率下限,如果低于通过率下限,需要动态提高通过率,则调整所述信息熵熵值与所述信息熵阈值相等,提高通过率,然后判断信息熵熵值是否小于等于所述信息熵阈值;
如果高于所述通过率下限,则进一步判断通过率是否高于所述通过率上限,如果高于通过率上限,需要动态降低通过率,则调整所述信息熵熵值减去预设值以作为所述信息熵阈值,降低通过率;
如果在所述通过率上限与所述通过率下限之间,则无需调整,直接判断该用例的信息熵熵值是否小于等于信息熵阈值。
7.根据权利要求3所述的基于信息熵的模糊测试方法,其特征在于,
所述步骤三中,对多个所述孤立的坐标点进行拟合,是采用python numpy模块进行拟合。
8.根据权利要求2所述的基于信息熵的模糊测试方法,其特征在于,
所述待计算测试用例的信息熵分量向量具体通过以下公式进行计算:
,
其中,表示信息熵分量向量,/>表示增重系数,/>表示几何平均值,/>表示概率,/>表示概率的对数,/>表示自然数。
9.根据权利要求8所述的基于信息熵的模糊测试方法,其特征在于,所述待计算测试用例的平均熵分量向量具体通过以下公式进行计算:
,
其中,表示每个字符串的数学期望,/>表示平均熵分量向量,/>表示概率,表示概率的对数,/>表示自然数。
10.根据权利要求9所述的基于信息熵的模糊测试方法,其特征在于,
所述信息熵熵值具体通过以下公式进行计算:
,
其中,表示信息熵分量向量,/>表示平均熵分量向量,/>表示自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311057917.0A CN116804971B (zh) | 2023-08-22 | 2023-08-22 | 一种基于信息熵的模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311057917.0A CN116804971B (zh) | 2023-08-22 | 2023-08-22 | 一种基于信息熵的模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116804971A true CN116804971A (zh) | 2023-09-26 |
CN116804971B CN116804971B (zh) | 2023-11-07 |
Family
ID=88079699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311057917.0A Active CN116804971B (zh) | 2023-08-22 | 2023-08-22 | 一种基于信息熵的模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116804971B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018090467A1 (zh) * | 2016-11-17 | 2018-05-24 | 丹阳华神电器有限公司 | 基于模糊熵的含噪信号处理方法及迭代奇异谱软阈值去噪方法 |
CN111897735A (zh) * | 2020-08-07 | 2020-11-06 | 北京理工大学 | 基于粒子群和多标准的模糊测试用例选择方法和装置 |
AU2021105543A4 (en) * | 2021-07-22 | 2021-11-11 | Rajesh Kumar | A fuzzy entropy-based method for classification and selection of multi-faceted test case of software |
CN113806204A (zh) * | 2020-06-11 | 2021-12-17 | 北京威努特技术有限公司 | 一种报文字段相关性的评估方法、装置、系统及存储介质 |
CN114297079A (zh) * | 2021-12-30 | 2022-04-08 | 北京工业大学 | 基于时间卷积网络的xss模糊测试用例生成方法 |
CN115134067A (zh) * | 2022-06-29 | 2022-09-30 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
-
2023
- 2023-08-22 CN CN202311057917.0A patent/CN116804971B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018090467A1 (zh) * | 2016-11-17 | 2018-05-24 | 丹阳华神电器有限公司 | 基于模糊熵的含噪信号处理方法及迭代奇异谱软阈值去噪方法 |
CN113806204A (zh) * | 2020-06-11 | 2021-12-17 | 北京威努特技术有限公司 | 一种报文字段相关性的评估方法、装置、系统及存储介质 |
CN111897735A (zh) * | 2020-08-07 | 2020-11-06 | 北京理工大学 | 基于粒子群和多标准的模糊测试用例选择方法和装置 |
AU2021105543A4 (en) * | 2021-07-22 | 2021-11-11 | Rajesh Kumar | A fuzzy entropy-based method for classification and selection of multi-faceted test case of software |
CN114297079A (zh) * | 2021-12-30 | 2022-04-08 | 北京工业大学 | 基于时间卷积网络的xss模糊测试用例生成方法 |
CN115134067A (zh) * | 2022-06-29 | 2022-09-30 | 蚂蚁区块链科技(上海)有限公司 | 检测隐私数据泄漏的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116804971B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Frank et al. | Using model trees for classification | |
CN110175168A (zh) | 一种基于生成对抗网络的时间序列数据填补方法及系统 | |
CN110428137B (zh) | 一种风险防控策略的更新方法及装置 | |
WO2020012523A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN105988930A (zh) | 测试用例生成方法和装置 | |
CN112836820B (zh) | 用于图像分类任务的深度卷积网络训练方法、装置及系统 | |
CN115170057B (zh) | 一种基于机器学习的oa审批控制系统及方法 | |
CN111767277A (zh) | 数据处理方法和装置 | |
CN116680778B (zh) | 建筑结构布置生成方法、系统及生成模型的构建方法 | |
CN109102468A (zh) | 图像增强方法、装置、终端设备及存储介质 | |
CN116383912A (zh) | 一种提高控制精度的微型电机结构优化方法及系统 | |
CN110876072A (zh) | 一种批量注册用户识别方法、存储介质、电子设备及系统 | |
CN111783830A (zh) | 基于oct的视网膜分类方法、装置、计算机设备及存储介质 | |
CN116804971B (zh) | 一种基于信息熵的模糊测试方法 | |
CN115934484B (zh) | 基于扩散模型数据增强的异常检测方法、存储介质及设备 | |
US8700541B2 (en) | Modeling method of neuro-fuzzy system | |
CN112633517B (zh) | 一种机器学习模型的训练方法、计算机设备及存储介质 | |
CN115392344A (zh) | 一种具有难样本感知的强弱双分支网络的长尾识别方法 | |
TW202318286A (zh) | 為工作站篩選派工規則的電子裝置和方法 | |
CN110647805B (zh) | 一种网纹图像识别方法、装置及终端设备 | |
CN109308565B (zh) | 人群绩效等级识别方法、装置、存储介质及计算机设备 | |
CN113743493A (zh) | 群体分类方法及电子设备 | |
Bao et al. | Mixed constrained image filter design for salt-and-pepper noise reduction using genetic algorithm | |
TWI439952B (zh) | 模糊類神經系統建構方法 | |
CN115205016A (zh) | 一种贷款审批方法和装置 |
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 |