CN106909510B - 一种获取测试用例的方法以及服务器 - Google Patents

一种获取测试用例的方法以及服务器 Download PDF

Info

Publication number
CN106909510B
CN106909510B CN201710121122.XA CN201710121122A CN106909510B CN 106909510 B CN106909510 B CN 106909510B CN 201710121122 A CN201710121122 A CN 201710121122A CN 106909510 B CN106909510 B CN 106909510B
Authority
CN
China
Prior art keywords
function
tested
version
server
target
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
CN201710121122.XA
Other languages
English (en)
Other versions
CN106909510A (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 CN201710121122.XA priority Critical patent/CN106909510B/zh
Publication of CN106909510A publication Critical patent/CN106909510A/zh
Application granted granted Critical
Publication of CN106909510B publication Critical patent/CN106909510B/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/368Test management for test version control, e.g. updating test cases to a new software version

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种获取测试用例的方法,使得服务器通过函数调用关系信息与所述目标函数确定得到的目标测试用例,和人为进行评估相比较,有效的提高了处理效率和准确率。本发明实施例方法包括:获取被测对象的函数调用关系信息;获取目标函数,所述目标函数为根据所述被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,所述被测版本源码是所述历史版本源码经过处理得到的;根据所述函数调用关系树信确定与所述目标函数对应的目标测试用例。本发明实施例还提供一种服务器。

Description

一种获取测试用例的方法以及服务器
技术领域
本发明涉及计算机领域,尤其涉及一种获取测试用例的方法以及服务器。
背景技术
目前对于精准测试、精准回归,测试人员完成测试用例的制作后,这些用例是需要被管理、维护起来。在常规的用例管理、维护方式下,如果用例的数量比较少,这些用例管理、维护起来也会很轻松,其管理、维护的成本是较低的;如果用例的数量庞大到以百、千数量级的时候,对于每次版本迭代、更新,测试人员在这些用例的维护上将花费巨大的时间和精力。
在现有技术中,测试人员在做回归测试的时候,为了减少工作量,没有执行所有的测试用例,只需要执行被涉及的测试用例那部分。而被涉及的测试用例在具体不同版本的变更总是不同的,取决于开发人员对版本的更新情况,当前方式是测试人员在测试的过程中采用手动评估的方式,即需要测试人员手动的筛选出哪些测试用例是本次版本更新涉及到的,这样的方式是比较低效率的,同时因为手动评估所建立的对应关系的不完整、错误等一系列的问题。
发明内容
本发明实施例提供了一种获取测试用例的方法,使得服务器通过函数调用关系信息与所述目标函数确定得到的目标测试用例,和人为进行评估相比较,有效的提高了处理效率和准确率。
本发明第一方面提供一种获取测试用例的方法,可以包括:
获取被测对象的函数调用关系信息;
获取目标函数,该目标函数为根据该被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,该被测版本源码是该历史版本源码经过处理得到的;
根据该函数调用关系信息确定与该目标函数对应的目标测试用例。
本发明实施例第二方面提供一种服务器,可以包括:
第一获取模块,用于获取被测对象的函数调用关系信息;
第二获取模块,用于获取目标函数,该目标函数为根据该被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,该被测版本源码是该历史版本源码经过处理得到的;
确定模块,用于根据该函数调用关系信息确定与该目标函数对应的目标测试用例。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,获取被测对象的函数调用关系信息;获取目标函数,该目标函数为根据该被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,该被测版本源码是该历史版本源码经过处理得到的;根据该函数调用关系信息确定与该目标函数对应的目标测试用例。因为目标测试用例是服务器通过函数调用关系信息与该目标函数确定得到的,和人为进行评估相比较,有效的提高了处理效率和准确率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,还可以根据这些附图获得其它的附图。
图1为本发明实施例中用例测试系统的一个实施例示意图;
图2为本发明实施例中用例测试系统的另一个实施例示意图;
图3为本发明实施例中获取测试用例的方法的一个实施例示意图;
图4为本发明实施例中用例测试系统的另一个实施例示意图;
图5为本发明实施例中服务器的一个实施例示意图;
图6为本发明实施例中服务器的另一个实施例示意图;
图7为本发明实施例中服务器的另一个实施例示意图;
图8为本发明实施例中服务器的另一个实施例示意图。
具体实施方式
本发明实施例提供了一种获取测试用例的方法,使得服务器通过函数调用关系信息与所述目标函数确定得到的目标测试用例,和人为进行评估相比较,有效的提高了处理效率和准确率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,都应当属于本发明保护的范围。
本发明实施例可以应用于用例测试系统,如图1所示,用例测试系统可以包括:函数调用关系树分析功能模块、用例差异分析功能模块和函数差异分析功能模块。具体的,如图2所示,函数调用关系树分析功能模块又可以包括被测对象分析模块、函数调用关系模块和数据写入模块,用例差异分析功能模块可以包括接口列表获取模块和数据存储模块,函数差异分析功能模块可以包括SVN(Subversion,开放源代码的版本控制系统)Diff模块和获取差异函数模块。即可以通过用例的收集管理、函数调用关系信息的获取、SVN Diff等结合起来,根据这些信息获取代码变更(版本变更)所涉及的用例。
在本发明实施例中,上述的各个模块的功能简要的说明如下所示:
被测对象分析模块:对可执行文件或库文件进行反汇编处理,获取被测对象的各函数的信息。
函数调用关系模块:对“被测对象分析模块”所获取的各函数的信息进行解析,获取各函数间的调用关系。
数据写入模块:将获取到的被测系统或模块的各函数调用关系信息写入到数据库中。
SVN Diff模块:调用SVN Diff命令,从SVN获取两个版本间代码的差异信息。
获取差异函数模块:通过SVN Diff所获取的差异化信息,获取发生变化的代码所属的函数。
接口列表获取模块:根据数据库中的各函数调用关系信息,找到与该函数具有直系关系的接口函数名列表,根据这些接口的函数名或者接口名所对应的命令字确定该接口所涉及的测试用例,并返回这些测试用例的列表。
下面对本发明实施例中所涉及的缩略语和关键术语的定义做一个简单的说明,如下所示:
(1)精准测试:精准测试指通过某种方式确定某个特性或某个特性的变更所影响的测试范围或涉及的测试用例。
(2)函数调用关系树:以树的形式将系统或模块中函数间的调用与被调用关系保存起来。
(3)接口测试:接口测试是对被测系统或模块的组件间的接口所进行的一种测试。针对互联网领域,接口测试基本上是针对于协议的接口测试。
(4)Use Case(用例)是一个UML(Unified Modeling Language,统一建模语言或标准建模语言)中非常重要的概念,在使用UML的整个软件开发过程中,Use Case处于一个中心地位。用例是对一组动作序列的抽象描述,系统执行这些动作序列,产生相应的结果。这些结果要么反馈给参与者,要么作为其他用例的参数。
(5)回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
(6)Makefile:一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
下面以实施例的方式对本发明技术方案做进一步的说明,如图3所示,为本发明实施例中获取测试用例的方法的一个实施例示意图,包括:
301、获取被测对象的函数调用关系信息;
在本发明实施例中,执行主体可以为服务器,服务器获取被测对象的函数调用关系信息,将函数调用关系信息保存在数据库中。
其中,服务器获取被测对象的函数调用关系信息,具体可以包括:服务器获取被测对象的可执行文件或者库文件;服务器根据可执行文件或者库文件获取函数调用关系信息,进一步的,可以为服务器对可执行文件或者库文件进行反汇编处理,确定与被测对象相关的函数信息;服务器对与被测对象相关的函数信息进行解析,得到函数调用关系信息。
在现有技术中,目前对于精准测试、精准回归所采用的方式一般采用如下的两种方式获取被测对象的函数调用树。一种方式是在Makefile中添加相应的编译选项,然后执行编译生成的可执行文件或库文件,然后通过对执行中所生成的信息文件的解析获取函数的调用关系信息,从而生成函数的调用关系树。另外的一种方式是通过对源代码的分析,获取函数的之间的调用关系,最后总结、归纳成函数调用关系树。
而在本发明实施例中,只需要获取被测对象的可执行文件或者库文件,进行反汇编处理,可以得到与被测对象相关的函数信息;服务器对与被测对象相关的函数信息进行解析,获取函数调用关系信息。这样就不需要测试人员在整个过程中的参与,很好的提高了效率,并减少了认为操作所导致的错误。
应理解,这里的被测对象可以是地图、QQ、微信、大众点评、微博、天气、邮箱、银行等应用程序。
示例性的,对于一个C语言编写的项目,它的框架可以反应为一棵函数调用树。如果在分析项目之前,能够得到这样一颗调用树,那么就可以了解项目的整体框架;如果在项目运行之后,能够跟踪到该次运行过程中的函数调用,那么将有利于分析某些测试条件下项目的执行流程;而如果在项目运行过程中(比如调试项目时)能够跟踪出某个位置之前的函数调用,那么将有利于确定潜在bug可能存在的位置。
对于这三种情况,虽然没有任何一个工具能够完全满足,不过还是有一些不同的工具可以实现:无须运行项目本身,calltree就能够根据整个项目的源代码产生一棵函数调用树,并可把该调用树导出为dot格式的图形。因此可以说calltree能够在不运行项目的条件下对项目进行函数级别的分析。
gprof则能够在项目运行之后,把该次运行过程中的函数调用以文本的形式反应出来,于是kprof产生了,它不仅可以辅助gprof更好的分析程序代码级别的运行情况,而且能够导出当前执行过程中的函数调用树,并同样可以把调用树导出为dot格式的图形。
gdb(Gnu DeBugger),它是一个调试工具。它提供专门的backtrace命令来跟踪程序执行到某个位置(比如指定的断点处)之前的函数调用,不过这个目前还是文本输出的。
302、获取目标函数,目标函数为根据被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,被测版本源码是历史版本源码经过处理得到的;
在本发明实施例中,服务器获取目标函数,目标函数为根据被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,被测版本源码是历史版本源码经过处理得到的。
其中,获取目标函数,具体可以包括:服务器调用版本控制指令;服务器将版本控制指令向版本控制系统SVN服务器发送,版本控制指令用于SVN服务器确定被测对象的被测版本源码与历史版本源码的差异信息;服务器接收SVN服务器发送的差异信息;服务器根据差异信息确定目标函数。
示例性的,假设被测对象为微信,微信被测版本为6.5.3,历史版本为6.5.2,其中,被测版本6.5.3是在历史版本6.5.2的基础上升级的;或者,历史版本为6.5.0,被测版本6.5.3是在历史版本6.5.0的基础上升级的。版本控制指令可以为SVN Diff命令,服务器调用SVN Diff命令,即将SVN Diff命令向SVN服务器发送;SVN服务器根据SVN Diff命令,确定微信的被测版本6.5.3的源码和历史版本6.5.2的源码的差异信息;SVN服务器再将该差异信息向服务器发送,服务器接收该差异信息之后,可以根据该差异信息确定目标函数。
服务器使用到SVN的命令,有export、diff等,对于diff命令,diff的结果会保存在一个文本文件中,如下面的例子所示:
Figure BDA0001237080440000071
第一行“Index:test/CategoryLogAo.java”表示的是存在差异的文件。
第二行是分隔符;
第三行老版本的文件名及其版本号,有“---”前缀;
第四行新版本的文件名及其版本号,有“+++”前缀;
第五行旧版本从42行可似乎后的6行和新版本从42行开始后的18行不一样。此行有开始和结束都有@@;
后面表示的是版本间的具体差异的情况,如果行前有“+”表示新版本对于老版本而言有增加;如果行前“-”表示新版本对于老版本而言有减少。
需要说明的是,步骤301与302的时序不做限定,可以是先获取被测对象的函数调用关系信息,再获取目标函数;也可以是先获取目标函数,再获取被测对象的函数调用关系信息;还可以同时获取被测对象的函数调用关系信息和目标函数。
303、根据函数调用关系信息确定与目标函数对应的目标测试用例;
在本发明实施例中,服务器获取被测对象的函数调用关系信息以及目标函数之后,根据函数调用关系信息确定与目标函数对应的目标测试用例。具体可以包括:服务器根据函数调用关系信息,确定与目标函数对应的接口函数名列表;服务器根据接口函数名列表或者接口函数名列表中的接口函数名对应的命令字确定目标测试用例。需要说明的是,这里的目标测试用例是由于版本迭代更新而受到影响的测试用例。
应理解,对于用例与代码差异结果的结合来确定变更所涉及的用例,当前的方式需要测试人员在测试的过程中建立这样的对应关系,这样的方式是比较低效率的,同时会带来所建立的关系的不完整、错误等一系列的问题。本发明中采用接口的接口命令字作为接口与测试用例间的桥梁,对一个业务而言,命令字是唯一的,这样就精确的建立了测试用例与函数接口间的对应关系。
304、以列表形式展示目标测试用例;
在本发明实施例中,服务器根据函数调用关系信息确定与目标函数对应的目标测试用例之后,可以以列表形式展示目标测试用例。
示例性的,服务器根据函数调用关系信息确定与目标函数对应的目标测试用例如下表1所示:
Figure BDA0001237080440000081
Figure BDA0001237080440000091
表1
305、根据目标测试用例对被测对象进行测试。
在本发明实施例中,服务器以列表形式展示目标测试用例,再根据目标测试用例对被测对象进行测试。即测试人员需要先对这些目标测试用例进行修改,根据修改后的目标测试用例对被测对象进行测试。
示例性的,服务器根据上述表1所示的目标测试用例对被测对象进行测试,这个过程通常称呼精准测试,精准测试模块能够帮助用户确定被测对象的版本迭代更新所涉及的测试用例,这样用户就可以直接运行所涉及的测试用例来完成版本的测试,而不用执行全部的用例,测试效率得到提升。该功能的整个处理流程图4所示,整个过程由程序来处理,用户所需要处理的只是提供被测对象,执行脚本命令,查看结果信息。
需要说明的是,步骤304和步骤305是可选的步骤,在实际应用中,根据实际需要确定是否执行。
在本发明实施例中,服务器获取被测对象的函数调用关系信息;服务器获取目标函数,目标函数为根据被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,被测版本源码是历史版本源码经过处理得到的;服务器根据函数调用关系信息确定与目标函数对应的目标测试用例。因为目标测试用例是服务器通过函数调用关系信息与目标函数确定得到的,和人为进行评估相比较,有效的提高了处理效率和准确率。
使用简单:本发明在使用时不需要测试人员干预,对测试人员其所需要提供的仅仅是提供被测对象的可执行文件或库文件,以及代码的svn路径和版本号,然后执行shell脚本即可,工具会将处理完成之后的用例列表返回给测试人员。
节省了时间:本发明所展示给测试人员的用例列表具有较强的参考价值。测试人员可以根据工具确定代码的变更所涉及的用例,对于测试人员管理、维护、执行测试用例都具有很强的参考价值,省去了测试人员人工查看代码并评估其影响范围的时间和精力。
有助于提高用例的质量:本发明采用的是抓包获取扫描器输入资源的方法,相对于爬虫方式收集的方法,收集的资源要更加的全面,准确,从而提高了扫描质量,降低了漏扫率。
上面对本发明实施例中获取测试用例的方法进行了说明,下面对本发明实施例中的服务器进行说明,如图5所示,为本发明实施例中服务器的一个实施例示意图,包括:
第一获取模块501,用于获取被测对象的函数调用关系信息;
第二获取模块502,用于获取目标函数,目标函数为根据被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,被测版本源码是历史版本源码经过处理得到的;
确定模块503,用于根据函数调用关系信息确定与目标函数对应的目标测试用例。
可选的,在本发明的一些实施例中,第一获取模块501,具体用于:
获取被测对象的可执行文件或者库文件;
根据可执行文件或者库文件获取与被测对象相关的函数信息;
对与被测对象相关的函数信息进行解析,得到函数调用关系信息。
可选的,在本发明的一些实施例中,第二获取模块502,具体用于:
调用版本控制指令;
将版本控制指令向版本控制系统SVN服务器发送,版本控制指令用于SVN服务器确定被测对象的被测版本源码与历史版本源码的差异信息;
接收SVN服务器发送的差异信息;
根据差异信息确定目标函数。
可选的,在本发明的一些实施例中,确定模块503,具体用于:
根据函数调用关系信息,确定与目标函数对应的接口函数名列表;
根据接口函数名列表或者接口函数名列表中的接口函数名对应的命令字确定目标测试用例。
可选的,在本发明的一些实施例中,在图5所示的基础上,如图6所示,为本发明实施例中服务器的一个实施例示意图,服务器还包括:
保存模块504,用于将函数调用关系信息保存在数据库中。
可选的,在本发明的一些实施例中,在图6所示的基础上,如图7所示,为本发明实施例中服务器的一个实施例示意图,服务器还包括:
展示模块505,用于以列表形式展示目标测试用例;
测试模块506,用于根据目标测试用例对被测对象进行测试。
如图8所示,为本发明实施例中服务器的一个实施例示意图,包括:
该服务器可因配置或性能不同而产生比较大的差异,可以包括收发器801,一个或一个以上中央处理器(central processing units,CPU)802(例如,一个或一个以上处理器)和存储器803,一个或一个以上存储应用程序8041或数据8042的存储介质804(例如一个或一个以上海量存储设备)。其中,存储器803和存储介质804可以是短暂存储或持久存储。存储在存储介质804的程序可以包括一个或一个以上模块(图8中没示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器802可以设置为与存储介质804通信,在服务器上执行存储介质804中的一系列指令操作。
在本发明实施例中,该服务器所包括的中央处理器802还具有以下功能:
获取被测对象的函数调用关系信息;
获取目标函数,目标函数为根据被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,被测版本源码是历史版本源码经过处理得到的;
根据函数调用关系信息确定与目标函数对应的目标测试用例。
可选的,在本发明的一些实施例中,中央处理器802具体用于:
获取被测对象的可执行文件或者库文件;
根据可执行文件或者库文件获取与被测对象相关的函数信息;
对与被测对象相关的函数信息进行解析,得到函数调用关系信息。
可选的,在本发明的一些实施例中,中央处理器802具体用于:
调用版本控制指令;
将版本控制指令向版本控制系统SVN服务器发送,版本控制指令用于SVN服务器确定被测对象的被测版本源码与历史版本源码的差异信息;
接收SVN服务器发送的差异信息;
根据差异信息确定目标函数。
可选的,在本发明的一些实施例中,中央处理器802具体用于:
根据函数调用关系信息,确定与目标函数对应的接口函数名列表;
根据接口函数名列表或者接口函数名列表中的接口函数名对应的命令字确定目标测试用例。
可选的,在本发明的一些实施例中,中央处理器802还用于:
将函数调用关系信息保存在数据库中。
可选的,在本发明的一些实施例中,中央处理器802还用于:
以列表形式展示目标测试用例;
根据目标测试用例对被测对象进行测试。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种获取测试用例的方法,其特征在于,包括:
获取被测对象的可执行文件或者库文件,进行反汇编处理得到与被测对象相关的函数信息;
对与被测对象相关的函数信息进行解析,获取被测对象的函数调用关系信息;
获取目标函数,所述目标函数为根据所述被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,所述被测版本源码是所述历史版本源码经过处理得到的;
根据所述函数调用关系信息确定与所述目标函数对应的目标测试用例。
2.根据权利要求1所述的方法,其特征在于,所述获取被测对象的函数调用关系信息,包括:
获取所述被测对象的可执行文件或者库文件;
根据所述可执行文件或者所述库文件获取与所述被测对象相关的函数信息;
对所述与所述被测对象相关的函数信息进行解析,得到所述函数调用关系信息。
3.根据权利要求1或2所述的方法,其特征在于,所述获取目标函数,包括:
调用版本控制指令;
将所述版本控制指令向版本控制系统SVN服务器发送,所述版本控制指令用于所述SVN服务器确定所述被测对象的被测版本源码与历史版本源码的差异信息;
接收所述SVN服务器发送的所述差异信息;
根据所述差异信息确定所述目标函数。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述函数调用关系信息确定与所述目标函数对应的目标测试用例,包括:
根据所述函数调用关系信息,确定与所述目标函数对应的接口函数名列表;
根据所述接口函数名列表或者所述接口函数名列表中的接口函数名对应的命令字确定所述目标测试用例。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
将所述函数调用关系信息保存在数据库中。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
以列表形式展示所述目标测试用例;
根据所述目标测试用例对所述被测对象进行测试。
7.一种服务器,其特征在于,包括:
第一获取模块,用于获取被测对象的可执行文件或者库文件,进行反汇编处理得到与被测对象相关的函数信息;对与被测对象相关的函数信息进行解析,获取被测对象的函数调用关系信息;
第二获取模块,用于获取目标函数,所述目标函数为根据所述被测对象的被测版本源码和历史版本源码的差异信息确定的相关函数,所述被测版本源码是所述历史版本源码经过处理得到的;
确定模块,用于根据所述函数调用关系信息确定与所述目标函数对应的目标测试用例。
8.根据权利要求7所述的服务器,其特征在于,
所述第一获取模块,具体用于获取所述被测对象的可执行文件或者库文件;根据所述可执行文件或者所述库文件获取与所述被测对象相关的函数信息;对所述与所述被测对象相关的函数信息进行解析,得到所述函数调用关系信息。
9.根据权利要求7或8所述的服务器,其特征在于,
所述第二获取模块,具体用于调用版本控制指令;将所述版本控制指令向版本控制系统SVN服务器发送,所述版本控制指令用于所述SVN服务器确定所述被测对象的被测版本源码与历史版本源码的差异信息;接收所述SVN服务器发送的所述差异信息;根据所述差异信息确定所述目标函数。
10.根据权利要求7或8所述的服务器,其特征在于,
所述确定模块,具体用于根据所述函数调用关系信息,确定与所述目标函数对应的接口函数名列表;根据所述接口函数名列表或者所述接口函数名列表中的接口函数名对应的命令字确定所述目标测试用例。
11.根据权利要求7或8所述的服务器,其特征在于,所述服务器还包括:
保存模块,用于将所述函数调用关系信息保存在数据库中。
12.根据权利要求7或8所述的服务器,其特征在于,所述服务器还包括:
展示模块,用于以列表形式展示所述目标测试用例;
测试模块,用于根据所述目标测试用例对所述被测对象进行测试。
13.一种计算机可读存储介质,其特征在于,包括若干指令用以执行如权利要求1-6任一项所述的方法。
CN201710121122.XA 2017-03-02 2017-03-02 一种获取测试用例的方法以及服务器 Active CN106909510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710121122.XA CN106909510B (zh) 2017-03-02 2017-03-02 一种获取测试用例的方法以及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710121122.XA CN106909510B (zh) 2017-03-02 2017-03-02 一种获取测试用例的方法以及服务器

Publications (2)

Publication Number Publication Date
CN106909510A CN106909510A (zh) 2017-06-30
CN106909510B true CN106909510B (zh) 2020-11-24

Family

ID=59186164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710121122.XA Active CN106909510B (zh) 2017-03-02 2017-03-02 一种获取测试用例的方法以及服务器

Country Status (1)

Country Link
CN (1) CN106909510B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908540B (zh) * 2017-07-26 2021-04-06 平安壹钱包电子商务有限公司 测试用例创建方法、装置、计算机设备及介质
CN107885660B (zh) * 2017-10-31 2020-04-03 平安科技(深圳)有限公司 基金系统自动化测试管理方法、装置、设备及存储介质
CN109240911A (zh) * 2018-08-13 2019-01-18 腾讯科技(北京)有限公司 精准测试方法、装置和计算机设备
CN109271322B (zh) * 2018-09-25 2021-09-28 杭州群核信息技术有限公司 一种软件测试范围确定方法、软件测试方法和装置
CN109491724A (zh) * 2018-11-11 2019-03-19 上海精密计量测试研究所 测试设备的软件通用测试平台对专用测试程序的调用方法
CN109542942B (zh) * 2018-11-28 2021-09-24 网易(杭州)网络有限公司 函数调用的查询方法及装置、电子设备
CN109783353A (zh) * 2018-12-14 2019-05-21 平安普惠企业管理有限公司 一种程序分析方法及终端设备
CN110147317A (zh) * 2019-04-19 2019-08-20 平安普惠企业管理有限公司 代码测试方法及装置、电子设备和存储介质
CN110134595B (zh) * 2019-04-19 2024-05-28 平安科技(深圳)有限公司 Svn资源库测试前的分析方法、装置、计算机设备
CN112099838B (zh) * 2019-06-17 2023-08-15 腾讯科技(深圳)有限公司 确定版本差异的方法、装置及存储介质
CN111538651A (zh) * 2020-03-30 2020-08-14 中国平安人寿保险股份有限公司 接口测试方法、装置、服务器及存储介质
CN111752843B (zh) * 2020-06-29 2024-02-13 百度在线网络技术(北京)有限公司 用于确定影响面的方法、装置、电子设备及可读存储介质
CN112799951B (zh) * 2021-02-04 2023-03-31 上海云轴信息科技有限公司 用于计费系统的生成自动测试用例的方法与设备
CN113190442A (zh) * 2021-04-27 2021-07-30 上海安畅网络科技股份有限公司 一种测试范围度量及测试覆盖检查的方法及系统
CN113176997B (zh) * 2021-04-30 2024-05-03 深圳市共进电子股份有限公司 测试用例加载方法、装置、计算机设备和可读存储介质
CN117112413A (zh) * 2023-08-18 2023-11-24 鱼快创领智能科技(南京)有限公司 一种自动生成接口测试用例的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839874B1 (en) * 2002-02-28 2005-01-04 Xilinx, Inc. Method and apparatus for testing an embedded device
CN102622558A (zh) * 2012-03-01 2012-08-01 北京邮电大学 一种二进制程序漏洞的挖掘装置和方法
CN103678097A (zh) * 2012-09-05 2014-03-26 百度在线网络技术(北京)有限公司 一种选择回归测试用例的方法和装置
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839874B1 (en) * 2002-02-28 2005-01-04 Xilinx, Inc. Method and apparatus for testing an embedded device
CN102622558A (zh) * 2012-03-01 2012-08-01 北京邮电大学 一种二进制程序漏洞的挖掘装置和方法
CN103678097A (zh) * 2012-09-05 2014-03-26 百度在线网络技术(北京)有限公司 一种选择回归测试用例的方法和装置
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统

Also Published As

Publication number Publication date
CN106909510A (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
CN106909510B (zh) 一种获取测试用例的方法以及服务器
Abdalkareem et al. Which commits can be CI skipped?
CN101739339B (zh) 一种基于程序动态依赖关系的软件故障定位方法
CN112394942B (zh) 基于云计算的分布式软件开发编译方法及软件开发平台
CN104932973B (zh) 一种版本兼容测试方法和装置
US8140911B2 (en) Dynamic software tracing
US7900198B2 (en) Method and system for parameter profile compiling
CN110471652B (zh) 任务编排方法、编排器、设备及可读存储介质
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
CN105389262B (zh) 一种针对界面测试生成测试建议的方法和装置
CN110196809B (zh) 接口测试方法及装置
CN104679500B (zh) 实体类自动生成实现方法及装置
Chen et al. Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems
CN109542444B (zh) Java应用的监控方法、装置、服务器和存储介质
CN115705250A (zh) 监测堆栈使用量以优化程序
US11755458B2 (en) Automatic software behavior identification using execution record
CN106201790B (zh) 一种基于dsdt表的调试方法及调试系统
CN112685316A (zh) 代码执行路径的获取方法、装置、计算机设备及存储介质
WO2019242108A1 (zh) 一种基于聚类分析的软件缺陷修复模板提取方法
CN110674024A (zh) 电子设备集成测试系统及其方法
CN113312054A (zh) 针对嵌入式软件架构的软件栈消耗分析方法及分析装置
CN113326193A (zh) 一种小程序测试方法及装置
CN115658551B (zh) 代码测试方法、存储介质、电子设备和装置
CN114168565B (zh) 业务规则模型的回溯测试方法、装置、系统及决策引擎
CN117707976A (zh) 一种确定代码变更的影响范围的方法、装置和设备

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