[发明专利]一种基于图挖掘的Web云应用软件故障定位方法在审
申请号: | 201911100326.0 | 申请日: | 2019-11-12 |
公开(公告)号: | CN110825550A | 公开(公告)日: | 2020-02-21 |
发明(设计)人: | 苏醒;王泊涵;丁晓东;许健;平笑柔 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 王雪芬 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 挖掘 web 应用软件 故障 定位 方法 | ||
本发明涉及一种基于图挖掘的Web云应用软件故障定位方法,属于Web云应用技术领域。本发明设计一种动态测试方法——图挖掘的软件故障定位,通过真正运行程序,跟踪程序运行轨迹来获取有用信息,来进行软件故障定位,从而有效地对Web云应用进行故障定位,辅助程序人员排查程序故障,提高其调试效率。
技术领域
本发明属于Web云应用技术领域,具体涉及一种基于图挖掘的Web云应用软件故障定位方法。
背景技术
Web云应用是云计算在应用层的体现,通过“即取即用”的方式为用户提供便捷的IT服务,能够大大提高用户的工作效率。然而,往往Web云应用程序规模较大,对其进行故障定位十分耗时费力,且现有技术均不能有效的实现Web云应用的故障定位,因此严重影响了Web云应用的维护。目前已有的自动化软件故障定位方法包括静态方法和动态方法,二者的区别在于是否运行程序。静态方法不需要运行程序,直接分析程序语句间的依赖关系和类型约束等信息来定位程序中可能存在的故障点;动态方法则需要运行程序,通过分析程序执行测试用例时产生的过程信息来进行故障定位。有效地定位出软件故障可以辅助程序人员快速恢复程序功能,降低软件运维成本。
目前,通过静态分析进行故障定位的方法中,符号执行方法则是一种路径依赖的方法,为保证路径间的相互独立需要为每条路径创建专属模型,因此当程序复杂、规模较大时,其面临建模困难以及路径爆炸问题;形式化方法需要建立形式化模型,同样面临状态空间爆炸的问题;面向语句方法是语句级别的方法,因此不能发现与程序逻辑相关的故障;多数的指针分析采用“近似”或者“简化”策略,导致分析结构不够精确。综上,基于静态分析的故障定位方法仍存在局限性,且不能较好反映软件系统动态执行过程中的复杂关系。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何有效地对Web云应用进行故障定位。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于图挖掘的Web云应用软件故障定位方法,包括以下步骤:
步骤一:获取程序执行轨迹,并在生成轨迹的过程中得到程序调用图;
步骤二:对所述程序调用图进行预处理;
步骤三:从预处理后的程序调用图中挖掘出特征信息;
步骤四:基于步骤三利用决策树算法进行故障定位。
优选地,步骤一中使用AspectJ来获取Web云应用的执行轨迹。
优选地,步骤一的具体步骤为:
1)定义一个切点来获取所有方法的调用,同时使用!within()将AspectJ自身的执行代码排除在外;
2)定义一个advice类型的通知(前置通知before)用于将信息写入到文件中;
3)获取调用的方法名字;
4)把获取到的两个调用方法名集合成一条边,并将其存储在一个内部数据结构中;
5)在程序执行的最后使用一种切点将同时得到的程序调用图写进一个文件中。
优选地,步骤二中运用Fork/Join框架实现子树约简。
优选地,步骤二的具体步骤为:
1)首先将调用图的每条边设置权值为1,表示方法调用的频数;
2)设调用图共有n层,从第n-1层开始逐层向上,对每层节点进行如下操作:划分出与每层节点个数数量相同的子任务,然后同时地遍历该层所有节点,合并每个节点结构相同的子节点,使其对应边权值相加,并保留结构不同的子节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911100326.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于表情情感计算的三维教学课堂实现方法
- 下一篇:油槽滤油装置