一种测试方法以及测试平台技术

技术编号:19691594 阅读:19 留言:0更新日期:2018-12-08 11:07
本申请提供了一种测试方法,包括:接收测试终端发送的第一覆盖率文件;其中,所述第一覆盖率文件包括被测试应用程序名称、版本号以及被执行覆盖的代码的行号;根据所接收的第一覆盖率文件的版本号以及自身存储的覆盖率文件的版本号将接收的第一覆盖率文件和自身存储的第二覆盖率文件进行数据整合,更新第二覆盖率文件;以及根据更新后的第二覆盖率文件生成覆盖率报告。本申请还提供了执行上述方法的测试平台。

【技术实现步骤摘要】
一种测试方法以及测试平台
本申请涉及信息
,尤其涉及一种应用于代码测试的测试方法以及测试平台。
技术介绍
当前,随着移动互联网的迅速发展,越来越多的移动互联网产品的发布节奏不断变快并且对质量的要求也越来越高,那么如何量化评估产品的发布质量变得尤为重要;且随着代码插桩变得越来越容易,代码覆盖率被越来越多的测试团队引用作为重要的评估手段之一。
技术实现思路
本申请的实例提出了一种测试方法。该测试方法包括:接收测试终端发送的第一覆盖率文件;其中,所述第一覆盖率文件包括被测试应用程序名称、版本号以及被执行覆盖的代码的行号;根据所接收的第一覆盖率文件的版本号以及自身存储的第二覆盖率文件的版本号将接收的第一覆盖率文件和自身存储的第二覆盖率文件进行数据整合,更新第二覆盖率文件;以及根据更新后的第二覆盖率文件生成覆盖率报告。本申请的实例还提出了一种测试平台。该测试平台包括:覆盖率文件收集服务器,用于接收测试终端发送的覆盖率文件;其中,所述覆盖率文件包括被测试应用程序名称、版本号以及被执行覆盖代码的行号;以及覆盖率报告生成服务器,用于根据所接收的第一覆盖率文件的版本号以及自身存储的第二覆盖率文件的版本号将接收的第一覆盖率文件和自身存储的第二覆盖率文件进行数据整合,更新第二覆盖率文件;以及根据更新后的第二覆盖率文件生成覆盖率报告。本申请的实例还提出了一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述方法的步骤。通过上述测试方案和测试平台,测试人员可以随时下载测试包,随时进行测试,并可以随时将自身通过测试得到的覆盖率文件反馈给测试平台进行覆盖率数据整合,而且并不限制多个测试人员进行测试的测试包的版本必须相同。这样的测试流程更加贴合现阶段应用程序快速以及测试的需求,而且允许多人同时对同一应用程序的不同部分进行并行测试,实现快速测试。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请一实例的系统结构示意图;图2为本申请一实例的测试方法的流程图;图3为本申请一实例的将从测试终端接收的覆盖率文件和测试平台自身存储的覆盖率文件进行数据整合的方法流程图;图4为本申请另一实例的测试方法的流程图;图5为本申请又一实例的测试方法的流程图;图6为本申请一实例的测试平台的结构示意图;图7为本申请一实例的服务器的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本专利技术的方案进行阐述。实施例中大量的细节仅用于帮助理解本专利技术的方案。但是很明显,本专利技术的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本专利技术的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。本专利技术的专利技术人在研究的过程发现,现有的技术方案中最常见的是对应用程序的代码进行插桩然后生成单一的测试包,并对其进行测试,同时生成对应的覆盖率文件,但是这个方案目前只对测试团队非常小的规模(比如1人)会有效果。一旦测试团队人数达到2人或2人以上,上述方案将会缺乏应对能力;并且当测试人员需要更换测试包的时候,也无法实现及时测试,对实际生产的指导意义不强。为了解决上述问题,本申请的实例提出了一种测试平台,该测试平台一方面能够解决多人并行测试的问题,且可以适应不断更新的持续集成测试包代码开发环境,并可以针对测试覆盖情况提示测试人员补增测试用例进行补充测试使其代码覆盖率数据达标。另一方面,该测试平台可以全方位贴合研发流程,适应速度更快和规模更大的应用程序的开发环境。在本申请的一些实例中,上述测试平台可以对各个测试人员上传的在测试过程中生成覆盖率文件进行数据整合进而可以确定测试过程的代码覆盖率,例如差异化代码覆盖率,从而可以对应用软件的测试工作进行监控和管理。其中,差异化代码覆盖率对应于基于版本的增量开发模式,其具体含义是指对本次版本与上次版本的差异化代码进行测试后,得到此次测试被覆盖代码行数与差异化代码总行数的比值。通过差异化代码覆盖率可以了解到针对被测试应用程序的更新部分的代码测试情况。图1显示了本申请一些实例所述的测试平台所应用的系统结构示意图。如图1所示,本申请的系统至少包括:研发管理服务器11、测试平台12、测试终端13、网络14以及代码管理工具(SVN,子版本Subversion的简称)服务器15。在本申请的一些实例中,上述SVN服务器15用于对应用程序的各个版本的代码文件进行管理。具体而言,SVN服务器15可以接收并保存研发人员通过SVN客户端上传的一条或者多条代码修改记录(SVNLog)。其中,代码修改记录中可以包括一条或多条被修改代码的说明(具体可以为被修改代码实现的功能的说明和/或解决的需求的说明)以及具体的被修改的代码文件。此外,SVN服务器15可以根据研发人员通过SVN客户端上传的代码文件维护某个应用程序在不同版本下的完整代码文件。在本申请的一些实例中,上述研发管理服务器11可以是持续集成服务器,可以从SVN服务器15获取被测试应用程序某个版本的代码文件,并通过插桩操作生成以被测应用程序的名称和版本号为标识的待测试的测试包。在本申请的一些实例中,上述研发管理服务器11可以按照预先设定频率根据从SVN服务器15获取的代码文件并生成测试包,比如,研发管理服务器11可以每天或每半天根据获取的代码文件生成测试包。在本申请的一些实例中,上述测试终端13可以包括但不限于智能手机、PAD、笔记本电脑以及个人电脑等智能终端设备。这些测试终端上都安装有操作系统,包括但不限于:Android操作系统、Symbian操作系统、Windowsmobile操作系统、以及苹果iPhoneOS操作系统等等。测试终端13主要用于从研发管理服务器11获取测试包,安装并测试上述测试包,生成覆盖率文件,并将在测试过程中生成的覆盖率文件发送给测试平台12。其中,覆盖率文件可以包括被测试应用程序的名称、版本号以及被测试应用程序中被本次测试执行覆盖的代码的行号。在一些实例中,上述覆盖率文件还可以包括本次测试的代码段。在本申请的一些实例中,上述测试平台12可以实现如下功能:将从测试人员接收的覆盖率报告进行数据整合,并根据数据整合结果生成代码覆盖率报告。在一些实例中,上述测试平台12可以包括:覆盖率文件收集服务器101以及覆盖率报告生成服务器102。其中,上述覆盖率文件收集服务器101可以接入外部网络,并仅可以由被授权的终端访问,主要用于从测试终端13收集不同测试人员的通过测试生本文档来自技高网...

【技术保护点】
1.一种差异化代码覆盖率解决方法,其中,所述方法包括:接收测试终端发送的第一覆盖率文件;其中,所述第一覆盖率文件包括:被测试应用程序名称、版本号以及被测试应用程序中被执行覆盖的代码的行号;根据所接收的第一覆盖率文件的版本号以及自身存储的第二覆盖率文件的版本号将接收的第一覆盖率文件和自身存储的第二覆盖率文件进行数据整合,更新第二覆盖率文件;以及根据更新后的第二覆盖率文件生成覆盖率报告。

【技术特征摘要】
1.一种差异化代码覆盖率解决方法,其中,所述方法包括:接收测试终端发送的第一覆盖率文件;其中,所述第一覆盖率文件包括:被测试应用程序名称、版本号以及被测试应用程序中被执行覆盖的代码的行号;根据所接收的第一覆盖率文件的版本号以及自身存储的第二覆盖率文件的版本号将接收的第一覆盖率文件和自身存储的第二覆盖率文件进行数据整合,更新第二覆盖率文件;以及根据更新后的第二覆盖率文件生成覆盖率报告。2.根据权利要求1所述的方法,其中,所述根据所接收的第一覆盖率文件的版本号以及自身存储的第二覆盖率文件的版本号将接收的第一覆盖率文件和自身存储的第二覆盖率文件进行数据整合包括:针对所接收的第一覆盖率文件逐一执行下述过程:A、将所述第一覆盖率文件的版本号与第二覆盖率文件的版本号进行比较,如果所述第一覆盖率文件的版本号大于第二覆盖率文件的版本号,则执行B;如果所述第一覆盖率文件的版本号小于第二覆盖率文件的版本号,则执行C;如果所述第一覆盖率文件的版本号等于第二覆盖率文件的版本号,则执行D;B、将第二覆盖率文件中的覆盖率数据映射至第一覆盖率文件的版本,然后执行D;C、将第一覆盖率文件中的覆盖率数据映射至第二覆盖率文件的版本,然后执行D;以及D、将第一覆盖率文件和第二覆盖率文件进行合并,并将合并后的覆盖率文件作为第二覆盖率文件保存。3.根据权利要求2所述的方法,其中,所述将第二覆盖率文件中的覆盖率数据映射至第一覆盖率文件的版本包括:根据第一覆盖率文件对应的代码文件以及第二覆盖率文件对应的代码文件,将第二覆盖率文件中记录的已执行覆盖的代码的行号更新为第一覆盖率文件对应的代码文件中对应代码的行号;所述将第一覆盖率文件中的覆盖率数据映射至第二覆盖率文件的版本包括:根据第一覆盖率文对应的代码文件以及第二覆盖率文件对应的代码文件,将第一覆盖率文件中记录的已执行覆盖的代码的行号更新为第二覆盖率文件对应的代码文件中对应代码的行号;以及所述将第一覆盖率文件和第二覆盖率文件进行合并包括:将第一覆盖率文件中的已执行覆盖的代码的行号与第二覆盖率文件中已执行覆盖的代码的行号进行合并,并将合并后的行号集合作为第二覆盖率文件中已执行覆盖的代码的行号。4.根据权利要求3所述的方法,其中,所述将第二覆盖率文件中记录的已执行覆盖的代码的行号更新为第一覆盖率文件对应的代码文件中对应代码的行号包括:根据第一覆盖率文件的版本号获取第一覆盖率文件对应的代码文件;根据第二覆盖率文件中记录的已执行覆盖的代码的功能在获取的代码文件中找到功能对应的代码段,建立第一覆盖率文件和第二覆盖率文件两个版本的代码文件中对应代码段之间的映射关系;根据建立的两个对应代码段之间的映射关系建立两个版本代码文件中对应代码段的行号之间的映射关系;以及根据建立的两个版本代码文件中对应代码段的行号之间的映射关系,将第二覆盖率文件中记录的已执行覆盖的代码的行号更新为所获取的代码文件中对应代码的行号。5.根据权利要求3所述的方法,其中,所述将第一覆盖率文件中记录的已执行覆盖的代码的行号更新为第二覆盖率文件对应的代码文件中对应代码的行号包括:根据第一覆盖率文件中记录的已执行覆盖的代码的功能在自身存储的第二覆盖率文件对应的代码文件中找到功能对应的代码段,建立第一覆盖率文件和第二覆盖率文件两个版本的代码文件中对应代码段之间的映射关系;根据建立的两个对应代码段之间的映射关系建立两个版本代码文件中对应代码段的行号之间的映射关系;以及根据建立的两个版本代码文件中对应代码段的行号之间的映射关系,将第一覆盖率文件中记录的已执行覆盖的代码的行号更新为第二覆盖率文件的版本号所对应的代码文件中对应代码的行号。6.根据权利要求3所述的方法,其中,所述将第一覆盖率文件中的已执行...

【专利技术属性】
技术研发人员:赵丽娟谭春林胡娇汪花梅张威胥敏张迪
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1