提供修改相关信息的方法和装置制造方法及图纸

技术编号:9837535 阅读:72 留言:0更新日期:2014-04-02 01:43
本发明专利技术公开了一种用于提供修改相关信息的方法和装置。所述方法包括:获取对软件源代码进行修改的修改记录的信息,其中修改记录包括修改项;从修改项中识别出导致源代码的执行发生改变的初步备选修改项;在源代码中与初步备选修改项对应的位置插入测试探针,使得在使用测试用例对源代码进行测试的过程中可以输出与测试用例相关的备选修改项的信息;以及,组合将所述修改记录的信息与所述备选修改项的信息进行结合和分析,由此提供修改相关信息。所述装置与上述方法对应。利用上述方法和装置提供的修改相关信息能够示出有可能导致软件回归的修改记录及其中的修改项的信息,从而用于软件回归的识别和消除。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种用于提供修改相关信息的方法和装置。所述方法包括:获取对软件源代码进行修改的修改记录的信息,其中修改记录包括修改项;从修改项中识别出导致源代码的执行发生改变的初步备选修改项;在源代码中与初步备选修改项对应的位置插入测试探针,使得在使用测试用例对源代码进行测试的过程中可以输出与测试用例相关的备选修改项的信息;以及,组合将所述修改记录的信息与所述备选修改项的信息进行结合和分析,由此提供修改相关信息。所述装置与上述方法对应。利用上述方法和装置提供的修改相关信息能够示出有可能导致软件回归的修改记录及其中的修改项的信息,从而用于软件回归的识别和消除。【专利说明】提供修改相关信息的方法和装置
本专利技术涉及软件回归测试,更具体而言,涉及提供修改相关信息用于回归识别的方法和装置。
技术介绍
在软件开发过程中,开发人员针对软件要实现的功能编写出源代码,然后测试人员利用测试用例对基于源代码构建的软件进行测试。一般来说,源代码的编写是逐步完成的。开发人员(对于大型软件来说,通常是多个开发人员)不断地向源代码提交修改记录(track),从而对源代码进行修改、补充和完善。于是,存在这样一种情况:基于某个版本的源代码所构建的软件可以通过测试用例的测试,但是在添加了若干修改记录之后,软件不能正常运行,无法通过同样的测试用例的测试。这种现象称为软件回归(regression)。为了消除软件回归,开发人员需要找出导致软件回归的修改记录,这称为回归识别。导致软件回归的修改记录通常也称为缺陷性修改记录。现有技术中采用多种方式来识别缺陷性修改记录,也就是进行回归识别。在一种方案中,对于添加的多个修改记录依次进行测试。如果在某个修改记录i处软件可以通过测试但在下一修改记录(i+Ι)处不能通过测试,那么可以将修改记录(i+1)处识别为回归点,将修改记录(i+Ι)识别为缺陷性修改记录。该方案可以与二分法相结合来提高识别效率。例如,对于η个修改记录,从n/2处开始进行测试。如果在n/2处测试通过,则进一步在n/2与η的中点处进行测试;如果2/η处测试没有通过,则进一步在修改记录I与修改记录n/2的中点处进行测试,直到识别出如上所定义的缺陷性记录。在这样的方案中,回归识别所花费的时间依赖于修改记录的数目n,每次构建花费的时间b和测试花费的时间t。平均来说,识别出回归点所花费的时间为n/2*(b+t)。对于大型软件的开发与测试,b和t都可能花费较长时间,因此,这样的识别过程要花费很长时间。在另一种方案中,每提交一个修改记录,就重新对软件进行构建和测试。如果软件不能通过测试用例的测试,就判定新添加的修改记录为缺陷性修改记录。这样的方案可以容易地确定出回归点。但是,该方案显著增加了构建和测试的频率。对于一些大型软件开发来说,高频率的构建和测试是不切实际的。除了花费较长时间和较多精力之外,以上的方案只能确定出回归点,而不能给出更详细的信息,从而为开发人员的调试和纠错提供建议。因此,希望提出新的方案,能够更加有效地识别并消除软件回归。
技术实现思路
鉴于以上提出的问题,提出本专利技术,旨在提供一种方案,通过提供修改相关信息,为软件回归测试中的回归识别和回归消除提供帮助。根据本专利技术一个实施例,提出了一种修改相关信息的方法,包括:获取对软件源代码进行修改的至少一个修改记录的信息,所述至少一个修改记录包括至少一个修改项;从所述至少一个修改项中识别出至少一个初步备选修改项,所述初步备选修改项是导致源代码的执行发生改变的修改项;在所述源代码中与所述至少一个初步备选修改项对应的位置插入测试探针,从而在使用测试用例对所述源代码进行测试的过程中输出至少一个备选修改项的信息,所述至少一个备选修改项是所述至少一个初步备选修改项中与所述测试用例相关的修改项;以及,组合所述至少一个修改记录的信息与所述至少一个备选修改项的信息,基于组合的结果提供所述修改相关信息。根据另一实施例,提出了一种用于提供修改相关信息的装置,包括:获取单元,配置为获取对软件源代码进行修改的至少一个修改记录的信息,所述至少一个修改记录包括至少一个修改项;识别单元,配置为从所述至少一个修改项中识别出至少一个初步备选修改项,所述初步备选修改项是导致源代码的执行发生改变的修改项;测试探针插入单元,配置为在所述源代码中与所述至少一个初步备选修改项对应的位置插入测试探针,从而在使用测试用例对所述源代码进行测试的过程中输出至少一个备选修改项的信息,所述至少一个备选修改项是所述至少一个初步备选修改项中与所述测试用例相关的修改项;提供单元,配置为组合所述至少一个修改记录的信息与所述至少一个备选修改项的信息,基于组合的结果提供所述修改相关信息。利用上述方法和装置,可以在用测试用例对源代码进行单次测试期间提供修改相关信息,该修改相关信息能够示出有可能导致软件回归的修改记录及其中的修改项的信息。这样的信息对于有效地识别并消除软件回归非常有利。【专利附图】【附图说明】通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1示出了适于用来实现本专利技术实施方式的示例性计算机系统/服务器12的框图。图2示出根据本专利技术一个实施例的提供修改相关信息的方法的流程图;图3示出一个修改记录的例子;图4示出一个测试用例在源代码中的执行路径的示意图;图5示出根据一个实施例提供的修改相关信息的示意图;图6示出根据另一个实施例提供的修改相关信息的示意图;图7示出根据本专利技术一个实施例的提供修改相关信息的装置的框图;以及图8示出根据本专利技术一个实施例的装置的结构图。【具体实施方式】下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。所属
的技术人员知道,本专利技术可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本专利技术还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指本文档来自技高网
...

【技术保护点】
一种提供修改相关信息的方法,包括:获取对软件源代码进行修改的至少一个修改记录的信息,所述至少一个修改记录包括至少一个修改项;从所述至少一个修改项中识别出至少一个初步备选修改项,所述初步备选修改项是导致源代码的执行发生改变的修改项;在所述源代码中与所述至少一个初步备选修改项对应的位置插入测试探针,从而在使用测试用例对所述源代码进行测试的过程中输出至少一个备选修改项的信息,所述至少一个备选修改项是所述至少一个初步备选修改项中与所述测试用例相关的修改项;组合所述至少一个修改记录的信息与所述至少一个备选修改项的信息,基于组合的结果提供所述修改相关信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:官孝峰蒋健曹蕾
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1