判断应用程序测试覆盖范围的方法及程序测试设备技术

技术编号:14295556 阅读:91 留言:0更新日期:2016-12-26 01:26
本发明专利技术实施例公开一种判断应用程序测试覆盖范围的方法及其设备,其中方法包括如下步骤:当对目标程序进行测试时,对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的AST文本;基于所述AST文本获取所述目标函数的起始位置信息;按照所述起始位置信息对所述目标程序进行插桩测试。采用本发明专利技术,可以提升对程序的测试效果以及测试效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种判断应用程序测试覆盖范围的方法及程序测试设备
技术介绍
现如今,各种终端应用影响着人们的日常生活,为用户提供便利,因此对于终端应用的程序进行测试尤为重要。目前对于程序进行测试的过程是通过人为手动进行测试,然而人为手动测试容易造成对某段代码的重复测试或者所进行的测试未覆盖到某段代码,降低了对程序的测试效果以及测试效率,进而对后续的程序开发造成了影响。
技术实现思路
本专利技术实施例提供一种判断应用程序测试覆盖范围的方法及程序测试设备,可以提升对程序的测试效果以及测试效率。本专利技术实施例第一方面提供了一种判断应用程序测试覆盖范围的方法,可包括:当对目标程序进行测试时,对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的抽象语法树(Abstract Syntax Tree,AST)文本;基于所述AST文本获取所述目标函数的起始位置信息;按照所述起始位置信息对所述目标程序进行插桩测试。本专利技术实施例第二方面提供了一种程序测试设备,可包括:文本生成单元,用于当对目标程序进行测试时,对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的AST文本;信息获取单元,用于基于所述AST文本获取所述目标函数的起始位置信息;程序测试单元,用于按照所述起始位置信息对所述目标程序进行插桩测试。在本专利技术实施例中,当需要对目标程序进行测试时,通过对目标程序中的
目标函数进行预处理,并在预处理后生成目标函数对应的AST文本,可以基于AST文本获取目标函数的起始位置信息,最终按照起始位置信息对目标程序进行插桩测试。实现了对目标程序的自动测试,通过基于预先生成的AST文本获取目标函数的起始位置信息,保证了对程序进行覆盖测试的全面性,避免了对后续的程序开发的影响,提升了对程序的测试效果和测试效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种判断应用程序测试覆盖范围的方法的流程示意图;图2是本专利技术实施例提供的另一种判断应用程序测试覆盖范围的方法的流程示意图;图3是本专利技术实施例提供的又一种判断应用程序测试覆盖范围的方法的流程示意图;图4是本专利技术实施例提供的一种程序测试设备的结构示意图;图5是本专利技术实施例提供的一种信息获取单元的结构示意图;图6是本专利技术实施例提供的另一种信息获取单元的结构示意图;图7是本专利技术实施例提供的另一种程序测试设备的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供的判断应用程序测试覆盖范围的方法可以应用于对系统平台的应用程序进行插桩测试的场景,例如:对于针对IOS系统平台、Android系统平台等,当对目标程序进行测试时,程序测试设备可以对所述目标程序中
的目标函数进行预处理,并在预处理后生成所述目标函数对应的AST文本,所述程序测试设备基于所述AST文本获取所述目标函数的起始位置信息,所述程序测试设备按照所述起始位置信息对所述目标程序进行插桩测试的场景等。实现了对目标程序的自动测试,通过基于预先生成的AST文本获取目标函数的起始位置信息,保证了对程序进行覆盖测试的全面性,避免了对后续的程序开发的影响,提升了对程序的测试效果和测试效率。本专利技术实施例涉及的程序测试设备可以包括:平板电脑、智能手机、笔记本电脑、掌上电脑、个人计算机以及移动互联网设备(MID)等具备程序处理功能的终端设备。下面将结合附图1-附图3,对本专利技术实施例提供的判断应用程序测试覆盖范围的方法进行详细介绍。请参见图1,为本专利技术实施例提供了一种判断应用程序测试覆盖范围的方法的流程示意图。如图1所示,本专利技术实施例的所述方法可以包括以下步骤S101-步骤S103。S101,当对目标程序进行测试时,对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的AST文本;具体的,当需要对目标程序进行测试时,程序测试设备可以对所述目标程序中的目标函数进行预处理以生成所述目标函数对应的AST文本,优选的,所述程序测试设备可以调用Clang工具对所述目标函数生成所述AST文本,Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器,所述预处理的过程可以包括所述程序测试设备对所述目标函数进行预编译处理,并对预编译处理后的目标函数进行翻译,最终生成所述目标函数对应的AST文本。可以理解的是,所述AST包括所述目标函数对应的第一节点以及所述目标函数中函数体对应的第二节点,所述目标函数中可以包含一个或多个函数体,因此,针对多个函数体,每个函数体都分别对应有一个第二节点。以下的第二节点均表示所检测的当前节点对应的第二节点。S102,基于所述AST文本获取所述目标函数的起始位置信息;具体的,针对本专利技术实施例的第一种实现方式,当检测到当前节点为第二节点,且所述当前节点的父节点为所述第一节点时,所述程序测试设备解析所
述AST文本获取所述第一节点的节点信息和所述第二节点的节点信息,并根据所述第一节点的节点信息和所述第二节点的节点信息生成所述目标函数的起始位置信息。针对本专利技术实施例的第二种实现方式,当检测到当前节点为第一节点时,所述程序测试设备解析所述AST文本获取所述第一节点的节点信息,当检测到当前节点为第二节点时,所述程序测试设备解析所述AST文本获取所述第二节点的节点信息,所述程序测试设备根据最终所收集的所述第一节点的节点信息和所述第二节点的节点信息生成所述目标函数的起始位置信息。可以理解的是,所述程序测试设备中预先存储有函数和函数体在所述AST文本中所对应的第一节点的关键词和第二节点的关键词,例如:针对Objective-C语言,其函数对应的第一节点的关键词为ObjectCMethodDecl,其函数体对应的第二节点的关键词为CompoundStmt;针对C语言,其函数对应的第一节点的关键词为FunctionDecl,其函数体对应的第二节点的关键词为CompoundStmt等,因此AST文本的表达方式通常为:|-ObjectCMethodDecl 0x102873ee0<line:22:1,line:39:1>-……||-……||-……||-……||`-CompoundStmt 0x102880ae8<line:23:1,line:39:1>|||……|||`…………以上仅举例针对Objective-C语言中的一种AST文本的表达方式,其中每个节点的下一行相同缩进的起始位置标识若为“|-”或“-”,则表示下一行所表示的节点为当前节点的子节点,并且“-”表示下一行所表示的节点为当前节点的最后一个子节点。针本文档来自技高网
...
判断应用程序测试覆盖范围的方法及程序测试设备

