CN108459949B - 一种测试方法及终端 - Google Patents

一种测试方法及终端 Download PDF

Info

Publication number
CN108459949B
CN108459949B CN201710086698.7A CN201710086698A CN108459949B CN 108459949 B CN108459949 B CN 108459949B CN 201710086698 A CN201710086698 A CN 201710086698A CN 108459949 B CN108459949 B CN 108459949B
Authority
CN
China
Prior art keywords
function
development object
test
version
new version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710086698.7A
Other languages
English (en)
Other versions
CN108459949A (zh
Inventor
顾志翔
周海
魏学峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710086698.7A priority Critical patent/CN108459949B/zh
Publication of CN108459949A publication Critical patent/CN108459949A/zh
Application granted granted Critical
Publication of CN108459949B publication Critical patent/CN108459949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种性测试方法及终端,通过预先构建针对新版本的开发对象的功能函数映射关系,由于该功能函数映射关系能够表示该新版本的开发对象的功能及对应调用的各函数间的对应关系,所以,在获得新版本的开发对象相对于原版本的该开发对象的变更函数后,能够直接利用构建的该功能函数映射关系,准确且自动确定该变更函数将会影响到的新版本开发对象的测试功能,从而通过该测试功能精确定位需要测试的所有测试用例,不需要测试人员询问参与该开发对象的新版本开发的所有开发人员,也不用人工对各开发人员提供的变更函数进行一一检查,大大减少了测试人员的工作量。

Description

一种测试方法及终端
技术领域
本申请主要涉及计算机技术领域,更具体地说是涉及一种测试方法及终端。
背景技术
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。也就是说,目前很多企业、团队等都是由多个人共同开发一个项目,通过该版本控制系统来共用资源,以提高软件开发效率。
基于此,当多人共同开发的项目是针对现有应用等开发对象的版本更新,目前通常是由测试人员在测试之前,询问参与该项目的其他开发人员其所写代码可能造成的影响,再基于询问结果查询表格资源,从而对相应的功能模块进行测试,非常耗时,且检测精准度不高;若是由测试人员获得该项目的变更函数后,通过人工方式一一检查,虽然能够提高测试精准度,但测试过程花费的时间过长,且会进一步加大了测试人员的工作量。
发明内容
有鉴于此,本发明提供了一种测试方法及终端,通过利用构建的新版本开发对象的各功能与对应调用的函数间的关系,在获得该新版本的开发对象的变更函数后,直接确定变更函数对应的功能,从而对与该功能关联的测试用例进行测试,保证了测试精准度,且无需测试人员询问开发人员,也不需要人工一一检查,大大减少了测试人员的工作量。
为了实现上述目的,本申请提供了以下技术方案:
一种测试方法,所述方法包括:
获得新版本的开发对象相对于原版本的所述开发对象的变更函数;
利用已构建的针对所述新版本的开发对象的功能函数映射关系,确定所述新版本的开发对象运行中调用所述变更函数的功能,并将确定的所述新版本的开发对象的功能作为测试功能;
获取所述测试功能关联的测试用例,输出执行所述测试用例的测试结果。
本申请实施例还提供了一种测试终端,所述终端包括:
获得模块,用于获得新版本的开发对象相对于原版本的所述开发对象的变更函数;
处理模块,用于利用已构建的针对所述新版本的开发对象的功能函数映射关系,确定所述新版本的开发对象运行中调用所述变更函数的功能,并将确定的新版本的开发对象的功能作为测试功能,获取所述测试功能关联的测试用例;
输出模块,用于输出执行所述测试用例的测试结果。
由此可见,与现有技术相比,本申请提供了一种性测试方法及终端,通过预先构建针对新版本的开发对象的功能函数映射关系,由于该功能函数映射关系能够表示该新版本的开发对象的功能及实现该功能所调用的各函数间的对应关系,所以,在获得新版本的开发对象相对于原版本的该开发对象的变更函数后,能够直接利用构建的该功能函数映射关系,自动准确地确定新版本开发对象运行中,将会调用该变更函数的所有功能,即该变更函数可能会影响到的新版本的开发对象的所有功能,并将确定的这些功能作为测试功能,从而精确定位到变更函数影响到的客户端的所有测试用例,并输出执行该测试用例得到的测试结果,不需要测试人员询问参与该开发对象的新版本开发的所有开发人员,并对各开发人员提供的变更函数可能影响到测试用例进行一一检查,大大减少了测试人员的工作量,提高了测试精准度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种测试方法的流程图;
图2为本申请实施例提供的一种功能用例关系示意图;
图3为本申请实施例提供的另一种测试方法的部分流程图;
图4为本申请实施例提供的一种函数调用关系图的示意图;
图5为本申请实施例提供的一种功能触达方式示意图;
图6为本申请实施例提供的一种函数调用文件示意图;
图7为本申请实施例提供的一种功能函数映射关系示意图;
图8为本申请实施例提供的又一种测试方法的流程图;
图9为本申请实施例提供的一种测试终端的结构框图;
图10为本申请实施例的提供的另一种测试终端的结构框图;
图11为本申请实施例的提供的又一种测试终端的结构框图;
图12为本申请实施例提供的一种测试终端的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。其中,为了方便理解本申请技术方案,将对下文实施例可能涉及到的技术术语进行解释说明,具体如下:
测试用例:是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,内容通常包括测试目标、测试环境、输入数据、测试步骤、预期结果以及测试脚本等等,并形成文档,通常可以分为:功能性测试用例、界面测试用例、数据处理测试用例、操作流程测试用例、安装测试用例等等。可见,测试人员针对开发人员根据软件或游戏某个功能所编写测试条例,执行该测试用例后,可以将输出结果作为测试结果;
资源文件:多用于配置游戏或软件文件显示以及功能实现的开关;
精准测试:通过各种方式,将原有大量的测试内容精简到一小部分,也能保证测试质量的方式;
函数调用关系图:软件程序运行时的所有函数调用关系的图。
参照图1,为本申请实施例提供的一种测试方法的流程图,该方法可以包括以下步骤:
步骤S11,获的新版本的开发对象相对于原版本的该开发对象的变更函数;
在本实施例中,上述开发对象可以是游戏软件或其他应用程序等,本申请对其包括的具体内容不作限定。
在实际应用中,尤其是对现有的一款应用进行版本更新时,为了提高对该应用新版本的开发效率,通常会有多个开发人员参与,必要时还会有测试人员、管理人员等参数,从而使该应用的新版本信息(如配置文件、资源文件、代码函数等)由多人共同完成,一般情况下,对于新版本的不同内容通常是由不同的开发人员来完成,即分工合作,来进一步提高开发效率。
在开发人员将其所写的代码提交至版本控制系统后,通过差异化对比,如执行svndiff命令,从而获得当前针对同一个开发对象的新版本信息相对于原版本信息的变更函数(可以包括开发人员提交的代码)。也就是说,针对该开发对象,以最近一次的版本信息为基准,获得当前产生的新版本的该开发对象的差异化信息,如上述变更函数。
可选的,在获得新版本的开发对象的变更函数后,可以输出该变更函数,以便测试人员直观得知更改内容,根据需要,还可以调整不同类型变更函数的显示状态,如改变不停类型变更函数的背景颜色,字体颜色等等。
步骤S12,利用已构建的针对新版本的开发对象的功能函数映射关系,确定新版本的开发对象运行中调用该变更函数的所有功能,并将其作为该新版本的开发对象的测试功能;
其中,上述功能函数映射关系可以表示新版本的开发对象的各功能与实现该功能所调用的函数间的关系,本申请对该功能函数映射关系的具体表示方式不作限定。
可选的,该功能函数映射关系具体可以包括触达新版本的开发对象一个功能的过程中所调用函数的函数调用文件,而该函数调用文件包括至少一个函数,即触达该功能过程中调用的至少一个函数,本申请对该函数调用文件的具体输出形式不作限定,可以是记事本或其他形式的文件等等。
在本申请实际应用中,可以通过对开发对象的源码进行分析、并通过日志方式,确定并记录该开发对象具有的所有功能,具体可以记录各功能一一对应的功能按钮,之后,测试人员可以按照路径信息到达该功能按钮的显示界面并触发该功能按钮,记录该过程中所调用的至少一个函数,以及这至少一个函数间的调用顺序、次数等信息,从而生成针对每一个功能的函数调用文件来包含记录的这些信息,进而利用生成的所有函数调用文件,来构建一个针对新版本的开发对象的总的功能函数映射关系,以便利用该功能函数映射关系,快速且准确定位各函数对应的功能。
这样,在获得新版本的开发对象的变更函数后,终端可以直接查询预先构建的新版本开发对象的功能函数映射关系,从而准确且快速确定出该变更函数可能影响到的所有功能,无需人工一一查询变更代码及其会影响到的功能,大大提高了测试效率以及准确性。
其中,本申请上述确定的新版本开发对象的各功能实际上是对应显示界面上的功能按钮一一对应的功能,如依次通过进入任务界面、每日任务界面后的领取任务按钮,用户触发该功能按钮,终端将会调用相应函数实现对应功能,本申请对该功能表示的具体功能类型以及内容不作限定。
步骤S13,获取测试功能关联的测试用例;
步骤S14,输出执行该测试用例的测试结果。
在实际应用中,在开发人员完成项目开发后,通常需要对开发内容进行测试,主要是通过对开发内容相关的测试用例进行测试,来确定该开发内容是否有达到预期目的,以及是否对项目原有的功能造成不利影响等等。
基于此,本申请可以根据新版本的开发对象的版本信息,确定其涉及到的所有测试用例,并生成如图2所示的功能用例关系,表示新版本的开发对象的各功能(即功能模块对应的功能)与实现对应功能的测试用例件的关系,这样,本申请通过上述方式确定变更函数将会影响到的新版本开发对象的所有测试功能后,可以利用图2所示功能用例关系,确定与该测试功能关联的测试用例,即确定新版本的开发对象的变更函数影响到所有测试用例,之后,可以导出确定的测试用例,以便将这些测试用例分配给相应的测试人员进行测试。
可见,本申请获得测试功能关联的测试用例后,可以输出这些测试用例,以使用户直观得知新版本开发对象的变更函数可能会影响到该开发对象的哪些测试用例。具体的,可以通过点击“导出用例”按钮,将所获得的测试功能关联的测试用例导出并显示。此时,可以按照预先分配的各测试人员的测试任务,将所得测试用例分配给相应的测试人员进行测试。
需要说明的是,本申请对测试人员对测试用例的分配方式以及测试方式均不作限定。
为了清楚说明本申请测试方案,以游戏中的“道具模块”为例,由于该道具模块通常会采用可复用且统一的模板,并填写上各道具的名称及其对应的功能介绍,此时,若采用现有的测试方式,因表格资源无法确定“道具模块”是否在“背包”“游戏内”或“商城”等中展示或使用,将无法实现测试用例的精准定位;而若一一询问参与开发对象新版本开发的各开发人员,非常耗时,且因各开发人员不了解所写代码对其他功能的影响,这将会导致测试人员基于询问确定的测试用例不够全面,从而影响测试结果精准度。
而采用本申请这种测试方式,由于预先构建的新版本的开发对象的各功能与实现该功能所调用函数之间的映射关系,所以,在确定新版本开发对象的变更函数后,能够利用变更函数准确且快速确定相应的测试功能,即变更函数将会影响到的新版本开发对象的各功能,从而精准定位需要测试的新版本开发对象的测试用例,即与测试功能关联的所有测试用例,大大节约了沟通时间上的成本,保证了测试内容的精准度。
可选的,在上述实施例的基础上,本申请可以采用以下方式构建新版本开发对象的功能函数映射关系,但并不局限于下文描述的方式,本申请在此仅以为例进行说明,具体的,如图3所示,该功能函数映射关系的构建过程可以包括:
步骤S31,触达新版本的开发对象的各功能;
在本实施例实际应用中,可以通过触发新版本的开发对象的所有功能按钮,并记录该过程中调用的函数以及调用函数之间的顺序、次数等,从而根据记录结果,生成该新版本的开发对象的函数调用关系图,如图4所示,但并不局限于图4所示的函数调用关系图。
测试人员打开新版本的开发对象,可以触发其所有界面中的功能按钮,从而测试每一个功能按钮的功能对应调用的函数,即确定上述函数调用关系图中,触达该功能按钮调用的函数依次形成的分支。
以游戏为例,用户进入游戏界面后,可以点击“任务”按钮,进入任务中心界面,选择“每日任务”按钮,切换到相应的界面,用户就可以在该界面选择任务并点击“领取”按钮,即触达新版本的开发对象的领取任务功能,对于其他功能的触达方式类似,本实施例在此不再一一详述。
步骤S32,记录触达新版本的开发对象的各功能对应调用的至少一个函数,以及该至少一个函数间的函数调用顺序;
继上述描述,在触达新版本的开发对象的各功能过程中,即测试人员触发如上述“领取”任务按钮过程中,可以按照调用顺序记录所调用的函数,根据需要还可以记录函数调用的次数等等。
步骤S33,基于记录结果,生成各功能一一对应的函数调用文件。
如图5所示,对于新版本开发对象的任意一个功能来说,在触达该功能时,即找到并触发该功能的功能按钮过程中,本实施例可以将每次触发终端时调用的函数,按照其调用顺序记录到一个文件中,如记事本txt文件中,并将其作为该功能的函数调用文件。
可选的,在触达一功能时,还可以记录触达该功能对应的路径信息,并记录该路径信息,对生成的相应功能的函数调用文件进行命名,如图6所示,由于路径信息通过是按照点击时间命名的,所以,本申请可以按照依次点击对象的名称来构成该函数调用文件的文件名。
例如,“领取”按钮对应的领取功能,按照路径信息(即索引该功能按钮所在界面所产生的),可以将其对应的函数调用文件命名为“任务-每日任务-领取按钮”,可见,本申请可以按照“模块-小模块-按钮”的命名方式对生成的函数调用文件命名,以便测试人员能够直观地确定各函数调用文件记录的内容。
步骤S34,利用生成的所有函数调用文件,构建针对新版本的开发对象的功能函数映射关系。
在本实施例中,该功能函数映射关系实际上就是对上述生成的各功能一一对应的函数调用文件的总结,具体可以如图7所示的方式呈现出来,但并不局限于这一种方式。
由此可见,结合上述实施例的描述,在获得新版本的开发对象的变更函数后,可以将其与图7所示的功能函数映射关系中的各函数调用文件进行一一搜索匹配,检测各函数调用文件中是否包含有该变更函数,从而确定与获得的变更函数所在的函数调用文件,并将确定的函数调用文件对应的功能确定为该变更函数对应的功能。
举例说明,若经过搜索确定新版本的变更函数所在的函数调用文件是文件名为“任务-每日任务-领取按钮”,那么,可以认为该文件的功能为领取按钮对应的功能,如领取任务功能,所以,获得的上述变更函数对应的功能即为该领取任务功能。对于其他函数调用文件的确定过程类似,本实施例在此不再一一详述。
基于此,本申请通过构建新版本的开发对象的各功能与触达该功能所调用的函数之间的对应关系,以便能够利用变更函数即触达某一功能可能调用的函数,快速且直接确定与其对应的功能上,相当于从新版本的函数调用关系图中确定了触达各功能具体调用函数所在的分支,这样,在获得变更函数后,只要确定其所在分支,就能够准确确定与该变更函数对应功能,即该分支的功能,进而再确定与该功能关联的测试用例,完成对新版本开发对象的变更函数的全面测试。
可见,这与现有技术中利用变更函数从整个函数调用关系图中确定相应的功能的方式相比,本申请好比是在确定树的叶子节点后,直接找预先构建的其所在分支对应的功能,而不是直接从具有很多分支的树中确定该叶子节点对应的功能,显然,现有的这种方式只能确定一个较大的包含该叶子节点所在分支的总的父节点,将会增大测试工作量;若结合对开发人员的询问结果确定叶子节点所在的某一个分支的父节点,无法保证测试精准度。
可选的,在上述实施例的基础上,如图8所示,本申请提供的测试方法还可以包括:
步骤S81,检测新版本的开发对象的函数调用关系图;
其中,函数调用关系图表明了实现该新版本开发对象的各功能涉及到的所有函数之间的调用关系,根据开发对象的不同,该函数调用关系图包含的内容不同,本申请对此不作详述。
步骤S82,删除函数调用关系图中重复函数以及公用函数;
在实际应用中,可以通过交叉对比,将函数调用关系图中重复函数以及公用函数等删除,本申请对该公共函数包含的具体内容不作限定,其通常是是实现某些功能的通用函数。
步骤S83,利用删除后的函数调用关系图,构建针对新版本的开发对象的功能函数映射关系;
在本实施例中,关于功能函数映射关系的具体构建过程可以参照上述实施例对应部分的描述,本实施例在此不再赘述。
步骤S84,在进行新版本的开发对象的构建时,获取版本控制系统的变更信息;
在实际应用中,开发人员完成对开发对象的开发后,通常会将编写的代码等信息提交至版本控制系统,这样,在对新版本的开发对象进行测试时,可以获取版本控制系统的变更信息,如版本号、变更函数、配置信息等等。其中,该变更信息是当前需要测试的新版本信息相对于最近一次更新的该开发对象的版本信息之间的差异化信息。
步骤S85,基于该变更信息,判断新版本的开发对象是否存在相对于原版本的该开发对象的变更函数,若是,进入步骤S86;若否,返回步骤S81;
在本实施例中,该变更函数可以是针对某一个功能的增加或删除的代码等,需要说明的是,本申请对该变更函数的具体数量不作限定。
步骤S86,获得新版本的该开发对象相对于原版本的开发对象的变更函数;
在实际应用中,当新版本的开发对象相对于原版本的该开发对象之间存在差异时,通常不会只有变更函数这一差异化信息,还可以包括上述列举的版本号等等,本实施例在此可以获取变更信息中与能够对应不同功能的变更函数,如增加或删除的代码等。
其中,上述变更函数可以是开发人员记录的开发代码等,也可以是通过HOOK方式记录的函数内容,本申请对其记录方式以及包含的内容不作限定。
步骤S87,搜索功能函数映射关系中的函数调用文件,确定变更函数所在的函数调用文件;
结合上图7所示的函数映射关系以及图6所示的函数调用文件,通过对各函数调用文件的搜索,可以确定变更函数所在的函数调用文件,需要说明的是,本申请对函数调用文件的搜索方式不作限定。
可选的,本申请可以利用每一个变更函数的属性信息,如该变更函数所起到的作用或功能,查找相匹配的函数调用文件的文件名,如该变更函数用来确定球员卡橙卡合成请求以及应答,那么,本申请可以查找与其匹配的所有文件名,如“Play-经典对抗-NBA对抗赛按钮”等,之后,再从与该属性信息匹配的文件名对应的函数调用文件中搜索变更函数,从而缩短确定变更函数所在函数调用文件的搜索时间,但并不局限于这一种搜索方式。
步骤S88,将确定的函数调用文件对应的功能确定新版本开发对象的测试功能;
步骤S89,获取与该测试功能关联的测试用例,输出执行该测试用例得到的测试结果;
其中,本申请对各测试用例的执行方式以及所得测试结果的输出方式等均不作限定,可以根据各测试用例的具体内容确定,本申请在此不再一一详述。。
结合上述分析,在本实施例中,该测试结果可以表示新版本的开发对象相对于原版本的开发对象的变更函数对该开发对象的影响,具体可以判断通过变更函数是否到达预期目的,是否对开发对象原有的其他功能产生不利影响等等。
步骤S810,当该测试结果不满足预设条件时,输出相应的提示信息;
基于上述描述,该预设条件可以表示变更函数达到预期目的,且没有对开发对象的其他功能造成不利影响,本申请对该预设条件表示该含义所包含的具体内容不作限定。
可选的,上述提示信息可以是包括某功能无法实现和/或变更函数影响原有的某功能无法实现等内容的提示信息,该提示信息具体可以显示在终端的显示屏上,可以采用语音方式输出,当然也可以通过预设指示灯或报警声等方式输出,本申请对该提示信息的具体输出方式不作限定。
综上所述,本申请通过预先构建新版本的开发对象的各功能(具体可以是各功能按钮对应的功能)与触达该功能按钮所调用的函数之间的映射关系,在获得新版本的开发对象相对于原版本的该开发对象的变更函数后,将直接通过构建的该映射关系,将精准且快速确定该变更函数能够影响到的新版本开发对象的各功能即测试功能,并将这些测试功能关联的测试用例作为该新版本开发对象需要测试的用例,不需要一一询问开发人员,即可快速且准确定位到新版本开发对象需要测试的所有测试用例,大大减少了测试人员的工作量,且提高了测试精准度,保证测试质量与全量功能测试一样的效果。
如图9所示,为本申请实施例提供的一种测试终端的结构框图,该终端可以包括:
获得模块91,用于获得新版本的开发对象相对于原版本的该开发对象的变更函数;
其中,该变更函数可以包括开发人员针对该开发对象新编写的代码,或删除原版本的开发对象的代码等,本申请对其包含的具体内容不作限定。
可选的,在本实施实际应用中,可以利用开发工具记录开发人员编写的代码等函数,也可以通过HOOK方式记录,本申请对此不作限定。
处理模块92,用于利用已构建的针对新版本的开发对象的功能函数映射关系,确定该新版本的开发对象运行中调用变更函数的功能,并将其作为该新版本的开发对象的测试功能,获取该测试功能关联的测试用例;
其中,该功能函数映射关系可以表示新版本的开发对象的各功能与实现该功能所调用的函数间的关系,参照图6和7,该功能函数映射关系可以包括触达新版本的开发对象一个功能过程中所调用函数的函数调用文件,该函数调用文件通常包括至少一个函数,即触达相应功能所调用的函数,从而确定具有该变更函数的函数调用文件对应的功能。
基于此,本申请在获得变更函数后,可以通过搜索函数调用文件,确定各变更函数所在的函数调用文件,所以,如图10所示,该处理模块92可以包括:
搜索单元921,用于搜索功能函数映射关系中的函数调用文件,确定所述变更函数所在的函数调用文件;
需要说明的是,本申请对搜索函数调用文件中变更函数的具体方式不作限定。
获得单元922,用于获得确定的函数调用文件对应的功能。
输出模块93,用于输出执行测试用例得到的测试结果。
在本实施例中,输出模块93可以是显示屏等,本申请对其结构组成以及测试结果的输出方式不作具体限定。
在实际应用中,该处理模块92可以包括:
第二确定单元,用于基于预存的所述新版本的开发对象的功能用例关系,确定与所述测试功能关联的测试用例;
其中,该功能用例关系可以表示新版本的开发对象的各功能与实现对应功能的测试用例间的关系,参照上述图6;
导出单元,用于导出确定的测试用例;
通信单元,用于将导出的测试用例发送至预先分配的测试客户端,以使测试客户端执行测试用例得到测试结果;
在实际应用中,可以预先为开发对象的各测试人员分配不同测试任务,这样,在获得新版本的开发对象需要测试的测试用例后,可以直接将其发送至预先分配的测试人员进行测试,具体可以发送至该测试人员的测试客户端,实现对新版本的开发对象的测试任务。
输出单元,用于输出测试结果,并在该测试结果不满足预设条件时,输出相应的提示信息。
其中,输出单元可以是终端的显示屏,则提示信息可以直接显示在该显示屏上,该输出单元也可以是终端的语音模块,则提示信息可以是语音信息等等,本申请对该输出单元的具体结构,以及相应输出的提示信息的具体输出方式不作限定,可以根据实际需要设定。
信息替换单元,用于当测试结果满足预设条件,利用变更信息替换原版本的开发对象的相应信息,从而得到能够发布的新版本的开发对象。
综上,在本实施例中,通过预先构建新版本的开发对象的各功能与函数之间的映射关系,在获得新版本的开发对象的变更函数后,保证终端查询构建的功能函数映射关系,准确且快速确定出该变更函数对应的功能,即变更函数将会影响到的新版本的开发对象的所有功能,不需要一一询问各变更函数的开发人员,降低了测试人员的时间成本;而且,本申请直接利用确定的该功能,定位需要测试的测试用例,能够全面且准确定位到变更函数可能影响到的所有测试用例,从而进一步提高了测试精准度,能够达到全量测试的测试效果。
作为本申请另一实施例,如图11所示,在上述实施例的基础上,本申请可以采用以下方式构建新版本的开发对象的功能函数映射关系,但并不局限于此,为了该功能函数映射关系的构建,本申请提供的测试终端还可以包括:
第一记录模块94,用于记录触达新版本的开发对象的各功能对应调用的至少一个函数,以及至少一个函数间的函数调用顺序;
文件生成模块95,用于基于记录结果,生成各功能一一对应的函数调用文件;
如上述图6所示,该函数调用文件可以按照时间依次记录下触达相应功能所调用的所有函数,从而使该功能关联所有函数与其他功能的调用函数独立开,作为单独一部分,以便后续利用变更函数,准确定位相应的功能。
可选的,为了方便用户直观看到各函数调用文件具体是与哪一功能关联,本申请重新对函数调用文件命名,参照上述图6和7中记事本的文件命,则本申请提供的测试终端还可以包括:
第二记录模块,用于记录触达所述新版本的开发对象的各功能对应的路径信息;
命名模块,用于基于记录的各功能的路径信息,对生成的相应功能的所述函数调用文件进行命名。
构建模块96,用于利用生成的所有函数调用文件,构建针对新版本的开发对象的功能函数映射关系。
在本实施例中,构建的函数映射关系可以如上述图7所示,包括与各功能一一对应的函数调用文件,但并不局限于图7所示的表示方式。
可选的,在实际应用中,开发人员在对开发对象进行开发时,根据实际需要的不同,并不是每一次都会对代码进行修改,因此,本申请还可以增加判断操作,则在上述各实施例的基础上,该测试终端还可以包括:
获取模块,用于在进行新版本的开发对象的构建时,获取版本控制系统的变更信息;
其中,该变更信息可以包括不同版本的版本号、变更函数以及配置信息等内容,本申请对此不不作限定。
判断模块,用于基于该变更信息,判断新版本的开发对象是否存在相对于原版本的所述开发对象的变更函数,当判断结果为是时,触发获得模块91获得新版本的开发对象相对于原版本的开发对象的变更函数;若判断结果为否,可以通过检测模块已生成的所述新版本的开发对象的函数调用关系图,并删除函数调用关系图中重复函数以及公用函数,从而使构建模块利用删除后的函数调用关系图,构建针对所述新版本的开发对象的功能函数映射关系。
需要说明的是,关于上述测试模块和构建模块并不是在判断模块的判断结果为否时才被触发,其在整个测试开始时就可以触发执行,具体构建过程可以参照上述实施例对应部分的描述,本实施例在此不再赘述。
上文描述的是测试终端的软件功能模块构架,对于该终端的硬件结构,可以参照图12所示:
图12为本申请实施例提供的一种测试终端的硬件结构框图,如图12所示,该终端可以包括:处理器121、存储器122、显示器123、输入设备124、通信接口125以及通信总线126;
其中,处理器121、存储器122、显示器123、输入设备124以及通信接口125通过通信总线126完成相互间的通信。
可选的,该通信接口125可以是USB接口或者其他串口等等。
处理器121,用于执行程序;
存储器122,用于存放程序以及获得的各种数据等;
显示器123,可以用于显示测试结果以及测试过程等;
在本实施例中,该处理器121可以是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器122可以包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器等。
其中,上述程序可具体用于:
获得新版本的开发对象相对于原版本的所述开发对象的变更函数;
利用已构建的针对所述新版本的开发对象的功能函数映射关系,确定该新版本的开发对象调用所述变更函数的功能,并将确定的功能作为该新版本的开发对象的测试功能;
获取测试功能关联的测试用例,输出执行该测试用例得到的测试结果。
需要说明的是,关于该程序新版本的开发对象的变更函数的测试过程具体可以参照上述方法实施例对应部分的描述,本实施例在此不再一一详述。
可选的,本申请可以采用以下方式,构建新版本的开发对象的功能与函数间的映射关系,但并不局限于此,从而保证通过函数能够快速且准确定位到相应的功能,则该程序具体可以用于:
记录触达所述新版本的开发对象的各功能对应调用的至少一个函数,以及所述至少一个函数间的函数调用顺序;
基于记录结果,生成所各功能一一对应的函数调用文件;
利用生成的所有函数调用文件,构建针对所述新版本的开发对象的功能函数映射关系。
综上,本申请实施例能够低成本、快速且精准地实现新版本开发对象的变更函数的测试。
此外,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的终端而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种测试方法,其特征在于,所述方法包括:
获得新版本的开发对象相对于原版本的所述开发对象的变更函数;
利用已构建的针对所述新版本的开发对象的功能函数映射关系,确定所述新版本的开发对象运行中调用所述变更函数的功能,并将确定的功能作为所述新版本的开发对象的测试功能,所述功能函数映射关系包括触达新版本的开发对象一个功能的过程中所调用函数以及触达该功能的路径信息的函数调用文件,所述函数调用文件包括所调用的至少一个函数以及至少一个函数间的调用顺序、次数,所述功能函数映射关系表示新版本的开发对象的各功能与实现该功能所调用的函数间的关系;
获取所述测试功能关联的测试用例,输出执行所述测试用例的测试结果,所述测试用例包括测试目标、测试环境、输入数据、测试步骤、预期结果以及测试脚本;
其中,所述获取所述测试功能关联的测试用例,包括:
基于预存的所述新版本的开发对象的功能用例关系,确定与所述测试功能关联的测试用例,所述功能用例关系表示所述新版本的开发对象的各功能与具有对应功能的测试用例间的关系;导出确定的测试用例;
其中,所述利用已构建的针对所述新版本的开发对象的功能函数映射关系,确定所述新版本的开发对象运行中调用所述变更函数的功能,包括:
搜索功能函数映射关系中的函数调用文件,确定所述变更函数所在的函数调用文件,所述函数调用文件包括至少一个函数;
获得与确定的函数调用文件对应的功能。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录触达所述新版本的开发对象的各功能对应调用的至少一个函数,以及所述至少一个函数间的函数调用顺序;
基于记录结果,生成所述各功能一一对应的函数调用文件;
利用生成的所有函数调用文件,构建针对所述新版本的开发对象的功能函数映射关系。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
记录触达所述新版本的开发对象的各功能对应的路径信息;
利用记录的各功能的路径信息,对生成的相应功能的所述函数调用文件进行命名。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在进行新版本的开发对象的构建时,获取版本控制系统的变更信息;
基于所述变更信息,判断所述新版本的开发对象是否存在相对于原版本的所述开发对象的变更函数;
如果存在,执行所述获得新版本的开发对象相对于原版本的所述开发对象的变更函数步骤。
5.根据权利要求4所述的方法,其特征在于,当所述新版本的开发对象不存在相对于原版本的所述开发对象的变更函数,所述方法还包括:
检测已生成的所述新版本的开发对象的函数调用关系图;
删除所述函数调用关系图中重复函数以及公用函数;
利用删除后的函数调用关系图,构建针对所述新版本的开发对象的功能函数映射关系。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述方法还包括:
将获取的测试用例发送至预先分配的测试客户端,以使所述测试客户端执行所述测试用例得到测试结果;
当所述测试结果不满足预设条件,输出相应的提示信息。
7.一种测试终端,其特征在于,所述终端包括:
获得模块,用于获得新版本的开发对象相对于原版本的所述开发对象的变更函数;
处理模块,用于利用已构建的针对所述新版本的开发对象的功能函数映射关系,确定所述新版本的开发对象运行中调用所述变更函数的功能,并将确定的功能作为所述新版本的开发对象的测试功能,获取所述测试功能关联的测试用例;输出模块,用于输出执行所述测试用例的测试结果,所述功能函数映射关系包括触达新版本的开发对象一个功能的过程中所调用函数以及触达该功能的路径信息的函数调用文件,所述函数调用文件包括所调用的至少一个函数以及至少一个函数间的调用顺序、次数,所述功能函数映射关系表示新版本的开发对象的各功能与实现该功能所调用的函数间的关系,所述测试用例包括测试目标、测试环境、输入数据、测试步骤、预期结果以及测试脚本;
所述处理模块包括:
确定单元,用于基于预存的所述新版本的开发对象的功能用例关系,确定与所述测试功能关联的测试用例,所述功能用例关系表示所述新版本的开发对象的各功能与具有对应功能的测试用例间的关系;
导出单元,用于导出确定的测试用例;
搜索单元,用于搜索功能函数映射关系中的函数调用文件,确定所述变更函数所在的函数调用文件,所述函数调用文件包括至少一个函数;
获得单元,用于获得确定的函数调用文件对应的功能。
8.根据权利要求7所述的终端,其特征在于,所述终端还包括:
第一记录模块,用于记录触达所述新版本的开发对象的各功能对应调用的至少一个函数,以及所述至少一个函数间的函数调用顺序;
文件生成模块,用于基于记录结果,生成所述各功能一一对应的函数调用文件;
构建模块,用于利用生成的所有函数调用文件,构建针对所述新版本的开发对象的功能函数映射关系。
9.根据权利要求8所述的终端,其特征在于,所述终端还包括:
第二记录模块,用于记录触达所述新版本的开发对象的各功能对应的路径信息;
命名模块,用于基于记录的各功能的路径信息,对生成的相应功能的所述函数调用文件进行命名。
10.根据权利要求7所述的终端,其特征在于,所述处理模块包括:
通信单元,用于将导出的测试用例发送至预先分配的测试客户端,以使所述测试客户端执行所述测试用例得到测试结果;
输出单元,用于输出所述测试结果,并在所述测试结果不满足预设条件,输出相应的提示信息。
11.根据权利要求7所述的终端,其特征在于,所述终端还包括:
获取模块,用于在进行新版本的开发对象的构建时,获取版本控制系统的变更信息;
判断模块,用于基于所述变更信息,判断所述新版本的开发对象是否存在相对于原版本的所述开发对象的变更函数,当判断结果为是时,触发所述获得模块获得新版本的开发对象相对于原版本的所述开发对象的变更函数。
CN201710086698.7A 2017-02-17 2017-02-17 一种测试方法及终端 Active CN108459949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710086698.7A CN108459949B (zh) 2017-02-17 2017-02-17 一种测试方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710086698.7A CN108459949B (zh) 2017-02-17 2017-02-17 一种测试方法及终端

Publications (2)

Publication Number Publication Date
CN108459949A CN108459949A (zh) 2018-08-28
CN108459949B true CN108459949B (zh) 2021-08-06

Family

ID=63221605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710086698.7A Active CN108459949B (zh) 2017-02-17 2017-02-17 一种测试方法及终端

Country Status (1)

Country Link
CN (1) CN108459949B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558315B (zh) * 2018-11-14 2022-02-15 泰康保险集团股份有限公司 测试范围的确定方法、装置及设备
CN111459824B (zh) * 2020-04-01 2021-09-14 腾讯科技(深圳)有限公司 并发服务的测试用例处理方法及装置
CN111752843B (zh) * 2020-06-29 2024-02-13 百度在线网络技术(北京)有限公司 用于确定影响面的方法、装置、电子设备及可读存储介质
CN113867730A (zh) * 2021-09-28 2021-12-31 北京达佳互联信息技术有限公司 目标源码映射文件的确定方法、装置、设备及存储介质
CN114490424A (zh) * 2022-02-24 2022-05-13 北京启明星辰信息安全技术有限公司 自动化测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480900B1 (en) * 2004-04-15 2009-01-20 Sun Microsystems, Inc. System and method for adaptive software testing
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
CN105912467A (zh) * 2016-04-08 2016-08-31 腾讯科技(深圳)有限公司 一种性能测试方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480900B1 (en) * 2004-04-15 2009-01-20 Sun Microsystems, Inc. System and method for adaptive software testing
CN103198010A (zh) * 2012-01-06 2013-07-10 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
CN105912467A (zh) * 2016-04-08 2016-08-31 腾讯科技(深圳)有限公司 一种性能测试方法及装置

Also Published As

Publication number Publication date
CN108459949A (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
CN108459949B (zh) 一种测试方法及终端
Ponta et al. Beyond metadata: Code-centric and usage-based analysis of known vulnerabilities in open-source software
US11163731B1 (en) Autobuild log anomaly detection methods and systems
US11269660B2 (en) Methods and systems for integrated development environment editor support with a single code base
US8150674B2 (en) Automated testing platform for event driven systems
CN110221982B (zh) 业务系统的性能测试方法、装置、设备及可读存储介质
US9594797B2 (en) Data quality assessment
CA2852760C (en) Migration assessment for cloud computing platforms
CN107729227B (zh) 应用程序测试范围确定方法、系统、服务器和存储介质
Teyton et al. Mining library migration graphs
Teyton et al. A study of library migrations in java
US20170324803A1 (en) Automated testing of perceptible web page elements
US20200201689A1 (en) System and method for determining a process flow of a software application and for automatically generating application testing code
US8311794B2 (en) Testing executable logic
CN111752843B (zh) 用于确定影响面的方法、装置、电子设备及可读存储介质
KR20170052668A (ko) 데이터 구동 테스트 프레임워크
Chen et al. Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems
US11436133B2 (en) Comparable user interface object identifications
US20160124795A1 (en) Evaluation method and apparatus
US20180089154A1 (en) Computer implemented system and method for transforming web content for display on multiple form factors
CN111654495B (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
US20150143346A1 (en) Constructing test-centric model of application
CN114185791A (zh) 一种数据映射文件的测试方法、装置、设备及存储介质
CN109558153B (zh) 版本一致性确定方法、装置及系统
US20160275002A1 (en) Image capture in application lifecycle management for documentation and support

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant