应用检测方法及应用检测装置制造方法及图纸

技术编号:15639157 阅读:109 留言:0更新日期:2017-06-15 21:45
本发明专利技术提供一种应用测试方法,其包括:遍历测试应用的测试项目代码,获取测试项目代码中的每个子项目代码;将插桩函数文件拷贝到子项目代码的预设位置;通过插桩函数文件,遍历子项目代码中的所有函数文件;对函数文件进行语法分析,获取子项目代码中的每个函数文件的函数入口;在函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过插桩信息对测试应用的测试覆盖率进行反馈。本发明专利技术还提供一种应用测试装置,本发明专利技术通过在测试项目代码中设置插桩函数文件,实现了插桩函数的设置,从而有效的降低了插桩操作的工作量,且占用的存储空间以及网络资源均较小。

【技术实现步骤摘要】
应用检测方法及应用检测装置
本专利技术涉及应用检测领域,特别是涉及一种应用检测方法及应用检测装置。
技术介绍
众测作为一种新兴的测试方法,可利用庞大的外网用户和丰富的机型,以弥补自动化测试的一些不足之处。但是由于参加众测任务的用户技能和提交反馈的质量相差较大,因此需要对用户提交反馈的有效性进行评价。现有的应用测试方法会以应用测试时的代码测试覆盖率作为用户提交反馈的有效性的评价标准。当用户执行应用测试任务期间的代码测试覆盖率达到或超过预先设定的阈值,则判定用户提交的反馈有效。计算用户执行应用测试期间的代码测试覆盖率需要对测试项目代码进行插桩操作,以此来判断哪些测试项目代码被执行到,哪些测试项目代码未被执行到。这里的插桩操作是指在保证原有测试项目代码的逻辑完整性的基础上在测试项目代码上插入一些进行信息采集的代码段,如信息采集语句等。现有的代码插桩技术均需要手动对测试项目代码进行一定量的修改,以便生成插桩结果信息,因此插桩操作的工作量较大。且现有的代码插桩方案均是对所有的测试项目代码进行全量插桩,即只要应用程序在运行过程中,该应用程序就会不断输出插桩信息,从而导致插桩信息占用的存储空间较大且插桩信息的上报需要占用较多的网络资源。
技术实现思路
本专利技术实施例提供一种插桩操作的工作量、占用的存储空间以及网络资源均较小的应用检测方法及应用检测装置;以解决现有的应用检测方法及应用检测装置中的插桩操作的工作量较大、占用的存储空间较大以及占用的网络资源较大的技术问题。本专利技术实施例提供一种应用测试方法,其包括:遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码;将插桩函数文件拷贝到所述子项目代码的预设位置;通过所述插桩函数文件,遍历所述子项目代码中的所有函数文件;对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口;以及在所述函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过所述插桩信息对所述测试应用的测试覆盖率进行反馈。本专利技术实施例还提供一种应用测试装置,其包括:子项目代码获取模块,用于遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码;插桩函数文件拷贝模块,用于将插桩函数文件拷贝到所述子项目代码的预设位置;函数文件遍历模块,用于通过所述插桩函数文件,遍历所述子项目代码中的所有函数文件;函数入口获取模块,用于对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口;以及插桩函数设置模块,用于在所述函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过所述插桩信息对所述测试应用的测试覆盖率进行反馈。相较于现有技术,本专利技术的应用测试方法及应用测试装置通过在测试项目代码中设置插桩函数文件,实现了插桩函数的设置,该插桩函数可在测试应用进行测试时,以函数文件中的函数为单位输出插桩信息,从而有效的降低了插桩操作的工作量,且占用的存储空间以及网络资源均较小;解决了现有的应用检测方法及应用检测装置中的插桩操作的工作量较大、占用的存储空间较大以及占用的网络资源较大的技术问题。附图说明图1为本专利技术的应用测试方法的第一优选实施例的流程图;图2为本专利技术的应用测试方法的第二优选实施例的流程图;图3为本专利技术的应用测试装置的第一优选实施例的结构示意图;图4为本专利技术的应用测试装置的第二优选实施例的结构示意图;图5为本专利技术的应用测试装置的第二优选实施例的子项目代码获取模块的结构示意图;图6为本专利技术的应用测试装置的第二优选实施例的函数入口获取模块的结构示意图;图7为本专利技术的应用测试装置的第二优选实施例的插桩函数设置模块的结构示意图;图8为本专利技术的应用测试方法及应用测试装置的具体实施例的流程图;图9为本专利技术的应用测试装置所在的电子设备的工作环境结构示意图。具体实施方式请参照图式,其中相同的组件符号代表相同的组件,本专利技术的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本专利技术具体实施例,其不应被视为限制本专利技术未在此详述的其它具体实施例。在以下的说明中,本专利技术的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本专利技术原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。本专利技术的应用测试方法及应用测试装置可设置在各种对应用进行测试的电子设备中,该电子设备包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。该电子设备优选为进行众测任务的用户终端。本专利技术的电子设备通过在测试项目代码中设置插桩函数文件,实现了插桩函数的设置,该插桩函数可在测试应用进行测试时,以函数文件中的函数为单位输出插桩信息,从而有效的降低了插桩操作的工作量,且占用的存储空间以及网络资源均较小。请参照图1,图1为本专利技术的应用测试方法的第一优选实施例的流程图。本优选实施例的应用测试方法可使用上述的电子设备进行实施,本优选实施例的应用测试方法包括:步骤S101,遍历测试应用的测试项目代码,获取测试项目代码中的每个子项目代码;步骤S102,将插桩函数文件拷贝到子项目代码的预设位置;步骤S103,通过插桩函数文件,遍历子项目代码中的所有函数文件;步骤S104,对函数文件进行语法分析,获取子项目代码的每个函数文件的函数入口;步骤S105,在函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过插桩信息对测试应用的测试覆盖率进行反馈。下面详细说明本优选实施例的应用测试方法的各步骤的具体流程。在步骤S101中,应用测试装置遍历测试应用的测试项目代码。这里的测试应用是指用于进行众测操作的应用。该测试应用包括用于执行该应用的各种设定功能的测试项目代码,其中该测试项目代码包括多个子项目代码。这里的测试项目代码为这个应用的执行代码,子项目代码为该应用中的某个设定功能的执行代码。如微信平台具有聊天功能的子项目代码,也具有朋友圈功能的子项目代码等。这样应用测试装置可通过遍历所有的测试项目代码,获取测试项目代码中的每个子项目代码。随后转到步骤S102。在步骤S102中,应用测试装置将插桩函数文件拷贝到步骤S101获取的子项目代码的预设位置。这里的插桩函数文件可用于根据对应的子项目代码,生成相应插桩函数的文件。由于某些测试应用对新增代码需要进行合法性验证,这里将新增的插桩函数文件拷贝到子项目代码的预设位置,可较好的通过测试应用对新增的插桩函数文件的合法性验证,以便该插桩函数文件在子项目代码中生成对应的插桩函数。随后转到步骤S103。在步骤S103中,应用测试装置通过步骤S102设置的插桩函数文本文档来自技高网...
应用检测方法及应用检测装置

