一种基于修改影响分析的部件软件回归测试用例更新方法

文档序号:6375600阅读:308来源:国知局
专利名称:一种基于修改影响分析的部件软件回归测试用例更新方法
技术领域
本发明提出了一种基于修改影响分析的回归测试用例更新方法,主要是利用修改影响分析结果,对部件软件API回归测试用例进行更新,属于软件测试中回归测试的技术领域。
背景技术
现代的软件系统很多是由可重用的部件所构成,这些部件可以由第三方提供或者是内建的。在部件系统中,系统的质量主要依赖于系统的组成部件。在软件维护期间,任何的部件修改会对部件本身带来影响,还可能影响部件所在的整个软件系统。因此,我们需要对部件修改进行影响分析,这是部件软件质量保证的一种重要手段。有效的修改影响分析可以减少软件维护的成本,同时测试员只需要对受修改影响的部件功能或者关系进行测 试,从而也减少了回归测试的成本。在部件软件演化周期中,当部件由于更新或者升级而被修改以后,我们需要对部件和系统层面都要进行修改影响分析,同时也是为了后面的单元、集成以及系统重测做好前期的准备工作。基于模型的方法已经被广泛应用在修改影响分析和回归测试]等软件维护活动中,实践证明是有效可行的。在部件系统中,模型可以用来表示部件内部以及部件之间的依赖,交互及架构关系。因此,我们需要对部件系统进行合适的建模,来进行修改影响分析。从不同的视角,部件组成的系统可以建立不同的模型,比如从外部用户的角度,部件的主要功能是提供API,于是可以建立API模型;从系统层面看,部件之间存在着交互关系,还有组合,配置等多种架构关系,可以建立相应的系统模型。因此,建立合适的部件以及系统模型,是修改影响分析的重要前提。另外,模型还可以帮助定义重测标准和制定重集成策略,方便测试以及回归测试的自动化,对于整个软件维护阶段都有着重要意义。在部件软件中通常需要对部件功能操作序列进行测试。如何利用修改影响分析结果对部件功能访问测试序列进行更新是部件API回归测试的一项重要任务。

发明内容
本发明的目的是使用修改影响分析结果对部件API回归测试用例进行更新,该方法能够识别出部件修改影响,而且能够识别出受修改影响的部件API测试序列。本发明为实现上述目的,采用如下技术方案一种基于修改影响分析的部件软件回归测试用例更新方法,包括如下步骤I)通过比较部件修改前后版本的模型获取修改信息;2)创建部件功能调用图和功能数据调用图,用来表示部件内部功能,API及端口之间的依赖关系;其中,部件功能调用图表示部件内部功能函数之间的直接调用关系;功能数据调用图表示部件内部功能函数通过数据定义-使用所形成的依赖关系;(创建部件功能调用图和功能数据调用图是公知技术不详细描述)3)在部件功能调用图和功能数据调用图上面通过图可达性算法识别出受修改影响的部件功能,从而识别出受修改影响的部件API ;(公知技术不详细描述)4)将测试序列所覆盖的部件API在部件功能访问图上标识出;5)将步骤3)中识别的受影响的部件API匹配到部件功能访问图上面,然后结合步骤4)识别出需要添加、删除、修改以及重用的部件API回归测试用例。所述步骤5)中识别出需要添加、删除、修改以及重用的部件API回归测试用例的具体方法如下如果一个测试序列在修改前后的部件功能访问图中,并且该序列对应路径的所有节点都没有受修改影响,那么该测试序列是可重用的;如果一个测试序列对应路径的任意一个节点或链接被删除都没有受修改影响,并且该节点或链接也不存在于修改后的部件功能访问图中,那么该测试序列应该被删除;如果一个测试序列在修改前后的部件功能访问图中,并且该序列对应路径中至少有一个节点受到了修改影响,那么该测试序列是需要修改的;如果修改后的部件功能访问图中存在着新的路径,那么需要生成新的测试序列来覆盖。有益效果本发明方法提出了一种基于修改影响分析的部件软件回归测试用例更 新方法,利用修改影响分析识别出部件API修改及影响,然后建立重测模型,利用修改影响结果在重测模型上面识别出需要更新的回归测试用例。主要有以下一些优点(I)针对部件API进行修改影响分析及回归测试。对于部件用户来说,部件内部往往是不可见的。因此在部件更新或者新版本发布的时候,部件API的修改及其影响比较对用户是很重要的。用户可以根据修改影响结果对基于部件的系统进行重测分析和测试。(2)基于修改影响分析进行回归测试,可以利用修改影响分析结果,识别出需要重测的部件API,减少了多余测试用例的选择,从而降低了回归测试成本。(3)综合考虑了整个回归测试过程的各个阶段,比如修改识别,影响分析,保证了回归测试的系统性。利用本方法可以对部件修改后进行系统化的修改影响分析和回归测试。


