【技术实现步骤摘要】
【国外来华专利技术】
本专利技术公开了一种系统和相关联的方法,用于基于软件应用程序的运行时行为(runtime behavior)自动分析和纠正程序代码和/或数据。
技术介绍
传统调试工具只关注软件应用程序的静态结构和逻辑。为了改正某些类型的错误,传统调试工具从基于知识的系统中搜索相似的错误和相对应的解决方案。因为传统调试工具在调试软件应用程序的运行时事件方面功能有限,所以软件应用程序的故障查找是费力的,并且软件应用程序的维护成本高昂
技术实现思路
按照本专利技术的一个实施例,一种基于应用程序的运行时行为自动纠正应用程序的方法包括计算机的处理器从用户或标签管理工具(ticketing tool)接收应用程序的事件的事件细节,其中所述事件涉及至少一个问题对象;从事件细节中识别事件的事件流,其中事件流对应于所述至少一个问题对象的第一问题对象,事件流包括第一问题对象、应用程序内影响第一问题对象的至少一个赋值对象、和其中所述至少一个赋值对象影响第一问题对象的应用程序的至少一个代码语句;通过关于第一问题对象从应用程序的开始直到事件跟踪已经实际执行的事件流的数据值,来创建事件流的前向数据流;通过从第一问题对象的预期结果到第一问题对象的所述至少一个赋值对象的各自初始值,按照与应用程序的实际执行相反的顺序模拟事件流的所述数据值,来创建事件流的至少一个反向数据流;以及所述处理器使用前向数据流和所述至少一个反向数据流生成事件的第一问题对象的候选故障列表。按照本专利技术的一个实施例,一种计算机程序产品包括实施计算机可读程序代码的计算机可读存储单元。该计算机可读程序代码包括当被计算机系统的处理器运行时 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】2009.10.05 US 12/573,4211.一种基于应用程序的运行时行为自动纠正应用程序的方法,所述方法包括 计算机的处理器从用户或标签管理工具接收应用程序的事件的事件细节,其中所述事件涉及至少一个问题对象; 从事件细节中识别事件的事件流,其中事件流对应于所述至少一个问题对象的第一问题对象,事件流包括第一问题对象、应用程序内影响第一问题对象的至少一个赋值对象、和其中所述至少一个赋值对象影响第一问题对象的应用程序的至少一个代码语句; 通过关于第一问题对象从应用程序的开始直到事件跟踪已经实际执行的事件流的数据值,来创建事件流的前向数据流; 通过从第一问题对象的预期结果到第一问题对象的所述至少一个赋值对象的相应初始值,按照与应用程序的实际执行相反的顺序模拟事件流的所述数据值,来创建事件流的至少一个反向数据流;以及 所述处理器使用前向数据流和所述至少一个反向数据流来生成事件的第一问题对象的候选故障列表。2.如权利要求I所述的方法,所述创建所述至少一个反向数据流包括 将第一问题对象的预期结果分配给事件流中的所述至少一个代码语句的最后代码语句中的第一问题对象; 根据第一问题对象的预期结果重新计算所述至少一个赋值对象; 确定所述至少一个赋值对象具有影响第一问题对象的所述至少一个赋值对象的相应初始值;以及 生成第一问题对象的第一反向数据流。3.如权利要求I所述的方法,所述生成候选故障列表包括 通过比较前向数据流中和所述至少一个反向数据流中的所述至少一个赋值对象的各自值来识别第一问题对象,其中前向数据流中的第一问题对象的第一值不同于第一代码语句中的所述至少一个反向数据流的第一反向数据流中的第一问题对象的第二值; 将第一代码语句识别为第一候选故障; 通过将不同的一组输入值应用于所述至少一个赋值对象来模拟新数据流; 确定新数据流和第一反向数据流的各自值相同;以及 将第一候选故障加入第一问题对象的候选故障列表中。4.如权利要求I所述的方法,所述方法进一步包括 提示第二用户检查前向数据流、所述至少一个反向数据流和候选故障列表,并从第二用户接收第一输入,其中第一输入指示第二用户批准基于前向数据流和所述至少一个反向数据流的所生成候选故障列表,并且其中第二用户被授权更新应用程序; 响应于从第二用户接收到第一输入,使用候选故障列表和应用程序的规范来生成纠正应用程序的事件的技术规范; 按照该技术规范生成解决方案并为用户或标签管理工具生成描述该解决方案的结论; 向第二用户呈现该解决方案并从第二用户接收第二输入,其中第二输入指示第二用户批准该解决方案;以及 响应于从第二用户接收到第二输入,利用该解决方案更新应用程序使得应用程序无事件地运行,并且将该结论传送给用户或标签管理工具。5.如权利要求4所述的方法,所述生成技术规范包括 检索包括第一问题对象的候选故障列表的至少一个候选故障列表并检索应用程序的规范; 从所述至少一个候选故障列表中识别事件的源头; 设计源头的替代物,其中该替代物是从由如下组成的群体中选择的新数据对象、新代码语句及其组合;以及 将源头和替代物加入事件的技术规范中。6.一种计算机程序产品,包括 具有实施在其中的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括基于应用程序的运行时行为自动纠正应用程序的指令,所述纠正包括 从用户或标签管理工具接收应用程序的事件的事件细节,其中所述事件涉及至少一个问题对象; 从事件细节中识别事件的事件流,其中事件流对应于所述至少一个问题对象的第一问题对象,事件流包括第一问题对象、应用程序内影响第一问题对象的至少一个赋值对象、和其中所述至少一个赋值对象影响第一问题对象的应用程序的至少一个代码语句; 通过关于第一问题对象从应用程序的开始直到事件跟踪已经实际执行的事件流的数据值,来创建事件流的前向数据流; 通过从第一问题对象的预期结果到第一问题对象的所述至少一个赋值对象的相应初始值,按照与应用程序的实际执行相反的顺序模拟事件流的所述数据值,来创建事件流的至少一个反向数据流;以及 使用前向数据流和所述至少一个反向数据流来生成事件的第一问题对象的候选故障列表。7.如权利要求6所述的计算机程序产品,所述创建所述至少一个反向数据流包括 将第一问题对象的预期结果分配给事件流中的所述至少一个代码语句的最后代码语句中的第一问题对象; 根据第一问题对象的预期结果重新计算所述至少一个赋值对象; 确定所述至少一个赋值对象具有影响第一问题对象的所述至少一个赋值对象的相应初始值;以及 生成第一问题对象的第一反向数据流。8.如权利要求6所述的计算机程序产品,所述生成候选故障列表包括 通过比较前向数据流和所述至少一个反向数据流中的所述至少一个赋值对象的各自值来识别第一问题对象,其中前向数据流中的第一问题对象的第一值不同于第一代码语句中的所述至少一个反向数据流的第一反向数据流中的第一问题对象的第二值; 将第一代码语句识别为第一候选故障; 通过将不同的一组输入值应用于所述至少一个赋值对象来模拟新数据流; 确定新数据流和第一反向数据流的各自值相同;以及 将第一候选故障加入第一问题对象的候选故障列表中。9.如权利要求6所述的计算机程序产品,所述纠正进一步包括提示第二用户检查前向数据流、所述至少一个反向数据流和候选故障列表,并从第二用户接收第一输入,其中第一输入指示第二用户批准基于前向数据流和所述至少一个反向数据流的所生成候选故障列表,并且其中第二用户被授权更新应用程序; 响应于从第二用户接收到第一输入,使用候选故障列表和应用程序的规范生成纠正应用程序的事件的技术规范; 按照该技术规范生成解决方案和为用户或标签管理工具生成描述该解决方案的结论; 向第二用户呈现该解决方案并从第二用户接收第二输入,其中第二输入指示第二用户批准该解决方案;以及 响应于从第二用户接收到第二输入,利用该解决方案更新应用程序使得应用程序无事件地运行,并且将该结论传送给用户或标签管理工具。10.如权利要求9所述的计算机程序产品,所述生成技术规范包括 检索包括第一问题对象的候选故障列表的至少一个候选故障列表并检索应用程序的规范; 从所述至少一个候选故障列表中识别事件的源头; 设计源头的替代物,其中该替代物是从由如下组成的群体中选择的新数据对象、新代码语句及其组合;以及 将源头和替代物加入事件的技术规范中。11.一种包括处理器和与...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。