正在加载图片...
第4期 杨振兴,等:不变量的程序潜在错误预测 ·329· 2个椭圆公共部分是并未从含有错误代码中去除错 q)任:代表不变量为当且仅当型 误的那些属性即不可揭错误属性, 4)程序变量槽. 举个例子,假如这有4槽指示一个等式,其中的 a)Num Vars:代表变量的个数 3槽指示涉及变量的类型,还有另外1槽指示了变 b)VarinoIndex:代表当前变量的索引 量的个数,其中相对应是和否用1和0来表示,变量 c)IsStaticConstant:代表是否为常静态变量 个数用实际的个数值来表示.在本文的研究方法中, d)PrestateDerived:代表变量是否是函数开始时 特征向量包含了44个槽8],分别列举如下: 派生变量 e)DerivedDepth:代表派生的深度 含行错误代 去除错误后 码的属性 f)IsClosure:代表变量是否关闭 代码的属性 g)IsParameter:代表变量是否是函数的参数 h)IsReference:代表变量是否是函数传引用 可揭错误属性不可揭错误属性 i)IsIndex:代表变量是否是系列的索引 图2可揭错误属性 j)IsPinter:代表变量是否为指针 Fig.2 The fault-revealing properties 训练阶段需要一个二元组〈P,P〉其中P是包 1)变量类型槽. 含至少一个错误的程序,P'去除了这些错误之后的 char(字符型),double(双精度),float(单精 程序版本,程序P'并不需要是完全正确无误的,只 度),int(整形),long(长整形),short(短整形),void 需去除相对应的错误就可以[8)」 (空型),string(字符串型)共8个变量类型, 3实例分析 2)运算符类型槽, ==,≥,>,≤,<,≠,%(取模),C,∈共9 3.1评价指标 个运算符类型 为了更好的分析预测结果,提出模型评价2个 3)属性类型槽(cmp可以为==,≥,>,≤, 参数:相关率(Relevance)和简短率(Brevity)I).采 <,≠) 用总体相关率和总体简短率,分类相关率和分类简 a)Stored:代表一系列数据进行排序 短率以及定量相关率和定量简短率对所述方法进行 b)Linear:代表变量之间成线性关系 评价: c)Constant:代表不变量之间有常量 简短率=所有被辨识出的可揭错误属性 d)Min(x):代表不变量为最小值 正确辨识可揭错误属性 e)Max(x):代表不变量为最大值 正确辨识可揭错误属性 相关率一所有被辨识出的可揭错误属性 f)x≠0orx≠null:代表变量不为零或空 属性集的相关率表明被揭错误属性的可能性大 g)x==c:代表不变量恒为常量 小.总体相关率是所有给定程序的程序属性的整组 h)Aay:代表不变量为数组 相关率;分类相关率是被辨识可揭错误属性组的相 i)x[0~n]cmpy[0~n]:代表变量为一对一的 关率;定量相关率是预先选择定量可能性排考前可 比较,并且长度一致 揭错误属性的相关率. j)x[]=~y[]:代表一个数组为另一个数组的 组属性的简短率是与相关率相反的量.即检 逆序 测到一个可揭错误属性需要平均属性的个数.最完 k)x[]cmpy:代表数组的每个量与一个变量比 美的简短率是1,也即所有的属性都是可揭错误属 较大小 性.同相关率,简短率度量分为总体简短率,分类简 I)x[门cmpi:代表数组与自己的序号比大小 短率和定量简短率 m)x[]≠:代表数组全都不等于自己的序号 通过机器学习后对预测程序进行模式分类和模 n)x[]cmpy[]:代表数组的所有值都比另一 式排序,能够得到预测分类的相关率大于总体相关 个大或小 率,即分类的简短率小于总体的简短率,或定量相关 o)Subsequence:代表一个集合是另一个的连续 率大于总体相关率,即定量简短率小于总体简短率, 一段子集 则表明该潜在错误预测方法是有效的。 p)x≤c:c为常量,x是标量.代表变量始终都小 3.2实例 于一个常量 为了验证理论方法的正确性,作者采用李春葆
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有