【技术保护点】
一种应用测试方法,其特征在于,包括:遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码;将插桩函数文件拷贝到所述子项目代码的预设位置;通过所述插桩函数文件,遍历所述子项目代码中的所有函数文件;对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口;以及在所述函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过所述插桩信息对所述测试应用的测试覆盖率进行反馈。

【技术特征摘要】
1.一种应用测试方法,其特征在于,包括:遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码;将插桩函数文件拷贝到所述子项目代码的预设位置;通过所述插桩函数文件,遍历所述子项目代码中的所有函数文件;对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口;以及在所述函数文件的函数入口设置插桩函数,以便输出插桩信息,从而通过所述插桩信息对所述测试应用的测试覆盖率进行反馈。2.根据权利要求1所述的应用测试方法,其特征在于,所述遍历测试应用的测试项目代码,获取所述测试项目代码中的每个子项目代码的步骤包括:遍历所述测试项目代码中的预设配置文件;以及根据所述预设配置文件确定所述测试项目代码中的每个子项目代码。3.根据权利要求1所述的应用测试方法,其特征在于,所述将插桩函数文件拷贝到所述子项目代码的预设位置的步骤之后还包括:根据所述子项目代码的编号,对所述插桩函数文件进行重命名操作。4.根据权利要求1所述的应用测试方法,其特征在于,所述对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口的步骤包括:判断所述函数文件是否为控件函数文件;以及如所述函数文件为控件函数文件,则对所述函数文件进行语法分析,获取所述子项目代码中的每个函数文件的函数入口。5.根据权利要求4所述的应用测试方法,其特征在于,所述在所述函数文件的函数入口设置插桩函数的步骤为:在所述函数文件中设置所述插桩函数文件的路径;以及在所述函数文件的函数入口设置所述插桩函数,以便所述函数文件通过所述插桩函数文件对所述插桩函数进行识别。6.根据权利要求5所述的应用测试方法,其特征在于,所述在所述函数文件的函数入口的所述插桩函数的步骤包括:在所述函数文件的函数入口的同行代码尾部设置所述插桩函数。7.根据权利要求1所述的应用测试方法,其特征在于,所述应用测试方法还包括步骤:通过所述插桩函数对所述插桩信息进行加密操作。8.根据权利要求1所述的应用测试方法,其特征在于,所述插桩函数具有用于表示所述插桩函数是否开启的插桩状态标识。9.一种应用测试装置,其特征在于,包括:子项目代码获...

【专利技术属性】
技术研发人员:蒋艳军潘金赤许丽娜钟炜达蓝贤赟杨潼
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1