基于增强GA-BP神经网络的软件错误定位方法

发布时间:2022-11-21 03:27:56

基于增强GA-BP神经网络的软件错误定位方法张蓓;张树东【摘要】Intheprocessofsoftwaredevelopmentandmaintenance,softwaredebuggingisthemostcomplicatedandthemostexpensivepart.Duringtheperiodoftraditionalsoftwaredebugging,programmershavetolocatemistakesbybrowsingcodes,thisisatime-consumingandlaboriouswork.Therehasbeenagreatneedforfaultlocalizationtechniquesthatcanhelpguideprogrammerstothelocationsoffaults.Inrecentyears,automatedsoftwarefaultlocalizationtechnologyhasattractedmanyscholars'attention,variousapproacheshavebeenproposed.Inthispaper,atechniquenamedEGA-BPNisproposedwhichcanproposesuspiciouslocationsforfaultlocalizationautomaticallywithoutrequiringanypriorinformationofprogramstructureorsemantics.EGA-BPNisasoftwarefaultlocalizationmethodbasedonenhancedGeneticAlgorithm-BackPropagationneuralnetwork.Firstly,throughprocessingrunningtracesoftheprogram,coveringinformationoftestcasesareconvertedasthetrainingsamplesofneuralnetwork;secondly,thedataareinputintoneuralnetworkintrainingorderly,theinitialweightsofneuralnetworkarecomputedbyGA,thentestmatrixiscalculatedbytheneuralnetworktocountthesuspiciousnessofeachstatement,andusingorthogonalexperimentaldesigntoadjusttheparametersofneuralnetworks;finally,thefaultislocatedatthestatementswithhighersuspiciousvalue.Throughexperimentontheproposedmethod
andGA-BPNandBPNwerecompared,theresultsshowthattheenhancedGA-BPneuralnetwork-basedfaultlocalizationtechnologyhascertainvalidity.%在软件开发和后期维护的过程中,进行软件调试来定位错误并修正错误是其中最复杂且成本最大的一部分;文章针对现有基于神经网络的软件错误定位方法中的权值和阈值设定不方便、鲁棒性差等问题,结合正交实验设计思想和遗传算法(GeneticAlgo-rithm,提出了一种基于增强遗传BP神经网络的软件错误定位方法;并将其同基于GA-BP神经网络的和基于BP神经网络的定位方法都在MATLAB进行了实验,实验数据来源西门子测试集,从结果上看,基于增强GA-BP神经网络的软件错误定位方法在定位错误的效率和精确度上都有一些进步.【期刊名称】《计算机测量与控制》【年(,期】2017(025003【总页数】4(P123-125,129【关键词】错误定位;GA-BP神经网络;正交实验设计【作者】张蓓;张树东【作者单位】首都师范大学信息工程学院,北京100048;首都师范大学信息工程学,北京100048【正文语种】【中图分类】TP3随着时代的进步,计算机正渗入社会的各个角落,逐步改变着我们的生活,手机、电脑等电子产品使人与人之间的距离变短,就算相隔千里都变成了一根网线的距离;在冰箱、空调、电视等家电上安装的智能控制系统使这些电器变得更加“听话”;
物联网、智能社区、智慧城市等技术的发展使人类的生活变得更加信息化、智能化。然而,计算机技术的发展不仅能带来便利快捷的一面,还会产生不好的影响,例如黑客利用网站的漏洞来攻击某些网站,妨碍网站的正常运营或者获取用户资料来进行一些非法活动;游戏代码存在漏洞,会造成一些外挂软件的产生,从而造成一个不公平的游戏环境,损害游戏玩家的利益。所以,改进软件可靠性迫在眉睫。为了提高软件的质量,就必须尽可能多地找到软件中存在的问题,才能解决问题,而发现问题是其中最难的一个环节。在传统的错误定位方法中,都是靠工作人员手工调试代码来找出错误的所在位置,主要方法是在代码中设置断点或者插入某一段测试程序,跟踪程序运行步骤,根据程序运行状态是否正常,捕捉到的中间值是否同预期相符合来进行错误定位,这种方式不仅花费时间多、效率低下,还很枯燥乏味,还可能在代码中注入其他语句,造成不可预知的影响。如果能实现自动化错误定位,就能将工作人员从繁琐的工作中解放出来,提高软件调试效率,降低软件开发成本。近几年,中外学者对软件错误定位的自动化做了各种研究,成果丰富,根据原理不同可以大致分为基于切片、基于程序光谱和基于状态修改的错误定位方法。基于程序切片(slicing-based[1-3]的错误定位方法:程序切片,顾名思义,就是缩小范围,该方法的主要思想是构建一个程序中可能同错误输出有关的代码的集合,包括两个内容:错误所在的语句和同错误语句相关的,可供工作人员理解程序的调试上下文,尽可能的缩小可疑语句存在的范围,减少需要检测的代码行数,提高软件调试的效率。这种方法可适用于规模较大程序的测试,但是由于需要事先对程序进行依赖关系分析,过程复杂,需要耗费大量资源,而且往往处理后的代码量还是很大,冗余度很高,需要做进一步的简化。基于程序光谱(spectrum-based的错误定位方法:程序光谱是指在程序执行测试用例过程中统计的信息[4]。可以通过在程序中定位不同的元素,例如可执行语句

基于增强GA-BP神经网络的软件错误定位方法

相关推荐