测试软件代码的方法及装置制造方法及图纸

技术编号:12585489 阅读:63 留言:0更新日期:2015-12-24 02:00
本发明专利技术提供了一种测试软件代码的方法及装置,其中,测试软件代码的方法,包括:在软件代码的编辑过程中,获取所述软件代码的变更记录;在所述软件代码编辑完成后,对所述软件代码进行解析,得到所述软件代码中类之间的关系和所述软件代码的基本元素;根据所述类之间的关系和所述基本元素,依次查找与所述软件代码中变更的代码元素存在依赖关系的其它软件代码,直至查找到界面可执行元素,以确定所述软件代码的变更所影响的范围。通过本发明专利技术的技术方案,使得开发人员能够方便地了解到代码变更所带来的直观影响,以便于开发人员对代码变更的影响面进行充分的分析与测试。

【技术实现步骤摘要】

本专利技术涉及软件测试
,具体而言,涉及一种测试软件代码的方法和一种测试软件代码的装置。
技术介绍
在软件开发领域,软件调试工作、软件维护升级过程或者bug修改过程,时刻伴随着代码变更,而代码的变更通常会产生“副作用”,比如会影响到软件的内外部接口、功能特性和性能等多方面的内容,如果没有对代码变更的影响面进行充分的分析与测试,可能导致程序运行时出现异常甚至崩溃。如何保证代码变化对产品的影响范围的精确预测,并保证测试覆盖完全。针对上述问题,相关技术中提出了通过软件代码中改变的代码元素,确定代码元素之间的依赖,及各个改变的代码元素的影响因子,基于所确定的影响因子,确定代码测试的测试相关性排序,基于测试相关性排序,为软件代码选择测试用例,并对软件代码执行所选择的测试用例。但是,上述技术方案存在以下不足:首先,在绑定软件代码和测试用例的时候,源代码与测试用例关联很难被管理起来,由于代码的数量一般都比较庞大,当尝试手工建立代码与测试用例的关联时,很难做到准确和全面覆盖到所有代码,特别的,当代码的数量增加或更新频繁的时候,测试用例之间的关联关系很难同步及时更新。其次,选择测试用例并执行测试用例时,很难知道测试用例是否可以覆盖全部代码,在这种情况下,代码变更阻碍了对要覆盖到软件开发完整流程的目标。同时,不能使开发人员直观地了解到改变的代码元素所影响的范围,进而可能会影响开发人员对代码变更的影响面进行充分的分析与测试。
技术实现思路
本专利技术正是基于上述技术问题至少之一,提出了一种新的测试软件代码的方案,使得开发人员能够方便地了解到代码变更所带来的直观影响,以便于开发人员对代码变更的影响面进行充分的分析与测试。有鉴于此,本专利技术提出了一种测试软件代码的方法,包括:在软件代码的编辑过程中,获取所述软件代码的变更记录;在所述软件代码编辑完成后,对所述软件代码进行解析,得到所述软件代码中类之间的关系和所述软件代码的基本元素;根据所述类之间的关系和所述基本元素,依次查找与所述软件代码中变更的代码元素存在依赖关系的其它软件代码,直至查找到界面可执行元素,以确定所述软件代码的变更所影响的范围。在该技术方案中,通过根据对软件代码进行解析得到的类之间的关系和基本元素,查找与变更的代码元素存在依赖关系的其它软件代码,直至查找到界面可执行元素,使得在代码变更时,能够自动追溯代码变更所影响的范围,并且可以追溯到UI (UserInterface,用户界面)端,即查找到界面可执行元素,使得开发人员能够方便地了解到代码变更所带来的直观影响,以便于开发人员对代码变更的影响面进行充分的分析与测试。在上述技术方案中,优选地,还包括:呈现查找到的所述界面可执行元素;和/或基于查找到的所述界面可执行元素,选取相应的测试用例对所述界面可执行元素进行测试分析,并呈现对所述界面可执行元素的测试分析结果。在该技术方案中,在追溯到代码变更所影响的范围之后,可以直接呈现查找的界面可执行元素,以便于开发人员手动选择测试用例对查找到的界面可执行元素进行测试分析;同时,测试软件代码的装置也可以自动选择相应的测试用例对界面可执行元素进行测试分析,最终将测试分析结果直观地呈现给开发人员,由开发人员进行参考。在上述任一技术方案中,优选地,在通过所述测试用例对所述界面可执行元素进行测试分析之后,还包括:通过Emma对所述测试用例的代码覆盖率进行检查。在该技术方案中,通过采用E_a(用于检测和报告JAVA代码覆盖率的开源工具)对测试用例的代码覆盖率进行检查,使得对软件代码的测试分析能够覆盖软件开发的完整流程。在上述任一技术方案中,优选地,还包括:通过预定的数据结构存储所述软件代码中变更的代码元素和查找到的所述其它软件代码,以明确所述软件代码中变更的代码元素和所述其它软件代码之间的依赖关系。在上述任一技术方案中,优选地,获取所述软件代码的变更记录的步骤具体包括:在所述软件代码的编辑过程中,监听软件代码的提交动作;通过对提交的不同版本的软件代码进行对比,确定所述软件代码的变更记录。根据本专利技术的另一方面,还提出了一种测试软件代码的装置,包括:获取单元,用于在软件代码的编辑过程中,获取所述软件代码的变更记录;解析单元,用于在所述软件代码编辑完成后,对所述软件代码进行解析,得到所述软件代码中类之间的关系和所述软件代码的基本元素;查找单元,用于根据所述类之间的关系和所述基本元素,依次查找与所述软件代码中变更的代码元素存在依赖关系的其它软件代码,直至查找到界面可执行元素,以确定所述软件代码的变更所影响的范围。在该技术方案中,通过根据对软件代码进行解析得到的类之间的关系和基本元素,查找与变更的代码元素存在依赖关系的其它软件代码,直至查找到界面可执行元素,使得在代码变更时,能够自动追溯代码变更所影响的范围,并且可以追溯到UI (UserInterface,用户界面)端,即查找到界面可执行元素,使得开发人员能够方便地了解到代码变更所带来的直观影响,以便于开发人员对代码变更的影响面进行充分的分析与测试。在上述技术方案中,优选地,还包括:第一呈现单元,用于呈现查找到的所述界面可执行元素;和/或处理单元,用于基于查找到的所述界面可执行元素,选取相应的测试用例对所述界面可执行元素进行测试分析;第二呈现单元,用于呈现所述测试用例对所述界面可执行元素的测试分析结果。在该技术方案中,在追溯到代码变更所影响的范围之后,可以直接呈现查找的界面可执行元素,以便于开发人员手动选择测试用例对查找到的界面可执行元素进行测试分析;同时,测试软件代码的装置也可以自动选择相应的测试用例对界面可执行元素进行测试分析,最终将测试分析结果直观地呈现给开发人员,由开发人员进行参考。在上述任一技术方案中,优选地,所述处理单元还用于,在通过所述测试用例对所述界面可执行元素进行测试分析之后,通过Emma对所述测试用例的代码覆盖率进行检查。在该技术方案中,通过采用E_a (用于检测和报告JAVA代码覆盖率的开源工具)对测试用例的代码覆盖率进行检查,使得对软件代码的测试分析能够覆盖软件开发的完整流程。在上述任一技术方案中,优选地,还包括:存储单元,用于通过预定的数据结构存储所述软件代码中变更的代码元素和查找到的所述其它软件代码,以明确所述软件代码中变更的代码元素和所述其它软件代码之间的依赖关系。在上述任一技术方案中,优选地,所述获取单元包括:监听单元,用于在所述软件代码的编辑过程中,监听软件代码的提交动作;对比单元,用于通过对提交的不同版本的软件代码进行对比,确定所述软件代码的变更记录。通过以上技术方案,使得开发人员能够方便地了解到代码变更所带来的直观影响,以便于开发人员对代码变更的影响面进行充分的分析与测试,并且可以针对测试用例进行功能上的绑定,以便于自动选取测试用例进行分析测试,同时在执行完毕后可以通过代码覆盖率检查,确保决策的高效准确。【附图说明】图1示出了根据本专利技术的实施例的测试软件代码的方法的示意流程图;图2示出了根据本专利技术的一个实施例的测试软件代码的装置的示意框图;图3示出了根据本专利技术的另一个实施例的测试软件代码的装置的示意框图。【具体实施方式】为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和【具体本文档来自技高网...

【技术保护点】
一种测试软件代码的方法,其特征在于,包括:在软件代码的编辑过程中,获取所述软件代码的变更记录;在所述软件代码编辑完成后,对所述软件代码进行解析,得到所述软件代码中类之间的关系和所述软件代码的基本元素;根据所述类之间的关系和所述基本元素,依次查找与所述软件代码中变更的代码元素存在依赖关系的其它软件代码,直至查找到界面可执行元素,以确定所述软件代码的变更所影响的范围。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:李春丽
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:北京;11

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

1