应用程序修改部分搜索装置和应用程序修改部分搜索方法

文档序号:6359790阅读:189来源:国知局
专利名称:应用程序修改部分搜索装置和应用程序修改部分搜索方法
技术领域
本发明涉及一种应用程序修改部分(application modification portion)搜索装置和一种应用程序修改部分搜索方法,具体地,涉及用于应用程序定制的应用程序修改部分搜索装置和应用程序修改部分搜索方法。
背景技术
希望简化定制应用程序的过程。日本专利公报(JP-P2007-122670A)公开了一种表单(form)生成系统,其能够定制任意功能和信息而显著地减少与表单定制相关的用户工作负荷,并能够遵循版本升级。该表单生成系统使用了软件包用于表单生成。表单生成系统包括保留部分、新部 分和输出部分。保留部分将输出表单的定制信息保留为软件包的差异信息。当修改软件包时,更新部分反映被保留在被修改软件包上保留部分内的定制信息。当修改软件包时,输出部分输出定制表单,其上反映了由于定制信息产生的修改。也就是说,当通过版本升级来修改应用程序时,根据日本专利公报(JP-P2007-122670A)的版本升级功能执行将软件包的修改部分应用于定制表单的处理。另夕卜,将定制信息保存在定制信息文件中。将定制差异信息保存在定制差异信息文件中。日本专利公报(JP-P2008-310679A)公开了一种动态设计信息生成设备,其能够甚至在规范等不完全时动态生成动态设计信息。动态设计信息生成设备包括程序分析部分、信息增加部分、程序执行部分和设计信息生成部分。程序分析部分分析程序的结构。信息增加部分参考由程序分析部分所分析的程序并将用于生成程序的执行顺序信息的信息增加到程序。程序执行部分依照预定执行环境执行增加了信息的程序。根据通过程序执行部分执行程序所获得的程序的执行顺序信息来生成动态设计信息。日本专利公报(JP-P2007-213487A)公开了一种方面(aspect)生成设备,其能够轻松地生成将被并入程序假定位置的方面,作为使用面向方面编程的应用开发中的整合目标。方面生成设备生成了方面,方面是对作为开发目标的程序中使用的类(class)公用的处理。方面生成设备包括类信息分析部分、建议分析部分、用户接口管理部分和方面生成部分。类信息分析部分从第一存储部分中读出用于程序中作为开发目标的类文件,并分析所述类文件中每一个类的结构。随后,所述部分获取用于每个类中的类名、方法名和签名,并基于获取的类名、方法名和签名生成在将生成的方面中定义的类名、方法名和签名的候选。建议分析部分从第二存储部分读出由将要被删除的方面提供的建议的候选用作公共处理,并分析建议的候选的数据结构。基于类信息分析部分的类结构的分析结果,用户接口管理部分使得图形用户界面屏幕显示示出了用于程序中作为开发目标的类的类名、方法名和签名的类图以及由建议分析部分所分析的建议的候选。当由用户从被显示在图形用户界面屏幕上的建议的候选中选择的任意图标被拖到类图中的任意类的位置时,方面生成部分显示由类信息分析部分所生成的并能够在所述类中被选择的类名、方法名和签名的候选。随后,所述部分通过将由用户所选择的类名、方法名和签名的候选的数据应用于由用户所选择的建议候选的数据结构来生成方面。日本专利公报(JP-P2007-213498A)公开了一种方面显示系统,其能够基于建议的方面和指定的点切除把将被并入的方面的处理显示在目标程序处理的源代码的圆周上,并能够轻松地追踪其中并入了该方面的程序的最终处理的整个流程。方面显示系统把将被并入计算机程序中的方面显示在计算机程序的源代码中。方面显示系统包括读出部分、代码分析部分、方面分析部分和显示控制部分。读出部分读出计算机程序的源代码和已编译的可执行代码,以及根据面向方面编程的方面程序的源代码和已编译的可执行代码。 代码分析部分分析计算机程序的已编译可执行代码以获取用于识别属于计算机程序的过程定义的信息,以及计算机程序的对应于所述过程定义的开始命令和结束命令的开始源代码行和结束源代码行,并将它们存入存储部分。方面分析部分分析方面程序的已编译可执行代码。随后,所述部分基于用于识别属于方面程序的整合部分定义和在整合部分定义中定义的字符串的信息来检测整合目标过程的信息。随后,所述部分获取用于识别与整合部分定义相关联的整合过程定义的信息,以及方面程序的对应于整合过程的开始命令和结束命令的开始源代码行和结束源代码行。显示控制部分选择计算机程序的源代码并搜索与识别属于所选计算机程序的过程定义的信息一致的整合目标过程的信息。随后,所述部分获取用于识别与用于识别所述一致整合目标过程所属于的整合部分定义的信息相关联的整合过程定义的信息。随后,所述部分通过插入或替换将在整合过程定义的开始源代码行和结束源代码行之间的整合处理显示在属于所述对应计算机程序的过程定义的开始源代码行和结束源代码行的圆周上。引用文献列表专利文献专利文献I :日本专利公报(JP-P2007-122670A)专利文献2 :日本专利公报(JP-P2008-310679A)专利文献3 :日本专利公报(JP-P2007-213487A)专利文献4 :日本专利公报(JP-P2007-213498A)