【技术保护点】
一种判断应用程序测试覆盖范围的方法,其特征在于,包括:当对目标程序进行测试时,对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的抽象语法树AST文本;基于所述AST文本获取所述目标函数的起始位置信息;按照所述起始位置信息对所述目标程序进行插桩测试。

【技术特征摘要】
1.一种判断应用程序测试覆盖范围的方法,其特征在于,包括:当对目标程序进行测试时,对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的抽象语法树AST文本;基于所述AST文本获取所述目标函数的起始位置信息;按照所述起始位置信息对所述目标程序进行插桩测试。2.根据权利要求1所述的方法,其特征在于,所述对所述目标程序中的目标函数进行预处理,并在预处理后生成所述目标函数对应的AST文本,包括:对所述目标函数进行预编译处理,并对预编译处理后的目标函数进行翻译,以生成所述目标函数对应的AST文本。3.根据权利要求1或2所述的方法,其特征在于,所述AST包括所述目标函数对应的第一节点以及所述目标函数中函数体对应的第二节点;所述基于所述AST文本获取所述目标函数的起始位置信息,包括:当检测到当前节点为第二节点,且所述当前节点的父节点为所述第一节点时,解析所述AST文本获取所述第一节点的节点信息和所述第二节点的节点信息;根据所述第一节点的节点信息和所述第二节点的节点信息生成所述目标函数的起始位置信息。4.根据权利要求3所述的方法,其特征在于,所述当检测到当前节点为第二节点,且所述当前节点的父节点为所述第一节点之前,还包括:按照所述第一节点和所述第二节点的排列顺序,判断所述第二节点的节点属性;根据所述节点属性确定所述第二节点的起始位置标识。5.根据权利要求1或2所述的方法,其特征在于,所述AST包括所述目标函数对应的第一节点以及所述目标函数中函数体对应的第二节点;所述基于所述AST文本获取所述目标函数的起始位置信息,包括:当检测到当前节点为第一节点时,解析所述AST文本获取所述第一节点的节点信息;当检测到当前节点为第二节点时,解析所述AST文本获取所述第二节点的节点信息;根据所述第一节点的节点信息和所述第二节点的节点信息生成所述目标函数的起始位置信息。6.根据权利要求5所述的方法,其特征在于,所述解析所述AST文本获取所述第一节点的节点信息之前,还包括:将预设函数标识的当前数值从默认数值设置为启动数值;所述解析所述AST文本获取所述第二节点的节点信息之前,还包括:判断预设函数标识的当前数值是否为启动数值;若是,则将所述预设函数标识的当前数值从启动数值设置为默认数值。7.一种程序测试设备,其特征在于,包括:文本生成单元...

【专利技术属性】
技术研发人员:王进
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1