图I是本发明提出的部件功能访问序列图的一个计算器例子。图2是本发明所采用的一般的部件回归测试过程示意图。图3是本发明的体系结构即本发明方法包括的主要的组件示例。图4是本发明方法的流程示意图。图5是本发明具体实施例中使用到的部件功能依赖图例子。
具体实施例方式下面结合附图对发明的技术方案进行详细说明。本发明所提出的一种基于修改影响分析的部件软件回归测试用例更新方法,虽然各个步骤都是常规公知技术,但是本发明的新颖性与创造性在于将现有的公知技术组合在一起解决了更新部件软件回归测试用例这个技术问题。本发明所提出的方法是现有技术中从未出现的。从外部用户者的角度,部件可以看成是一个API模型。部件对外的接口主要有API功能(参数)和端口。API就是部件对外提供的应用功能。端口表示部件内部调用外部其他部件功能的函数。本发明方法提出了一种基于修改影响分析的部件软件回归测试用例更新方法,利用修改影响分析识别出部件API修改及影响,然后建立重测模型,利用修改影响结果在重测模型上面识别出需要更新的回归测试用例。图I是本发明提出的部件功能访问序列图的一个计算器例子。图2给出了我们所采用的部件软件一般回归测试过程示意图。这里的回归测试主要有两部分组成修改分析和测试覆盖分析。修改分析主要是识别部件修改点。在程序修改信息不知的情况下,通常将原程序和修改后的程序比较,进行差异分析。在本发明中,部件修改信息也是可以通过比较修改前后的版本获知的。测试覆盖分析测试用例的覆盖部分。在本发明中,测试用例是基于API访问序列的,也就是部件API功能访问的测试序列。一、体系结构 图3给出了针对部件API回归测试用例更新设计体系结构。根据这个结构,我们可以设计本发明的软件实施工具。下面给出几个主要部分的具体说明。I数据层数据层主要是部件API回归测试的模型数据库和重测数据库。模型数据库存储的是我们使用到的一些重测模型以及源数据,比如本发明中的部件功能访问序列图CFAG,还有用于修改影响分析的依赖图模型,比如部件功能依赖图和部件数据功能依赖图。重测数据库包括所有的部件重测测试套。2服务层服务层是该体系结果的核心部分。在服务层最下面是回归测试库管理,上面是识别器和算法运行器。识别器用于支持上层的修改识别分析,包括对修改版本前后的部件软件进行差异识别,得到修改点。算法运行器涉及到上层的影响分析,重测识别以及覆盖分析等。影响分析需要在修改点上进行可达性算法计算,找出受影响的部件函数和API ;覆盖分析主要分析API测试序列所覆盖的API功能,将其在重测模型上体现出来;重测识别通过影响分析结果和覆盖分析结果,识别出需要添加、删除、修改以及重用的回归测试用例。3用户层用户层可以提供如下一些服务功能( I)部件资源管理,用于获取和维护部件元数据,包括API接口等。(2)测试用例管理,包括对测试用例和脚本进行添加、删除、修改等操作。(3)重测执行,用来支持测试套中部件API测试序列的执行。(4)测试和重测管理,用于获取和维护部件API测试模型,相关的源数据,以及更新的版本。(5)修改识别和分析,用于识别和分析新版本中部件的修改。(6)影响识别和分析,识别修改带来的影响。(7)测试用例更新,根据修改影响识别出需要重测的测试用例,并且添加,删除,和修改相应的测试用例。二、方法流程本方法的实现流程可以总结如下(I)通过比较部件修改前后版本的模型获取修改信息。流程(2)介绍具体的模型及建模过程。(2)创建部件功能调用图和功能数据调用图,用来表示部件内部功能,API及端口之间的依赖关系。部件功能调用图表示部件内部功能函数之间的直接调用关系;功能数据调用图表示部件内部功能函数通过数据定义-使用所形成的依赖关系。由于部件软件缺乏对外可见,可追踪和可管理的修改信息,所以从部件外部的角度来说,需要从某种机制中使得修改信息能够可见。在模型上面识别这些不同的修改类型,是影响分析的前提条件。比如说通过比较修改前后的部件功能依赖图FDG,我们可以识别出图中添加、删除和改动的结点或者边,从而识别出发生修改的的部件功能或者依赖关系。(3)修改影响分析。在部件功能调用图和功能数据调用图上面通过图可达性算法识别出受修改影响的部件功能,从而进一步识别出受修改影响的部件API。(4)测试覆盖分析。将API测试序列覆盖在部件功能访问图上表示,也就是将测试序列所覆盖的部件API在部件功能访问图上标识出。
(5)测试用例更新。将过程(3)中识别的受影响的部件API匹配到部件功能访问图上面,然后对受影响的测试序列进行更新操作,识别出需要添加、删除、修改以及重用的部件API回归测试用例。基于,部件功能访问图,我们有如下一些测试用例更新规则规则I如果一个测试序列在修改前后的部件功能访问图中,并且该序列对应路径的所有节点都没有受修改影响,那么该测试序列是可重用的;规则2如果一个测试序列对应路径的任意一个节点或链接被删除都没有受修改影响,并且该节点或链接也不存在于修改后的部件功能访问图中,那么该测试序列应该被删除;规则3如果一个测试序列在修改前后的部件功能访问图中,并且该序列对应路径中至少有一个节点受到了修改影响,那么该测试序列是需要修改的;规则4如果修改后的部件功能访问图中存在着新的路径,那么需要生成新的测试序列来覆盖。图4是本发明方法的流程示意图。实施例为了方便描述,我们假定有如下简化的应用实例我们有部件Cl的功能函数和API功能依赖图如图5所示。假设功能函数Fl被修改,那么对部件功能函数和API进行修改影响分析,在图上进行可达性运算(公知技术不进一步描述),可以得到受修改影响的部件功能分别是F2,F3,F4,F6,F5,F13,F14。根据API功能,我们得到受影响的API分别是F3_API,F4_API, F5_API, F14_API。假定我们有如下的API功能访问测试序列用例Tl:F3_API,F4_API,F7_APIT2: F3_API,F4_API,F5_APIT3: F3_API,F4_API,F16_APIT4:F7_API,F10_APIT5:F3_API, F12_API, F16_API根据我们的API功能访问测试序列更新规则,测试用例Tl,T2,T3所测试的序列中都有受修改影响的API,因此,Tl,T2,T3需要修改,而测试用例T4,T5中所测试的序列中没有受修改影响的API,因此,T4和T5 可以是可以重用的测试用例。
权利要求
1.一种基于修改影响分析的部件软件回归测试用例更新方法,其特征在于,包括如下步骤 1)通过比较部件修改前后版本的模型获取修改信息; 2)创建部件功能调用图和功能数据调用图,用来表示部件内部功能、API及端口之间的依赖关系;其中,部件功能调用图表示部件内部功能函数之间的直接调用关系;功能数据调用图表示部件内部功能函数通过数据定义-使用所形成的依赖关系; 3)在部件功能调用图和功能数据调用图上面通过图可达性算法识别出受修改影响的部件功能,从而识别出受修改影响的部件API ; 4)将测试序列所覆盖的部件API在部件功能访问图上标识出; 5)将步骤3)中识别的受影响的部件API匹配到部件功能访问图上面,然后结合步骤 4)识别出需要添加、删除、修改以及重用的部件API回归测试用例。
2.根据权利要求I所述的回归测试用例更新方法,其特征在于,所述步骤5)识别出需要添加、删除、修改以及重用的部件API回归测试用例的具体方法如下如果一个测试序列在修改前后的部件功能访问图中,并且该序列对应路径的所有节点都没有受修改影响,那么该测试序列是可重用的;如果一个测试序列对应路径的任意一个节点或链接被删除都没有受修改影响,并且该节点或链接也不存在于修改后的部件功能访问图中,那么该测试序列应该被删除;如果一个测试序列在修改前后的部件功能访问图中,并且该序列对应路径中至少有一个节点受到了修改影响,那么该测试序列是需要修改的;如果修改后的部件功能访问图中存在着新的路径,那么需要生成新的测试序列来覆盖。
全文摘要
本发明公布了一种基于修改影响分析的回归测试用例更新方法;首先对部件软件修改前后的版本进行修改分析,识别出修改点;接着对修改点在部件功能依赖图上面进行修改影响分析,得到受修改影响的部件功能和PI;最后,根据修改影响分析结果,将受影响的API映射到重测模型上,然后基于重测模型的影响,对回归测试用例进行添加、删除、修改、重用等更新。该方法能够识别出部件修改影响,而且能够识别出受修改影响的部件API测试序列。
文档编号G06F11/36GK102831060SQ201210303829
公开日2012年12月19日 申请日期2012年8月24日 优先权日2012年8月24日
发明者李必信, 陶传奇, 孙小兵 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1