正在加载图片...
第5卷第4期 智能系统学报 Vol.5 No.4 2010年8月 CAAI Transactions on Intelligent Systems Aug.2010 doi:10.3969/i.issn.1673-4785.2010.04.007 不变量的程序潜在错误预测 杨振兴,刘久富,孙琳 (南京航空航天大学自动化学院,江苏南京210016) 摘要:随着软件系统变得越来越复杂和庞大,软件中的安全缺陷也急剧增加,系统中的隐含错误也在逐渐增多.提 出一种基于不变量的程序潜在错误预测方法,首先采用支持向量机对程序属性所产生的非函数依赖程序不变量进 行学习并产生机器学习模式,然后运用该机器学习模式对需预测的程序进行属性分类,并揭示出代码可能存在的潜 在错误,最后通过实验验证该方法是有效的 关键词:不变量;软件测试;支持向量机;错误预测 中图分类号:TP311文献标识码:A文章编号:16734785(2010)04032705 Using invariants to predict the potential for errors in programs YANG Zhen-Xing,LIU Jiu-Fu,SUN Lin (College of Automation Engineering,Nanjing University of Areonautics and Astronautics;Nanjing China;210016) Abstract:As software systems become increasingly complex and large,deficiencies in software security increase sharply and implicit errors increase gradually.A method based on invariants was developed to predict potential er- rors in programs.First,a support vector machine was used to find program invariants and produce a pattern for ma- chine learning.Then the pattern from machine learning was employed to classify the programs with behavior to be predicted and reveal the latent errors in codes.Finally an experiment was done that verified the effectiveness of the method. Keywords:invariants;software testing;support vector machine;error prediction 随着软件系统变得越来越复杂和庞大,软件中生的非函数依赖程序不变量进行学习并产生机器学 的安全缺陷也急剧增加.据统计有40%的系统故障 习模式的方法,然后运用该模式对需预测的程序进 是由软件缺陷引起的山.通常的测试方法是通过执 行属性分类,并标示出代码可能存在的潜在错误.该 行测试用例集来发现程序源代码中的错误,一旦程 方法的输人是一系列给定程序的属性,输出经辨识 序通过对它所测试的测试用例后,测试便不会再通 后能辨识潜在错误的属性. 过程序员来发现错误.然而,程序仍然可能存在潜在 的错误,此时,如果想通过新的测试来发现潜在的错 1支持向量机理论 误可能会显得很困难并需要付出很大的代价 潜在错误预测与很多因素有关,因此预测模型 由查找隐含错误的一般方法知,许多错误都是 的输入量将是一个高维、非线性、小样本的模式识别 由很少的一些类别引起,相似的错误都具有相似的 问题.在前人研究的基础上,选用支持向量机作为机 特性,然后这些特性能够被概括和识别.例如,3个 器学习理论对潜在错误进行预测。 普通的错误类别是由一个错误引起的(不正确的使 潜在错误预测分类模型3]与排序模型4的建 用第一个或最后一个数据结构元素),使用未初始 立即分别寻求以下表达式的成立 化或部分初始化的值21 本文提出一种采用支持向量机对程序属性所产 f(x)sign(>ay:k(xx)+b), 收稿日期:2009-10-12. f(x)= (a-a:)K(xr)+b. (1) 基金项目:国家自然科学基金资助项目(60674100). 0 通信作者:杨振兴.E-mail:ywfu@163.com. 式中:α为可揭错误属性,x:为k个样本中的第i个
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有