发明内容
对于相关应用程序定制,提出了一种程序修改部分的应用程序,如通过修改程序部分实现定制操作的版本升级功能。另一方面,未提出对用于判断程序的哪一部分应被修改以定制程序的支持。因此,存在用于定制的必需的程序开发困难的问题。本发明的示例性目的是提供一种简化用于现有应用程序的定制过程的应用程序修改部分搜索装置和应用程序修改部分搜索方法。根据本发明的应用程序修改部分搜索装置包括测试执行部分,该测试执行部分在基于输入参数对应用程序执行覆盖测试时生成多个日志;以及结果处理部分,该结果处理部分基于多个日志生成点候选报告。多个日志分别指示了在覆盖测试执行期间被调用的多个方法中将参数指定为自变量的方法的调用栈(call stack)。该调用栈指示在其中定义了方法的调用的应用程序上的位置。点候选报告指示了在应用程序中点的候选,当基于参数执行处理的调度时,对于该点的候选来说修改是必要的。根据本发明的应用程序修改部分搜索方法包括在基于输入参数对应用程序执行覆盖测试时生成多个日志的步骤;基于所述多个日志生成点候选报告的步骤;以及基于所述点候选报告定制应用程序的步骤。多个日志分别指示了在覆盖测试执行期间被调用的多个方法中将参数指示为自变量的方法的调用栈。该调用栈指示在其中定义了方法的调用的应用程序上的位置。点候选报告指示了在应用程序中点的候选,当基于参数执行处理调度时,对于该点的候选来说修改是必要的。根据本发明的应用程序修改部分搜索装置和应用程序修改部分搜索方法,用户能够参考应用程序中对其来说修改是必要的点的候选,并且因此能够轻松地定制应用程序。


