CN106557419B - 程序的测试方法及装置 - Google Patents

程序的测试方法及装置 Download PDF

Info

Publication number
CN106557419B
CN106557419B CN201510642121.0A CN201510642121A CN106557419B CN 106557419 B CN106557419 B CN 106557419B CN 201510642121 A CN201510642121 A CN 201510642121A CN 106557419 B CN106557419 B CN 106557419B
Authority
CN
China
Prior art keywords
function
information
version data
recording
data
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
CN201510642121.0A
Other languages
English (en)
Other versions
CN106557419A (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 CN201510642121.0A priority Critical patent/CN106557419B/zh
Publication of CN106557419A publication Critical patent/CN106557419A/zh
Application granted granted Critical
Publication of CN106557419B publication Critical patent/CN106557419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种程序的测试方法及装置。其中,该方法包括:获取提测任务的原始版本数据和当前版本数据;获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。本发明解决了由于依靠人工对待测式功能点进行标注,导致的测试精度和测试效率低的技术问题。

Description

程序的测试方法及装置
技术领域
本发明涉及软件测试领域,具体而言,涉及一种程序的测试方法及装置。
背景技术
目前,在软件测试领域,测试人员在开始对待测试软件进行测试之前,首先需要对待测试软件的当前测试版本与已发布版本进行分析对比。通过将待测试软件的软件代码与已发布版本的软件代码进行对比,可以确定软件代码发生了哪些变更。通过分析确定发生变更的软件代码对已有功能点产生的影响,可以确定对于待测试软件的测试重点。在确定测试重点之后,可以在有限的时间内对影响已有功能点的软件代码进行重点测试,从而提高对软件的测试效率。
在现有技术中,测试人员在确定软件代码发生了哪些变更,以及确定发生变更的软件代码对已有功能点产生的影响时,通常采用如下两种方法:
其一、当开发人员提出测试需求时,将修改的软件代码、产生变化的软件代码有可能影响到的已有功能点和测试建议直接告知测试人员。采用该种方法包括如下缺点:在长时间的开发过程后,因开发人员经常会遗漏了对哪些软件代码进行了修改,从而导致在对待测试软件进行测试中漏测现象发生。或者,因开发人员提供给测试人员的测试建议过于宽泛,从而导致对没有发生变化的软件代码进行重复测试。
其二、依靠测试人员人工对SVN(Subversion,版本控制系统)返回的软件代码修改记录进行查看。采用该种方法包括的缺点有:因测试人员对软件代码不够了解,导致无法判断产生变化的软件代码可能影响的已有功能的范围,或者由于无法对SVN返回结果进行筛选,导致对测试软件的耗时非常长。
因此,现有技术中的上述两种现有的方法无法满足对待测试程序进行高效、精准测试目的。
针对上述现有技术中由于依靠人工对待测式功能点进行标注,导致的测试精度和测试效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种程序的测试方法及装置,以至少解决由于依靠人工对待测式功能点进行标注,导致的测试精度和测试效率低的技术问题。
根据本发明实施例的一个方面,提供了一种程序的测试方法,包括:获取提测任务的原始版本数据和当前版本数据;获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。
根据本发明实施例的另一方面,还提供了一种程序的测试装置,包括:第一获取模块,用于获取提测任务的原始版本数据和当前版本数据;第二获取模块,用于获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;第三获取模块,用于根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;查询模块,用于根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;第一生成模块,用于根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。
在本发明实施例中,采用获取提测任务的原始版本数据和当前版本数据;获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息的方式,通过第一获取模块,用于获取提测任务的原始版本数据和当前版本数据;第二获取模块,用于获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;第三获取模块,用于根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;查询模块,用于根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;第一生成模块,用于根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息,达到了根据记录位置即可确定需要测试的功能信息的目的,从而实现了快速、全面的对待测试软件进行测试的技术效果,进而解决了由于依靠人工对待测式功能点进行标注,导致的测试精度和测试效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本申请实施例的一种程序的测试方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种程序的测试方法的流程示意图;
图3是根据本发明实施例的一种可选的程序的测试方法的流程示意图;
图4是根据本发明实施例的一种可选的程序的测试方法在实际应用当中的流程示意图;
图5是根据本发明实施例的一种程序的测试装置的结构示意图;
图6是根据本发明实施例的一种可选的程序的测试装置的结构示意图;
图7是根据本发明实施例的一种可选的程序的测试装置的结构示意图;
图8是根据本发明实施例的一种可选的程序的测试装置的结构示意图;
图9是根据本发明实施例的一种可选的程序的测试装置的结构示意图;以及
图10是根据本发明实施例的一种可选的程序的测试装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种程序的测试方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的一种程序的测试方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的多终端的实时通讯方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多终端的实时通讯方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,如图2所示,该方法包括:
步骤S21,获取提测任务的原始版本数据和当前版本数据。
具体的,在对提测任务进行测试之前,可以对提测任务最后一次发布的原始版本数据和当前需测试的当前版本数据进行获取。
步骤S23,获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息。
具体的,提测任务的源代码通常被记录于同一个目录下的多个文件当中,文件彼此之间具有调用关系。例如,若在源代码中包含了多行代码,为了便于编辑,可以在原有a代码文件之外,建立一个b代码文件来存放部分源代码,当程序需要b文件中存放的部分源代码时,直接调用b代码文件即可实现。其中,在面向对象程序设计当中,往往将用于实现不同功能的源代码存储于不同的代码文件当中,从而当某一功能发生改变或者功能出现问题时,方便对源代码进行修改。除此之外,在上述文件当中,往往还会包含着若干个用于实现功能的主函数和其他函数。
在步骤S23中,可以获取用于记录着提测任务的最近一次发布的原始版本数据的各个数据文件的文件名称、在各个数据文件中的包含的各个函数的函数名称、以及各个函数与数据文件的对应关系。与此同时,还可以同时获取提测任务的当前版本数据与原始版本数据之间具有区别的数据,从而确定在当前版本中较原始版本数据发生变更的变更信息。
在实际应用当中,可以通过将当前版本数据和原始版本数据中具有相同文件名称的数据文件进行逐行比对,从而确定发生变更的数据文件。进一步的,也可以通过将当前版本数据和原始版本数据的相同文件名称中的具有相同函数名称的函数进行逐行比对来确定发生变更的函数。当然,也可以将上述两种方法结合着对当前版本数据和原始版本数据进行比对,来确定包含有发生变更的数据文件和发生变更的函数的变更信息。
除此之外,还可以引入第三方比对软件对当前版本数据和原始版本数据进行比对,例如:利用SVN中的Diff命令来比较提测任务的不同版本的数据之间的区别,并返回包含有区别位置的比对结果文件。此处对当前版本数据和原始版本数据进行比对的实现方法不做限定。
步骤S25,根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置。
具体的,在变更信息中,往往只记载着当前版本数据和原始版本数据存在变更的源代码所在的文件名称和存在变更的源代码所在的函数的函数名称,而并不能对发生变更的源代码的具体位置进行记录。因此,可以通过步骤S25将变更信息所在的文件名称或函数名称直接转化为在数据文件中的用于记录变更信息的源代码所在的行号范围,从而进一步的确定存在变更的源代码在原始版本数据的记录位置。
步骤S27,根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息。
具体的,在预先设置的功能描述表中,记载着与各个数据文件对应的功能点和数据文件影响的功能范围,以及与各个函数对应的功能点和函数影响的功能范围。
通过步骤S27,可以将根据记录位置在功能描述表中进行查询,确定与记录位置对应的功能点,以及影响的功能范围。
步骤S29,根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。
具体的,在通过步骤S27确定了与记录位置对应的功能点,以及影响的功能范围之后,可以通过步骤S29根据上述功能点,生成用于与提测任务进行测试对应的待测试功能表。
在实际应用当中,待测试功能表中,可以用于记载当前版本数据中发生变更的每个数据文件的功能点和影响的功能范围,同时也可以记载发生变更的函数的功能点和影响的功能范围。进一步的,还可以记载用于提示开发人员和测试人员发生变更将可能影响的功能点的范围。
通过上述步骤S21至步骤S29,通过确定提测任务的当前版本数据与原始版本数据之间的发生变更的源代码在原始版本数据中的记录位置,然后根据记录位置和与原始版本数据对应的功能描述信息,确定发生变更的源代码所影响的功能信息,从而生成与发生变更的源代码对应的待测试功能表。通过上述方法,达到了根据记录位置即可确定需要测试的功能信息的目的,从而实现了快速、全面的对待测试软件进行测试的技术效果,进而解决了现有技术中由于依靠人工对待测式功能点进行标注,导致的测试精度和测试效率低的问题。
作为一种可选的实施方式,在步骤S23获取原始版本数据对应的结构信息和当前版本数据对应的变更信息之前,上述方法还可以包括:
步骤22,根据原始版本数据的结构,生成与原始版本数据对应的结构信息,其中,结构信息至少包括:原始版本数据中包含的数据文件的文件名称和数据文件之间的层级关系。
具体的,通过步骤S22,在获取提测任务的原始版本数据之后,可以以原始版本数据作为模板,建立提测任务中各个数据文件之间的层级关系,以及在数据文件中的各段源代码的代码段所在的行号范围等,其中,代码段为源代码中的主函数或其他函数。
在实际用用当中,可以将结构信息通过数据表的形式进行记载,也可以通过XML文件的形式进行记载,当然还可以通过文本的形式进行记载,此处不做具体限定。
作为一种可选的实施方式,如图3所示,在获取原始版本数据对应的结构信息和当前版本数据对应的变更信息之前,上述方法还可以包括:
步骤S12,获取与原始版本数据对应的功能描述信息。
步骤S14,根据功能描述信息,生成与原始版本数据对应的功能描述表,其中,功能描述表用于记录原始版本数据中包含的数据文件对应的文件功能描述信息。
具体的,通过步骤S12至步骤S14,获取与原始版本数据对应的功能描述信息,并根据上述功能描述信息,生成原始版本数据与功能描述信息相互对应的功能描述表。其中,功能描述信息可以直接被记录于原始版本数据中的批注信息中,也可以被记录于用于记录功能描述信息的配置文件中,当然还可以通过其他方式进行记录,此处不做具体限定。
在实际应用当中,各段源代码的代码段可以是记载数据文件中的用于实现具体功能的类函数。在通常情况下,一个程序的源代码往往由多个函数构成,而函数也往往由多行代码构成。当函数中的某一行发生变更时,可能会对整个函数的功能产生影响。因此,在功能描述表中,可以通过函数位置信息与功能信息相互对应的方式进行记录。
当提测任务的当前版本数据中的某一位置发生变更时,首先通过确定与变更信息的记录位置对应的函数,然后再通过与函数的记录位置确定变更信息所影响的功能信息。
作为一种可选的实施方式,在步骤S29根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表之后,上述方法还可以包括:
步骤S301,通过比对当前版本数据与原始版本数据,确定在当前版本数据中新增的新增数据文件。
步骤S303,根据新增数据文件,生成提示信息。
具体的,在当前版本数据中,可能会出现用于实现新的功能的新的数据文件,因此可以通过步骤S301至步骤S303对当前版本数据与原始版本数据进行比对,从而确定在当前版本数据中新增的新增数据文件,并根据新增数据文件生成用于提示测试人员进行测试的提示信息。
其中,由于新增数据文件不存在于原始版本数据中,而在功能描述表中并不包含与新增数据文件对应的文件功能描述信息。因此,可以在新增数据文件的提示信息中对新增数据文件的名称、位置进行提示,使测试人员可以快速对新增数据文件进行定位。
进一步的,还可以判断新增数据文件中是否包含用于记录功能描述信息的批注信息。当数据文件中存在上述批注信息时,可以根据批注信息生成用于对新增数据文件实现的新功能进行测试的提示信息。
作为一种可选的实施方式,在步骤S29根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表之后,上述方法还可以包括:
步骤S31,根据功能描述表和待测试功能表,计算得到对提测任务的测试覆盖率,其中,测试覆盖率用于表征在提测任务中,需要测试的功能数量与功能总数量的比值。
在本实施例中,上述提测任务中的待测功能的总数的获取方式可以包括但不限于:在测试提测任务之前通过直接获取得到、通过统计函数对每个待测功能进行统计得到。
通过本申请提供的实施例,根据每个待测试功能表中的待测功能数量和提测任务中功能描述表中的总数获取提测任务的测试覆盖率,从而便于测试人员在测试之前,获知对提测任务进行测试的工作量,进而便于安排测试人员对其进行测试。以提高对提测任务测试的效率。
作为一种可选的实施方式,在步骤S29根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表之后,方法还包括:
步骤S33,根据待测试功能表,生成任务提测单。
具体的,为了便于测试人员对提测任务进行测试,可以根据待测试功能表中记录的与变更代码对应的待测试的功能信息,按照预先设置的格式生成任务提测单。
作为一种可选的实施方式,如图4所示,以对软件进行测试,做具体说明,实现步骤如下:
步骤S1,搭建与提测任务的原始版本源代码对应的知识库,对原始版本源代码中的每个源代码文件主要实现的功能进行文字描述,并标注代码文件影响的功能范围。通过该步骤,可以一次性对提测任务的源代码文件的功能进行标注,后续在使用中,直接调用标注的信息即可,提高测试效率。
步骤S2,利用python脚本扫描最近一次发布的版本的原始版本源代码,并获原始版本源代码中每个主函数、类函数和其他函数所在的源代码文件中的行号范围。
步骤S3,利用python脚本,对通过SVN中的Diff命令得到的比对结果进行语法分析,获知当前提版本源代码与最近一次发布的原始版本源代码相比,当前的当前提版本源代码中被修改的代码行。
步骤S4,根据步骤S2和步骤S3得到的结果,确定在当前提版本源代码中,被修改的源代码所在的代码文件和所在的类函数。
步骤S5,根据步骤S4和步骤S1得到的结果,输出与当前提版本源代码中被修改的源代码所在源代码文件对应的功能描述信息和影响的功能范围。同时,还可以输出被修改的源代码所在的类函数对应的功能描述信息和影响的功能范围。
本申请所提供的技术方案可应用于程序的各个测试阶段,在提测前只需耗时几分钟执行用于实现上述程序测试方法的脚本,测试人员就可以掌握提测版本中的代码修改所影响的功能范围,杜绝开发人员提供的测试建议过于宽泛,导致测试耗时长且效率低,开发需求或者代码修改点遗漏,导致的测试环节漏测,以及测试早期由于开发人员提交多余代码,导致进行不必要测试的问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述程序的测试方法的程序的测试装置,如图5所示,该装置包括:第一获取模块21、第二获取模块23、第三获取模块25、查询模块27和第一生成模块29。
其中,第一获取模块21,用于获取提测任务的原始版本数据和当前版本数据;第二获取模块23,用于获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;第三获取模块25,用于根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;查询模块27,用于根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;第一生成模块29,用于根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。
通过上述第一获取模块21、第二获取模块23、第三获取模块25、查询模块27和第一生成模块29,通过确定提测任务的当前版本数据与原始版本数据之间的发生变更的源代码在原始版本数据中的记录位置,然后根据记录位置和与原始版本数据对应的功能描述信息,确定发生变更的源代码所影响的功能信息,从而生成与发生变更的源代码对应的待测试功能表。通过上述方法,达到了根据记录位置即可确定需要测试的功能信息的目的,从而实现了快速、全面的对待测试软件进行测试的技术效果,进而解决了现有技术中由于依靠人工对待测式功能点进行标注,导致的测试精度和测试效率低的问题。
作为一种可选的实施方式,如图6所示,上述装置还可以包括:第二生成模块22。
其中,第二生成模块22,用于根据原始版本数据的结构,生成与原始版本数据对应的结构信息,其中,结构信息至少包括:原始版本数据中包含的数据文件的文件名称和数据文件之间的层级关系。
具体的,通过上述第二生成模块22,在获取提测任务的原始版本数据之后,可以以原始版本数据作为模板,建立提测任务中各个数据文件之间的层级关系,以及在数据文件中的各段源代码的代码段所在的行号范围等,其中,代码段为源代码中的主函数或其他函数。
在实际用用当中,可以将结构信息通过数据表的形式进行记载,也可以通过XML文件的形式进行记载,当然还可以通过文本的形式进行记载,此处不做具体限定。
作为一种可选的实施方式,如图7所示,上述装置还可以包括:第四获取模块12和第三生成模块14。
其中,第四获取模块12,用于获取与原始版本数据对应的功能描述信息;第三生成模块14,用于根据功能描述信息,生成与原始版本数据对应的功能描述表,其中,功能描述表用于记录原始版本数据中包含的数据文件对应的文件功能描述信息。
具体的,通过上述第四获取模块12和第三生成模块14,获取与原始版本数据对应的功能描述信息,并根据上述功能描述信息,生成原始版本数据与功能描述信息相互对应的功能描述表。其中,功能描述信息可以直接被记录于原始版本数据中的批注信息中,也可以被记录于用于记录功能描述信息的配置文件中,当然还可以通过其他方式进行记录,此处不做具体限定。
在实际应用当中,各段源代码的代码段可以是记载数据文件中的用于实现具体功能的类函数。在通常情况下,一个程序的源代码往往由多个函数构成,而函数也往往由多行代码构成。当函数中的某一行发生变更时,可能会对整个函数的功能产生影响。因此,在功能描述表中,可以通过函数位置信息与功能信息相互对应的方式进行记录。
当提测任务的当前版本数据中的某一位置发生变更时,首先通过确定与变更信息的记录位置对应的函数,然后再通过与函数的记录位置确定变更信息所影响的功能信息。
作为一种可选的实施方式,如图8所示,上述装置还可以包括:确定模块301和第四生成模块303。
其中,确定模块301,用于通过比对当前版本数据与原始版本数据,确定在当前版本数据中新增的新增数据文件;第四生成模块303,用于根据新增数据文件,生成提示信息。
具体的,在当前版本数据中,可能会出现用于实现新的功能的新的数据文件,因此可以通过上述确定模块301和第四生成模块303对当前版本数据与原始版本数据进行比对,从而确定在当前版本数据中新增的新增数据文件,并根据新增数据文件生成用于提示测试人员进行测试的提示信息。
其中,由于新增数据文件不存在于原始版本数据中,而在功能描述表中并不包含与新增数据文件对应的文件功能描述信息。因此,可以在新增数据文件的提示信息中对新增数据文件的名称、位置进行提示,使测试人员可以快速对新增数据文件进行定位。
进一步的,还可以判断新增数据文件中是否包含用于记录功能描述信息的批注信息。当数据文件中存在上述批注信息时,可以根据批注信息生成用于对新增数据文件实现的新功能进行测试的提示信息。
作为一种可选的实施方式,如图9所示,上述装置还可以包括:处理模块31。
其中,处理模块31,用于根据功能描述表和待测试功能表,计算得到对提测任务的测试覆盖率,其中,测试覆盖率用于表征在提测任务中,需要测试的功能数量与功能总数量的比值。
在本实施例中,上述提测任务中的待测功能的总数的获取方式可以包括但不限于:在测试提测任务之前通过直接获取得到、通过统计函数对每个待测功能进行统计得到。
通过本申请提供的实施例,根据每个待测试功能表中的待测功能数量和提测任务中功能描述表中的总数获取提测任务的测试覆盖率,从而便于测试人员在测试之前,获知对提测任务进行测试的工作量,进而便于安排测试人员对其进行测试。以提高对提测任务测试的效率。
作为一种可选的实施方式,如图10所示,上述装置还可以包括:第五生成模块33。
其中,第五生成模块33,用于根据待测试功能表,生成任务提测单。
具体的,为了便于测试人员对提测任务进行测试,可以根据待测试功能表中记录的与变更代码对应的待测试的功能信息,按照预先设置的格式生成任务提测单。
实施例3
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的程序的测试方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取提测任务的原始版本数据和当前版本数据;
S2,获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;
S3,根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;
S4,根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;
S5,根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据原始版本数据的结构,生成与原始版本数据对应的结构信息,其中,结构信息至少包括:原始版本数据中包含的数据文件的文件名称和数据文件之间的层级关系。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取与原始版本数据对应的功能描述信息;根据功能描述信息,生成与原始版本数据对应的功能描述表,其中,功能描述表用于记录原始版本数据中包含的数据文件对应的文件功能描述信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:通过比对当前版本数据与原始版本数据,确定在当前版本数据中新增的新增数据文件;根据新增数据文件,生成提示信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据功能描述表和待测试功能表,计算得到对提测任务的测试覆盖率,其中,测试覆盖率用于表征在提测任务中,需要测试的功能数量与功能总数量的比值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据待测试功能表,生成任务提测单。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:获取提测任务的原始版本数据和当前版本数据;获取原始版本数据对应的结构信息和当前版本数据对应的变更信息,其中,变更信息为当前版本数据较原始版本数据发生变更的数据信息;根据变更信息与结构信息,获取变更信息在原始版本数据中的记录位置;根据记录位置在预先设置的功能描述表中进行查询,得到与记录位置对应的功能描述信息;根据与记录位置对应的功能描述信息,生成与变更信息对应的待测试功能表,其中,待测试功能表用于记录与变更信息对应的待测试的功能信息。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:根据原始版本数据的结构,生成与原始版本数据对应的结构信息,其中,结构信息至少包括:原始版本数据中包含的数据文件的文件名称和数据文件之间的层级关系。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:获取与原始版本数据对应的功能描述信息;根据功能描述信息,生成与原始版本数据对应的功能描述表,其中,功能描述表用于记录原始版本数据中包含的数据文件对应的文件功能描述信息。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:通过比对当前版本数据与原始版本数据,确定在当前版本数据中新增的新增数据文件;根据新增数据文件,生成提示信息。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:根据功能描述表和待测试功能表,计算得到对提测任务的测试覆盖率,其中,测试覆盖率用于表征在提测任务中,需要测试的功能数量与功能总数量的比值。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:根据待测试功能表,生成任务提测单。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种程序的测试方法,其特征在于,包括:
获取与提测任务的原始版本数据对应的功能描述信息;
根据所述功能描述信息,生成与所述原始版本数据对应的功能描述表,其中,所述功能描述表用于记录所述原始版本数据中包含的数据文件对应的第一功能点和所述数据文件影响的第一功能范围,以及与所述数据文件中包括的函数对应的第二功能点和所述函数影响的第二功能范围;
获取所述提测任务的原始版本数据和当前版本数据;
获取所述原始版本数据对应的结构信息和所述当前版本数据对应的变更信息,其中,所述变更信息为所述当前版本数据较所述原始版本数据发生变更的数据信息;
根据所述变更信息与所述结构信息,获取所述变更信息在所述原始版本数据中的记录位置;
根据所述记录位置在预先设置的所述功能描述表中进行查询,得到与所述记录位置对应的功能描述信息,其中,所述根据所述记录位置在预先设置的所述功能描述表中进行查询,得到与所述记录位置对应的功能描述信息包括:确定与所述记录位置对应的函数,在所述功能描述表中通过与所述记录位置对应的函数的函数位置信息确定所述变更信息所影响的功能描述信息;
根据与所述记录位置对应的功能描述信息,生成与所述变更信息对应的待测试功能表,其中,所述待测试功能表用于记录与所述变更信息对应的待测试的功能点和影响的功能范围。
2.根据权利要求1所述的方法,其特征在于,在获取所述原始版本数据对应的结构信息和所述当前版本数据对应的变更信息之前,所述方法还包括:
根据所述原始版本数据的结构,生成与所述原始版本数据对应的结构信息,其中,所述结构信息至少包括:所述原始版本数据中包含的所述数据文件的文件名称和所述数据文件之间的层级关系。
3.根据权利要求1所述的方法,其特征在于,在根据与所述记录位置对应的功能描述信息,生成与所述变更信息对应的待测试功能表之后,所述方法还包括:
通过比对所述当前版本数据与所述原始版本数据,确定在所述当前版本数据中新增的新增数据文件;
根据所述新增数据文件,生成提示信息。
4.根据权利要求1所述的方法,其特征在于,在根据与所述记录位置对应的功能描述信息,生成与所述变更信息对应的待测试功能表之后,所述方法还包括:
根据所述功能描述表和所述待测试功能表,计算得到对所述提测任务的测试覆盖率,其中,所述测试覆盖率用于表征在所述提测任务中,需要测试的功能数量与功能总数量的比值。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在根据与所述记录位置对应的功能描述信息,生成与所述变更信息对应的待测试功能表之后,所述方法还包括:
根据所述待测试功能表,生成任务提测单。
6.一种程序的测试装置,其特征在于,包括:
第一获取模块,用于获取提测任务的原始版本数据和当前版本数据;
第二获取模块,用于获取所述原始版本数据对应的结构信息和所述当前版本数据对应的变更信息,其中,所述变更信息为所述当前版本数据较所述原始版本数据发生变更的数据信息;
第三获取模块,用于根据所述变更信息与所述结构信息,获取所述变更信息在所述原始版本数据中的记录位置;
查询模块,用于根据所述记录位置在预先设置的功能描述表中进行查询,得到与所述记录位置对应的功能描述信息;
第一生成模块,用于根据与所述记录位置对应的功能描述信息,生成与所述变更信息对应的待测试功能表,其中,所述待测试功能表用于记录与所述变更信息对应的待测试的功能点和影响的功能范围;
第四获取模块,用于获取与所述原始版本数据对应的功能描述信息;
第三生成模块,用于根据所述功能描述信息,生成与所述原始版本数据对应的功能描述表,其中,所述功能描述表用于记录所述原始版本数据中包含的数据文件对应的第一功能点和所述数据文件影响的第一功能范围,以及与所述数据文件中包括的函数对应的第二功能点和所述函数影响的第二功能范围;
其中,所述查询模块,还用于通过以下方式根据所述记录位置在预先设置的功能描述表中进行查询,得到与所述记录位置对应的功能描述信息:确定与所述记录位置对应的函数,在所述功能描述表中通过与所述记录位置对应的函数的函数位置信息确定所述变更信息所影响的功能描述信息。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二生成模块,用于根据所述原始版本数据的结构,生成与所述原始版本数据对应的结构信息,其中,所述结构信息至少包括:所述原始版本数据中包含的数据文件的文件名称和所述数据文件之间的层级关系。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
确定模块,用于通过比对所述当前版本数据与所述原始版本数据,确定在所述当前版本数据中新增的新增数据文件;
第四生成模块,用于根据所述新增数据文件,生成提示信息。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
处理模块,用于根据所述功能描述表和所述待测试功能表,计算得到对所述提测任务的测试覆盖率,其中,所述测试覆盖率用于表征在所述提测任务中,需要测试的功能数量与功能总数量的比值。
10.根据权利要求6至9中任意一项所述的装置,其特征在于,所述装置还包括:
第五生成模块,用于根据所述待测试功能表,生成任务提测单。
11.一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至5任一项中所述的方法。
12.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至5任一项中所述的方法。
CN201510642121.0A 2015-09-29 2015-09-29 程序的测试方法及装置 Active CN106557419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510642121.0A CN106557419B (zh) 2015-09-29 2015-09-29 程序的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510642121.0A CN106557419B (zh) 2015-09-29 2015-09-29 程序的测试方法及装置

Publications (2)

Publication Number Publication Date
CN106557419A CN106557419A (zh) 2017-04-05
CN106557419B true CN106557419B (zh) 2020-09-01

Family

ID=58417935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510642121.0A Active CN106557419B (zh) 2015-09-29 2015-09-29 程序的测试方法及装置

Country Status (1)

Country Link
CN (1) CN106557419B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009083A (zh) * 2017-11-28 2018-05-08 武汉斗鱼网络科技有限公司 一种软件功能测试中功能信息获取方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572449A (zh) * 2014-12-23 2015-04-29 中国移动通信集团广东有限公司 一种基于用例库的自动化测试方法
CN104765692A (zh) * 2015-04-29 2015-07-08 北京嘀嘀无限科技发展有限公司 用于自动化测试软件的方法及设备
CN104834603A (zh) * 2015-05-26 2015-08-12 牟永敏 一种面向回归测试的控制流变更影响域分析方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168972A1 (en) * 2005-11-30 2007-07-19 International Business Machines Corporation Debugging a computer program
CN103198010B (zh) * 2012-01-06 2017-07-21 腾讯科技(深圳)有限公司 软件测试方法、装置及系统
CN103577319A (zh) * 2012-08-07 2014-02-12 腾讯科技(深圳)有限公司 源代码文件检测方法及装置、文件发布系统
CN103678097A (zh) * 2012-09-05 2014-03-26 百度在线网络技术(北京)有限公司 一种选择回归测试用例的方法和装置
US20150234730A1 (en) * 2014-02-18 2015-08-20 Zerodee, Inc. Systems and methods for performing software debugging

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572449A (zh) * 2014-12-23 2015-04-29 中国移动通信集团广东有限公司 一种基于用例库的自动化测试方法
CN104765692A (zh) * 2015-04-29 2015-07-08 北京嘀嘀无限科技发展有限公司 用于自动化测试软件的方法及设备
CN104834603A (zh) * 2015-05-26 2015-08-12 牟永敏 一种面向回归测试的控制流变更影响域分析方法和系统

Also Published As

Publication number Publication date
CN106557419A (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
CN106294120B (zh) 测试代码的方法、设备和计算机程序产品
CN107844421B (zh) 接口测试方法、装置、计算机设备和存储介质
CN107665233B (zh) 数据库数据处理方法、装置、计算机设备和存储介质
CN105787364B (zh) 任务的自动化测试方法、装置及系统
CN107436844B (zh) 一种接口用例合集的生成方法及装置
CN107896244B (zh) 一种版本文件的分发方法、客户端及服务器
CN107562610B (zh) 获取页面加载时间的方法、装置、终端和介质
CN106649063B (zh) 用于监测程序运行时耗时数据的方法及系统
WO2019019647A1 (zh) 应用程序测试范围确定方法、系统、服务器和存储介质
CN111143150A (zh) 一种测试pcba板的方法、系统、测试设备及微控制单元
CN103913672A (zh) 一种卫星低频接口自动化测试系统
CN109902027B (zh) 一种便于实施的tpc-ds测试方法以及系统
CN109633351B (zh) 智能it运维故障定位方法、装置、设备及可读存储介质
CN106557419B (zh) 程序的测试方法及装置
KR101794016B1 (ko) 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체
CN107992409B (zh) 测试用例生成方法、装置、计算机设备和存储介质
CN103902445A (zh) 一种回归测试对象确定方法及装置
CN113031995A (zh) 一种更新规则的方法、装置、存储介质以及电子设备
CN113672497A (zh) 无埋点事件的生成方法、装置、设备及存储介质
CN106301975A (zh) 一种数据检测方法及其装置
CN105912467B (zh) 一种性能测试方法及装置
CN110888804B (zh) 接口测试方法以及接口测试平台
CN109542496B (zh) 增量代码确定方法、装置及系统
CN109508203B (zh) 版本一致性确定方法、装置及系统
US9734042B1 (en) System, method, and computer program for automated parameterized software testing

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