一种选择回归测试用例的方法和装置制造方法及图纸

技术编号:9840560 阅读:84 留言:0更新日期:2014-04-02 03:45
本发明专利技术提供了一种选择回归测试用例的方法和装置,其中方法包括:S1、分析被测对象代码的逆向调用关系,建立影响面模型树,所述影响面模型树中的节点为函数,节点之间的连接为函数之间的逆向调用关系;以及,将被测对象代码与历史版本代码进行比较,确定被测对象代码的修改;S2、基于影响面模型树和被测对象代码的修改,采用辐射算法确定污染节点;S3、基于所述污染节点选择对应的测试用例集。通过本发明专利技术实现了回归测试用例的自动选择,提高了精确性和效率,降低了人工成本。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种选择回归测试用例的方法和装置,其中方法包括:S1、分析被测对象代码的逆向调用关系,建立影响面模型树,所述影响面模型树中的节点为函数,节点之间的连接为函数之间的逆向调用关系;以及,将被测对象代码与历史版本代码进行比较,确定被测对象代码的修改;S2、基于影响面模型树和被测对象代码的修改,采用辐射算法确定污染节点;S3、基于所述污染节点选择对应的测试用例集。通过本专利技术实现了回归测试用例的自动选择,提高了精确性和效率,降低了人工成本。【专利说明】一种选择回归测试用例的方法和装置【
】本专利技术涉及计算机应用
,特别涉及一种选择回归测试用例的方法和装置。【
技术介绍
】回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,在软件开发的各个阶段都会进行多次回归测试,因此选择合适的回归测试用例是非常有意义的。现有技术对回归测试用例的选择主要依靠测试人员向研发人员沟通了解的修改功能信息,将新修改的功能点和可能影响的功能点作为回归测试用例的选择依据,或者,依据经验判断可能出错的地方,依据可能出错的地方选取功能点作为回归测试用例的选择依据,或者,依据文档和沟通选取出核心和重要功能点,全部作为回归测试用例的选择依据。然而无论上述哪种方法均依靠人工的方式评估和选取,从而导致选取的回归测试用例不精确、选取效率低下且人工成本较高。【
技术实现思路
】有鉴于此,本专利技术提供了一种选择回归测试用例的方法和装置,以便于实现回归测试用例的自动选择,从而提高精确性和效率,降低人工成本。具体技术方案如下:一种选择回归测试用例的方法,该方法包括:S1、分析被测对象代码的逆向调用关系,建立影响面模型树,所述影响面模型树中的节点为函数,节点之间的连接为函数之间的逆向调用关系;以及,将被测对象代码与历史版本代码进行比较,确定被测对象代码的修改;S2、基于影响面模型树和被测对象代码的修改,采用辐射算法确定污染节点;S3、基于所述污染节点选择对应的测试用例集。根据本专利技术一优选实施例,步骤SI中所述分析被测对象代码的逆向调用关系,建立影响面模型树具体包括:S11、扫描所述被测对象代码,获得被测对象代码的所有类的函数;S12、遍历获得的函数,对每个函数进行代码扫描和Token识别,获得每个函数直接调用的函数,遍历完成后得到被测对象代码的函数调用关系;S13、遍历函数调用关系,记录每个函数所依赖的函数,遍历完成后得到被测对象代码的逆向调用关系,利用所述逆向调用关系建立影响面模型树。根据本专利技术一优选实施例,步骤SI中所述将被测对象代码与历史版本代码进行比较,确定被测对象代码的修改具体包括:对被测对象代码和历史版本代码进行diff计算,如果一个函数在所述历史版本代码中存在而在所述被测对象代码中不存在,则确定该函数为被删除函数;如果一个函数在所述历史版本代码中不存在而在所述被测对象代码中存在,则确定该函数为新增函数;如果一个函数在所述被测对象代码和所述历史版本代码中都存在,则进行函数内代码的diff计算,如果出现函数内代码不相同,则确定该函数为被修改函数。根据本专利技术一优选实施例,所述步骤S2具体包括:将所述被删除函数、新增函数和被修改函数标注为污染节点,在所述影响面模型树上查询污染节点所依赖的节点,再进一步查询查询到的节点所依赖的节点,直至查询结束,将查询到的节点也标注为污染节点。根据本专利技术一优选实施例,所述步骤S3具体包括:依据函数与回归测试用例的对应关系,从用例库中选择与所述污染节点所对应的回归测试用例构成所述测试用例集。一种选择回归测试用例的装置,该装置包括:信息抓取单元,用于获取被测对象代码和历史版本代码;逆向分析单元,用于分析所述被测对象代码的逆向调用关系,建立影响面模型树,所述影响面模型树中的节点为函数,节点之间的连接为函数之间的逆向调用关系;代码比较单元,用于将被测对象代码与历史版本代码进行比较,确定被测对象代码的修改;污染计算单元,用于基于影响面模型树和被测对象代码的修改,采用辐射算法确定污染节点;用例选择单元,用于基于所述污染节点选择对应的测试用例集。根据本专利技术一优选实施例,所述逆向分析单元具体包括:第一扫描模块,用于扫描所述被测对象代码,获得被测对象代码的所有类的函数;第二扫描模块,用于遍历所述第一扫描模块获得的函数,对每个函数进行代码扫描和Token识别,获得每个函数直接调用的函数,遍历完成后得到被测对象代码的函数调用关系;模型树建立模块,用于遍历函数调用关系,记录每个函数所依赖的函数,遍历完成后得到被测对象代码的逆向调用关系,利用所述逆向调用关系建立影响面模型树。根据本专利技术一优选实施例,所述代码比较单元被具体配置为:对所述被测对象代码和历史版本代码进行diff计算,如果一个函数在所述历史版本代码中存在而在所述被测对象代码中不存在,则确定该函数为被删除函数;如果一个函数在所述历史版本代码中不存在而在所述被测对象代码中存在,则确定该函数为新增函数;如果一个函数在所述被测对象代码和所述历史版本代码中都存在,则进行函数内代码的diff计算,如果出现函数内代码不相同,则确定该函数为被修改函数。根据本专利技术一优选实施例,所述污染计算单元被具体配置为:将所述被删除函数、新增函数和被修改函数标注为污染节点,在所述影响面模型树上查询污染节点所依赖的节点,再进一步查询查询到的节点所依赖的节点,直至查询结束,将查询到的节点也标注为污染节点。根据本专利技术一优选实施例,所述用例选择单元具体被配置为:依据函数与回归测试用例的对应关系,从用例库中选择与所述污染节点所对应的回归测试用例构成所述测试用例集。由以上技术方案可以看出,本专利技术实现了回归测试用例的自动选择,大大节约了人力成本,提高了回归测试用例选择的效率,通过自动化建模影响面模型树来实现污染节点的确定,进一步选择测试用例,相比较通过测试人员的经验或沟通的方式,大大提高了回归测试的精确性。【【专利附图】【附图说明】】图1为本专利技术实施例一提供的选择回归测试用例的方法流程图;图2为本专利技术实施例一提供的影响面模型树的建立流程图;图3为本专利技术实施例一提供的函数调用关系的实例图;图4为本专利技术实施例一提供的影响面模型树的实例图;图5为本专利技术实施例二提供的选择回归测试用例的装置结构图。【【具体实施方式】】为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描 述。实施例一、图1为本专利技术实施例一提供的选择回归测试用例的方法流程图,在该实施例中以被测对象代码库和测试用例库为基础自动实现回归测试用例的选择,如图1所示,该方法具体包括以下步骤:步骤101:分析被测对象代码的逆向调用关系,建立影响面模型树。本步骤主要采用代码静态分析技术,通过扫描代码识别关键字从而获得代码结构,然后通过逆向分析算法建立代码修改的影响面模型树,影响面模型树中的节点为函数,节点之间的连接为函数之间的逆向调用关系(即依赖关系)。其中在获得代码结构时,需要考虑测试用例和代码结构的映射关系,此处可以采用函数作为代码结构的节点(node),用函数调用关系图来描述代码结构。具本文档来自技高网...

【技术保护点】
一种选择回归测试用例的方法,其特征在于,该方法包括:S1、分析被测对象代码的逆向调用关系,建立影响面模型树,所述影响面模型树中的节点为函数,节点之间的连接为函数之间的逆向调用关系;以及,将被测对象代码与历史版本代码进行比较,确定被测对象代码的修改;S2、基于影响面模型树和被测对象代码的修改,采用辐射算法确定污染节点;S3、基于所述污染节点选择对应的测试用例集。

【技术特征摘要】

【专利技术属性】
技术研发人员:王开华王飞王海龙
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

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

1