结合附图和对示例性实施例的说明,本发明的上述目的、优势和特征将更加明显,其中图I是示出了根据本发明的应用程序修改部分搜索装置的方框图;图2是示出了根据本发明的应用程序修改部分搜索方法的流程图;图3是示出了输入输出验证部分的操作的流程图;图4是示出了结果处理部分的操作的流程图;图5示出了参数定义的示例;图6示出了方面定义的示例;图7示出了操作日志的示例;图8示出了步骤A300的处理结果的一部分;图9示出了步骤A300的处理结果的另一部分;图10示出了步骤A301的处理结果;图11示出了步骤A302到A305的处理结果;图12示出了步骤A306到A308的处理结果;以及图13示出了点候选报告。
具体实施例方式下面将参照附图来说明根据本发明的应用程序修改部分搜索装置的示例性实施例。然而,这些示例性实施例并不限制本发明的技术范围。如图I所示,应用程序修改部分搜索装置包括测试执行部分100和结果处理部分200。测试执行部分100是应用程序121操作的基本环境。结果处理部分200处理输出自测试执行部分100的操作日志,并生成点候选报告。测试执行部分100包括方面处理部分110、执行引擎部分120、输入输出验证部分130和日志提取部分140。方面处理部分110具有将用于输出操作日志的处理插入应用程序121中的功能。执行引擎部分120具有执行应用程序121的功能。而且,执行引擎部分120通过使用测试程序310执行应用程序121的逻辑的覆盖测试。根据本发明的应用程序修改部分搜索装置包括输入装置(未图示)。根据本发明的应用程序修改部分搜索装置通过输入装置输入应用程序121和测试程序310。覆盖测试(coverage test)是指以一条件作为输入的测试,在该条件下在应用程序121中实现的逻辑被彻底地(无遗漏地)执行。通常将覆盖测试准备为单元测试,与应用程序121 —起实现。输入输出验证部分130具有判断发生在应用程序121中的方法调用的自变量是否与参数列表300匹配的功能。日志提取部分140具有以调用栈(调用路径)的形式输出发生在应用程序121中的方法调用的功能。方面处理部分110包括方面生成部分111和方面应用部分112。方面生成部分111具有生成方面形式的逻辑的功能,其判断发生在应用程序121中的方法调用的自变量是否与在参数列表300中定义的参数组匹配。根据本发明的应用程序修改部分搜索装置通过输入装置输入参数列表300。方面应用部分112具有将由方面生成部分111所生成的方面应用于应用程序121的功能。结果处理部分200包括处理栈分析部分210和报告生成部分220。处理栈分析部 分210具有分析由日志提取部分140所输出的多个调用栈和合并多个调用栈的功能。报告生成部分220具有基于被合并的多个调用栈生成修改点候选报告330的功能。修改点候选报告330指示了由处理栈分析部分210所合并的处理调用栈,其作为修改部分的候选。结果处理部分200还包括输出装置(未图示)。输出装置显示修改点候选报告330。图2示出了根据本发明的应用程序修改部分搜索方法。首先,用户生成参数定义并基于参数定义生成参数列表300。用户使得方面处理部分110通过输入装置输入参数列表300 (步骤A101)。在参数列表300中所述的参数是用于识别定制目标的ID,其由文件名、URL和数据库名例示。方面生成部分111从输入的参数列表300生成方面定义(步骤A102)。这里,生成的方面定义用来检查参数是否是作为在应用程序中每一个方法调用的自变量出现。使用比较定义在参数列表300中的参数组和关于每一个方法调用的方法的自变量的处理来实现方面定义。方面应用部分112将由方面生成部分111所生成的方面定义应用到应用程序121(步骤A103)。由于应用过程,对在方面定义中定义的参数和方法的自变量的检查在该应用程序121中每一个方法调用的定时被执行。执行引擎部分120通过使用测试程序310执行应用程序121的逻辑的覆盖测试(步骤A104)。覆盖测试是指以一条件作为输入的测试,在该条件下在应用程序121中实现的逻辑被彻底地执行。一般将覆盖测试准备为单元测试,与应用程序121—起实现。测试执行部分100进一步执行在步骤A104执行时由方面生成部分111所生成的方面定义中定义的处理。作为在方面定义中定义的处理的执行结果,生成操作日志。结果处理部分200合并在步骤A104中生成的操作日志(步骤A105)。结果处理部分200将被合并的操作日志输出为修改点候选报告330(步骤A106)。修改点候选报告330指示了在应用程序源代码上的部分的位置,该部分中定义了调用特定输入参数的方法。也就是说,被包括在修改点候选报告330中的信息是参数标识符、方法名、以及定义了相应方法的应用程序源代码的行数。图3示出了由方面生成部分111所生成的方面定义中定义的处理。在步骤A104执行期间每次当调用应用程序121的方法时,执行所述处理。输入输出验证部分130首先在当调用应用程序121的方法时将指示了在处理中的参数列表300中参数索引的m重置为O (步骤A201)。接下来,输入输出验证部分130评估m是否大于在参数列表300中定义的参数数量(步骤A202)。当步骤A202的评估为真时,即当m大于参数数量时(在步骤A202处为“是”),输入输出验证部分130结束所述处理。当步骤A202的评估为假时,即当m不大于参数数量时(在步骤A202处为“否”),输入输出验证部分130将指示了在处理中方法自变量的索引(顺序)的η重置为0(步骤A203)。接下来,输入输出验证部分130评估η是否大于在处理中的方法中定义的自变量数量(步骤Α204)。当步骤Α204的评估为真时,即当η大于自变量数量时(在步骤Α204处为“是”),输入输出验证部分130将m增加I (步骤A205)并返回到步骤A202的处理。当步骤A204的评估为假时,即当η不大于自变量数量时(在步骤Α204处为“否”),输入输出验证部分130评估第η个方法的自变量是否与参数列表300中的第m个值相同(步骤A206)。当步骤A206的评估为真时,即,当第η个方法的自变量与第m个值相同时(在步骤A206处为“是”),输入输出验证部分130在相应方法被调用的时刻将调用栈输出到操作 日志(步骤A207)。在参数定义中被匹配的参数、指示被匹配方法的调用顺序的调用栈信息、以及关于源代码的被匹配方法的位置(行数量)被记录在操作日志中以被输出。当步骤A206的评估为假时,即当第η个方法的自变量与第m个值不同时(在步骤A206处为“否”)或者在步骤A207之后,输入输出验证部分130将η增加I (步骤Α208)并返回到步骤Α204的处理。图4示出了步骤Α105的操作。首先,处理栈分析部分210将针对每一个参数在步骤Α207中输出的操作日志划分为比较目标(步骤Α300)。接下来,处理栈分析部分210将每一个参数的操作日志集以调用栈深度的升序分类(步骤Α301)。例如,当存在调用栈DlOO(方法A —方法B —方法C —方法D)和调用栈DlOl (方法A —方法B —方法C)时,处理栈分析部分210以顺序(调用栈DlOl —调用栈D100)对调用栈DlOO和DlOl分类,因为调用栈DlOl的深度较浅。接下来,处理栈分析部分210将预定处理重复与在步骤Α301中被分类的列表的入口(entry)数量相同的次数(步骤A302)。接下来,处理栈分析部分210将预定处理重复与调用栈的入口(b)数量相同的次数,入口(b)具有与在处理中的入口(a)的调用栈相同的深度(步骤A303)。接下来,处理栈分析部分210评估入口(a)的调用栈是否与入口(b)的调用栈相同(步骤A304)。当步骤A304的评估为真时,即当入口(a)的调用栈与入口(b)的调用栈相同时(在步骤A304处为“是”),处理栈分析部分210从操作日志中删除入口(b)(步骤A305)。当步骤A304的评估为假时,即当入口(a)的调用栈与入口(b)的调用栈不同时(在步骤A304处为“否”),或者在步骤A305的处理结束之后,处理栈分析部分210继续步骤A303的循环。也就是说,处理栈分析部分210对具有与在处理中的入口(a)的调用栈相同深度的调用栈的每一个入口(b)执行步骤A304和步骤A305的处理。接下来,处理栈分析部分210将预定处理重复与具有深度为(在处理中的入口(a)的调用栈深度-I)的调用栈的入口(c)数量相同的次数(步骤A303)。处理栈分析部分210评估入口(C)的调用栈是否被包括在入口(a)的调用栈中(步骤A307)。当步骤A307的评估为真,即当入口(c)的调用栈被包括在入口(a)的调用栈中时(在步骤A307处为“是”),处理栈分析部分210从操作日志中删除入口(c)(步骤A308)。当步骤A307的评估为假,即当入口(C)的调用栈不被包括在入口(a)的调用栈中时(在步骤A307处为“否”),或者在步骤A308的处理结束之后,处理栈分析部分210继续步骤A306的循环。也就是说,处理栈分析部分210对具有深度等于(在处理中的入口(a)的调用栈深度-I)的调用栈的每一个入口(c)执行步骤A307和步骤A308的处理。在步骤A306的循环结束之后,处理栈分析部分210继续步骤A302的循环。也就是说,处理栈分析部分210对在步骤A301中分类的列表的每一个入口执行步骤A303到A308的处理。通过执行上述操作,根据本发明的应用修改部分搜索装置能够自动地查找用于定制应用程序所必须的处理的修改候选部分。另外,应用程序开发者不需要理解整个应用程 序源代码,并且能够通过参考点候选报告330得知在定制应用程序121中修改是必要的源代码上的部分,据此能够轻松定制应用程序121。根据本发明的应用程序修改部分搜索装置使用方面技术通过嵌入方法自变量的比较性逻辑和参数生成了用于查找对于定制应用程序121所必须的处理的修改候选部分的日志。因此,根据本发明的应用程序修改部分搜索装置能够达到如上所述的全面搜索而不需要另外在应用程序121中实现特殊逻辑,并且能够防止应用程序121的源代码污染。当修改候选部分包括相同调用栈时,根据本发明的应用程序修改部分搜索装置采用具有最浅处理调用栈的修改候选部分,并排除重叠的修改候选部分的信息。因此,冗余修改候选部分的信息未被包括在获得的修改候选部分的报告中,且避免了定制处理被双重并入等问题。另外,根据本发明的应用程序修改部分搜索装置能够在单元测试和合并测试(其通常针对应用程序执行)期间查找源代码上对其来说修改是必要的部分。结果,根据本发明的应用程序修改部分搜索装置能够以低成本定制应用程序,因为开发处理不需要被改变也不需要被扩展。[示例]本示例示出了在由应用程序开发者生成预定参数列表以及测试执行部分100输出预定操作日志情况中的操作。图5示出了参数列表。参数列表示出了参数ElOO和参数E101。参数ElOO指示作为数据库的连接目的地的“dataSource”将在定制中被修改。参数ElOl指示作为设置文件路径的“setting, properties”将在定制中被修改。方面生成部分111基于参数定义生成了方面定义。图6示出了方面定义。方面定义使用AspectJ作为方面实现。方面定义实现了图3中的流程图。方面定义是由包括行FlOO到行F104的多个行组成。行FlOO指示了指示每一个方法调用的中断的定义。行FlOl定义了由“checkParameter”所定义的处理在由行FlOO所定义的时间处被执行。行F102表示行F103以及此后的行的处理被重复与图5中定义的参数的数量相同的次数。行F103表示行F104以及此后的行的处理被重复与作为检查目标的方法的自变量数量相同的次数。行F104表示对作为检查目标的参数和作为检查目标的方法自变量是否是相同的值进行检查并且在相同值的情况中处理调用栈被输出到操作曰志。接下来,方面生成部件111将以上述方式生成的图6中的方面定义输出到方面应用部分112。接下来,方面应用部分112将图6中的方面定义应用到执行引擎部分120,并应用到应用程序121。应用方法取决于执行引擎,并且未在本发明中定义。例如,当Java和AspectJ被用作执行引擎时,通过使用Java的代理功能附加了被称为加载时编织器(LoadTime Weaver)的AspectJ工具,以应用所述方面。接下来,执行引擎部分120执行测试程序310以执行用于应用程序121的覆盖测试。测试程序310使用了在图5中参数列表中定义的参数。也就是说,其被作为数据库连接到连接目的地“dataSource”并且“setting, properties”被用作为设置文件。在覆盖测试期间,每次当被包括在应用程序121中的方法调用发生时,被定义在图6的方面定义中的检查处理进行操作。也就是说,输入输出验证部分130检测方法调用。日志提取部分140基于由输入输出验证部分130所检测的方法调用来生成操作日志。图7示出自从日志提取部分140中输出的操作日志的示例。操作日志由多个入口 GlOO到G104构成。入口 GlOO指示了图5的参数定义的参数ElOO的参数值“dataSource”表现为类“A”的方法“二(two)”的自变量。入口 G100也指示了类“应用程序(Application)”的“主要(main)”方法,类“A”的“一(one)”方法和类“A”的“二(two)”方法按此顺序被调用为引导到类“A”的方法“二(two)”的调用栈。在每一个入口的右边的圆括号示出了在其中定义了相应方法的源代码上的位置,即源代码的文件和行数量。也就是说,入口 G100指示了类“A”的方法“二(two)”被定义在源代码“A. java”的第150行中。入口 GlOl指示了图5的参数定义的参数E100的参数值“dataSource”表现为类“A”的方法“二(two)”的自变量。入口 G102指示了图5的参数定义的参数E100的参数值“dataSource”表现为类“A”的方法“三(three)”的自变量。入口 G103指示了图5的参数定义的参数E100的参数值“dataSource”表现为类“A”的方法“四(four)”的自变量。入口 G104指示了图5的参数定义的参数E100的参数值“setting, properties”表现为类“A”的方法“五(five)”的自变量。在图4中的步骤A300的处理中,处理栈分析部分210将图7中的操作日志划分成数量与作为由参数定义所定义的参数的数量相同的数据片段。图8示出了对应于被划分的多个数据片段之间的参数E100的数据。数据由入口G100、入口 G101、入口 G102和入口 G103构成。在图7所示的多个入口中,入口 G100到G103分别指示了指示参数E100的参数值出现的入口。也就是说,入口 G100对应于图7所示的入口 G100。入口 GlOl对应于图7所示的入口 G101。入口 G102对应于图7所示的入口 G102。入口 G103对应于图7所示的入口 G103。图9示出了对应于被划分的多个数据片段之间的参数ElOl的数据。数据由入口G104构成。在图7所示的多个入口中,入口 G104指示了指示参数ElOl的参数值出现的入口。也就是说,入口 G104对应于图7所示的入口 G104。在图4的步骤S301的处理中,处理栈分析部分210将图8中的数据的入口分类并将图9中数据的入口分类。图10示出了通过将图8中数据的入口 G100到G103分类所生成的数据。数据由入口 G100、入口 G101、入口 G103和入口 G102构成。数据示出入口 G100的下一个是入口G101,入口 GlOl的下一个是入口 G103,入口 G103的下一个是入口 G102。由于入口 GlOO的调用栈的深度是三,入口 GlOl的调用栈的深度是三,入口 G102的调用栈的深度是四,入口G103的调用栈的深度是三,因此数据示出入口 G100、入口 G101、入口 G103和入口 G102被以深度的升序分类。也就是说,数据示出图8中数据的入口 G102和入口 G103的顺序互换。图9的数据由单个入口 G104构成,并且因此在图4的步骤A301的处理中未被改变以保留图9中所示的数据。在图4的步骤A303到A305的处理中,处理栈分析部分210从图10的数据入口中删除了预定入口并从图9的数据入口中删除了预定入口。图11示出了通过从图10的数据中删除预定入口所生成的数据。数据由入口 G100、入口 G103和入口 G102构成。由于图10的数据的入口 GlOO和GlOl的调用栈相同,因此数据示出了从图10的数据中删除入口 GlOl所生成的数据。图9的数据由单个入口 G104构成,并且因此在图4的步骤A303到A305的处理中 未删除入口从而使数据保留为如图9所示。在图4的步骤A306到A308的处理中,处理栈分析部分210从图11的数据入口中删除了预定入口并从图9的数据入口中删除了预定入口。图12示出了通过从图11的数据入口中删除预定入口所生成的数据。数据由入口GlOO和入口 G103构成。由于图11的数据的入口 G103的调用栈被包括在入口 G102的调用栈中,因此数据示出了通过从图11的数据中删除入口 G102所生成的数据。图9的数据由单个入口 G104构成,并且因此在图4的步骤A306到A308的处理中未删除入口从而使数据保留为如图9所示。在图2的步骤A106的处理中,报告生成部分220基于图12的数据和图9的数据生成点候选报告。图13示出了基于图12的数据和图9的数据生成的点候选报告。点候选报告由入口 G100、入口 G102 和入口 G104 构成。通过参考这样的点候选报告,应用程序开发者不需要理解整个应用程序源代码,并且能够了解在定制应用程序121中对其来说修改是必要的源代码上的部分,据此能够轻松定制应用程序121。在示例中,与图7所示的多个入口的数量相比,图11所示的多个入口的数量较小。也就是说,示例进一步指示使用根据本发明的应用程序修改部分搜索装置的根据本发明的应用程序修改部分搜索方法的执行能够阻止在修改候选部分包括相同调用栈的情况下定制处理被双重并入等问题。注意,根据本发明的应用程序修改部分搜索装置可由计算机实现。计算机包括可移除存储器驱动器或通信装置。当插入记录介质时,可移除存储器驱动器用来读出被记录在记录介质中的数据。当插入记录介质时,可移除存储器驱动器进一步用来安装被记录在计算机上的记录介质中的计算机程序。记录介质由闪存、磁盘(软盘、硬盘)、磁带(录像磁带)、光盘(⑶,DVD)和磁光盘例示。通信装置用来通过通信网络读出被记录在其他计算机上的信息。通信装置进一步用来将公开给通信网络的计算机程序安装到在计算机上。通信网络由LAN、互联网和专用线路例示。在此情况中,通过将实现这些功能的多个计算机程序安装到计算机上,计算机执行根据本发明的应用程序修改部分搜索方法。
关于在本说明书和附图之间的对应关系,参考标记100指示测试执行部分。参考标记200指示结果处理部分。参考标记300指示参数列表。参考标记110指示方面处理部分。参考标记111指示方面生成部分。参考标记112指示方面应用部分。参考标记120指示执行引擎部分。参考标记121指示应用程序。参考标记130指示输入输出验证部分。参考编号140指示日志提取部分。参考标记210指示处理栈分析部分。参考标记220指示报告生成部分。参考标记310指示测试程序。参考标记330指示点候选报告。已参照示例性实施例(其包括示例)具体说明了本发明,然而本发明不局限于上述实施例和示例。在不背离本发明的精神和范围的情况下,可以作出能够被本领域普通技术人员理解的本发明的各种形式和细节的变化。以上已与示例性实施例(其包括示例)一起说明了本发明,然而,对于本领域普通技术人员来说明显的是,这些示例性实施例(其包括示例)仅仅被提供用来解释本发明;示例性实施例(其包括示例)不应依赖于将权利要求解释为限制意义的目的。本申请基于并要求于2010年3月4日提交的日本专利申请No. 2010-047845的优·选权权益,其全部内容通过弓I用结合于此。上述实施例的部分或全部能够被说明为下列补充说明但不限于以下内容。(补充说明I)一种应用程序修改部分搜索装置,包括测试执行部分,该测试执行部分当基于输入参数对应用程序执行覆盖测试时生成多个日志;以及结果处理部分,该结果处理部分基于所述多个日志生成点候选报告,其中所述多个日志分别指示在所述覆盖测试的执行期间被调用的多个方法中、将所述参数指定为自变量的方法的调用栈,所述调用栈指示在所述应用程序上的其中定义了所述方法的调用的位置,并且所述点候选报告指示了在所述应用程序中当基于所述参数执行处理调度时对其来说修改是必要的点的候选。(补充说明2)根据补充说明I所述的应用程序修改部分搜索装置,其中所述测试执行部分包括方面处理部分,该方面处理部分基于所述参数生成程序逻辑;执行引擎部分,该执行引擎部分将所述程序逻辑应用到所述应用程序;输入输出验证部分,该输入输出验证部分当每一个方法被调用时基于所述程序逻辑评估所述参数是否表现为所述应用程序的每一个方法的自变量;以及日志提取部分,该日志提取部分当所述参数表现为所述每一个方法的自变量时基于所述每一个方法的调用栈生成所述日志。(补充说明3)根据补充说明2所述的应用程序修改部分搜索装置,其中所述结果处理部分包括处理栈分析部分,该处理栈分析部分从所述多个日志中提取多个提取日志;以及报告生成部分,该报告生成部分基于所述多个提取日志生成所述点候选报告,由所述点候选报告所指示的多个候选对应于所述多个提取日志;并且
所述多个候选中对应于单个日志的候选指示了由所述单个日志所指示的调用栈中的最深调用。(补充说明4)根据补充说明3所述的应用程序修改部分搜索装置,其中当所述多个日志的第一日志包括所述多个日志的第二日志时,所述处理栈分析部分通过从所述多个日志中删除所述第一日志来生成所述多个提取日志。(补充说明5)根据补充说明3或补充说明4所述的应用程序修改部分搜索装置,其中所述测试执行部分当不同于所述参数的另一参数被进一步输入时生成多个完整日志,所述处理栈分析部分进一步将所述多个完整日志划分成所述多个日志和指示所 述多个方法中将所述另一参数指定为自变量的另一方法的调用栈的多个其他日志,并且从所述多个其他日志中提取多个其他提取日志,并且所述报告生成部分进一步基于所述多个其他提取日志生成所述点候选报告。(补充说明6)一种应用程序修改部分搜索方法,包括当基于输入参数对应用程序执行覆盖测试时生成多个日志的步骤;基于所述多个日志生成点候选报告的步骤;以及基于所述点候选报告定制所述应用程序的步骤,其中所述多个日志分别指示在所述覆盖测试的执行期间被调用的多个方法中将所述参数指定为自变量的方法的调用栈,所述调用栈指示在所述应用程序上的其中定义了所述方法的调用的位置,并且所述点候选报告指示了在所述应用程序中当基于所述参数执行处理调度时对其来说修改是必要的点的候选。(补充说明7)根据补充说明6所述的应用程序修改部分搜索方法,还包括基于所述参数生成程序逻辑的步骤;将所述程序逻辑应用到所述应用程序的步骤;当调用每一个方法时,基于所述程序逻辑评估所述参数是否表现为所述应用程序的每一个方法的自变量的步骤;以及当所述参数表现为所述每一个方法的自变量时,基于所述每一个方法的调用栈生成所述日志的步骤。(补充说明8)根据补充说明7所述的应用程序修改部分搜索方法,还包括从所述多个日志中提取多个提取日志的步骤;以及基于所述多个提取日志生成所述点候选报告的步骤,其中由所述点候选报告所指示的多个候选对应于所述多个提取日志;并且所述多个候选中对应于单个日志的候选指示了由所述单个日志所指示的调用栈中的最深调用。
(补充说明9)根据补充说明8所述的应用程序修改部分搜索方法,其中当所述多个日志的第一日志包括所述多个日志的第二日志时,通过从所述多个日志中删除所述第一日志来生成所述多个提取日志。(补充说明10)根据补充说明8或补充说明9所述的应用程序修改部分搜索方法,还包括将不同于所述参数的另一参数被进一步输入时生成的多个完整日志划分成所述多个日志和指示所述多个方法中将所述另一参数指定为自变量的另一方法的调用栈的多个其他日志的步骤;以及从所述多个其他日志中提取多个其他提取日志的步骤,
其中进一步基于所述多个其他提取日志生成所述点候选报告。(补充说明11)一种使得计算机执行根据补充说明6到10中任意一项所述的应用程序修改部分搜索方法的计算机程序。(补充说明12)一种记录了根据补充说明11所述的应用程序修改部分搜索方法的计算机可读记录介质。
权利要求
1.一种应用程序修改部分搜索装置,包括 测试执行部分,该测试执行部分当基于输入参数对应用程序执行覆盖测试时生成多个日志;以及 结果处理部分,该结果处理部分基于所述多个日志生成点候选报告, 其中所述多个日志分别指示在所述覆盖测试的执行期间被调用的多个方法中、将所述参数指定为自变量的方法的调用栈, 所述调用栈指示在所述应用程序上的其中定义了所述方法的调用的位置,并且所述点候选报告指示了在所述应用程序中当基于所述参数执行处理调度时对其来说修改是必要的点的候选。
2.根据权利要求I所述的应用程序修改部分搜索装置,其中所述测试执行部分包括 方面处理部分,该方面处理部分基于所述参数生成程序逻辑; 执行引擎部分,该执行引擎部分将所述程序逻辑应用到所述应用程序; 输入输出验证部分,该输入输出验证部分当所述应用程序的每一个方法被调用时基于所述程序逻辑评估所述参数是否表现为所述每一个方法的自变量;以及 日志提取部分,该日志提取部分当所述参数表现为所述每一个方法的自变量时基于所述每一个方法的调用栈生成所述日志。
3.根据权利要求2所述的应用程序修改部分搜索装置,其中所述结果处理部分包括 处理栈分析部分,该处理栈分析部分从所述多个日志中提取多个提取日志;以及 报告生成部分,该报告生成部分基于所述多个提取日志生成所述点候选报告, 其中,由所述点候选报告所指示的多个候选对应于所述多个提取日志;并且所述多个候选中对应于单个日志的候选指示了由所述单个日志所指示的调用栈中的最深调用。
4.根据权利要求3所述的应用程序修改部分搜索装置,其中当所述多个日志的第一日志包括所述多个日志的第二日志时,所述处理栈分析部分通过从所述多个日志中删除所述第一日志来生成所述多个提取日志。
5.根据权利要求3或4所述的应用程序修改部分搜索装置,其中所述测试执行部分当不同于所述参数的另一参数被进一步输入时生成多个完整日志, 所述处理栈分析部分进一步将所述多个完整日志划分成所述多个日志和指示所述多个方法中将所述另一参数指定为自变量的另一方法的调用栈的多个其他日志,并且从所述多个其他日志中提取多个其他提取日志,并且 所述报告生成部分进一步基于所述多个其他提取日志生成所述点候选报告。
6.—种应用程序修改部分搜索方法,包括 当基于输入参数对应用程序执行覆盖测试时生成多个日志的步骤; 基于所述多个日志生成点候选报告的步骤;以及 基于所述点候选报告定制所述应用程序的步骤, 其中所述多个日志分别指示在所述覆盖测试的执行期间被调用的多个方法中将所述参数指定为自变量的方法的调用栈, 所述调用栈指示在所述应用程序上的其中定义了所述方法的调用的位置,并且 所述点候选报告指示了在所述应用程序中当基于所述参数执行处理调度时对其来说修改是必要的点的候选。
7.根据权利要求6所述的应用程序修改部分搜索方法,还包括 基于所述参数生成程序逻辑的步骤; 将所述程序逻辑应用到所述应用程序的步骤; 当调用所述应用程序的每一个方法时,基于所述程序逻辑评估所述参数是否表现为所述每一个方法的自变量的步骤;以及 当所述参数表现为所述每一个方法的自变量时,基于所述每一个方法的调用栈生成所述日志的步骤。
8.根据权利要求7所述的应用程序修改部分搜索方法,还包括 从所述多个日志中提取多个提取日志的步骤;以及 基于所述多个提取日志生成所述点候选报告的步骤, 其中由所述点候选报告所指示的多个候选对应于所述多个提取日志; 并且 所述多个候选中对应于单个日志的候选指示了由所述单个日志所指示的调用栈中的最深调用。
9.根据权利要求8所述的应用程序修改部分搜索方法,其中当所述多个日志的第一日志包括所述多个日志的第二日志时,通过从所述多个日志中删除所述第一日志来生成所述多个提取日志。
10.根据权利要求8或9所述的应用程序修改部分搜索方法,还包括 将不同于所述参数的另一参数被进一步输入时生成的多个完整日志划分成所述多个日志和指示所述多个方法中将所述另一参数指定为自变量的另一方法的调用栈的多个其他日志的步骤;以及 从所述多个其他日志中提取多个其他提取日志的步骤, 其中进一步基于所述多个其他提取日志生成所述点候选报告。
全文摘要
所公开的应用程序修改部分搜索装置设有测试执行单元和结果处理单元,测试执行单元用于当基于已输入的参数对应用程序执行穷尽测试时创建多个日志,结果处理单元用于基于多个日志创建点候选报告。多个日志中的每一个示出了当穷尽测试被执行时调用的多个方法中指定该参数作为自变量的方法的调用栈。调用栈额外示出了已定义了方法的调用的应用程序中的位置。点候选报告示出了在应用程序内的点中当通过参数执行处理切换时对其来说修改是必要的点的候选。
文档编号G06F9/44GK102782649SQ20118001231
公开日2012年11月14日 申请日期2011年3月2日 优先权日2010年3月4日
发明者副岛贤司 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1