CN117215965A - 基于测试用例识别的测试方法、装置、电子设备和介质 - Google Patents

基于测试用例识别的测试方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN117215965A
CN117215965A CN202311483240.7A CN202311483240A CN117215965A CN 117215965 A CN117215965 A CN 117215965A CN 202311483240 A CN202311483240 A CN 202311483240A CN 117215965 A CN117215965 A CN 117215965A
Authority
CN
China
Prior art keywords
file
function
tested
difference
test
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.)
Granted
Application number
CN202311483240.7A
Other languages
English (en)
Other versions
CN117215965B (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.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
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 Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN202311483240.7A priority Critical patent/CN117215965B/zh
Publication of CN117215965A publication Critical patent/CN117215965A/zh
Application granted granted Critical
Publication of CN117215965B publication Critical patent/CN117215965B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及自动化测试技术领域,提供了一种基于测试用例识别的测试方法、装置、电子设备和介质,所述方法包括:获取JAR格式的待测文件,待测文件包括至少一个函数;将待测文件和预设参考文件进行分析比对,获得目标函数集合;目标函数集合包含至少一个差异函数;差异函数为待测文件中与预设参考文件的函数具有差异的函数,差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从待测文件的方法中确定的;分别将目标函数集合中各个函数对应的用例作为目标测试用例,并对目标测试用例进行测试。本发明能够提高自动化测试效率。

Description

基于测试用例识别的测试方法、装置、电子设备和介质
技术领域
本发明涉及自动化测试技术领域,具体而言,涉及一种基于测试用例识别的测试方法、装置、电子设备和介质。
背景技术
在基于浏览器/服务器B/S(Browser/Server)系统架构的开发测试过程中,研发测试团队需要同时负责多个版本系统,每个版本又会存在多套测试环境,预发布环境,生产环境等。研发人员修改好代码后,提交到持续集成环境,系统会自动编译上传到测试环境,安装部署好程序,并准备执行自动化测试用例。
但是对于大型软件程序,通常包含上百个模块,如果每次都要将所有测试用例全部执行一遍,极大地影响测试效率,如何能够提高自动化测试的效率是本领域技术人员亟待解决的技术问题。
发明内容
本发明的目的在于提供了一种基于测试用例识别的测试方法、装置、电子设备和介质,其能够提高自动化测试效率。
本发明的实施例可以这样实现:
第一方面,本发明提供一种基于测试用例识别的测试方法,所述方法包括:
获取待测文件,所述待测文件包括至少一个函数;
将所述待测文件和预设参考文件进行分析比对,获得目标函数集合;所述目标函数集合包含至少一个差异函数;所述差异函数为所述待测文件中与所述预设参考文件的函数具有差异的函数,所述差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从所述待测文件的方法中确定的;
分别将所述目标函数集合中各个函数对应的用例作为目标测试用例,并对所述目标测试用例进行测试。
在可选的实施方式中,所述将所述待测文件和预设参考文件进行分析比对,获得目标函数集合的步骤,包括:
若所述待测文件和所述预设参考文件存在代码差异,则将所述待测文件中各个函数与所述预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数;
将所述代码差异的函数作为所述差异函数。
在可选的实施方式中,所述方法还包括:
根据所述差异函数确定是否存在与所述差异函数具有调用关系的关系函数;
若是,则将所述关系函数添加至所述目标函数集合。
在可选的实施方式中,所述将所述待测文件中各个函数与所述预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数的步骤包括:
按照JAR格式解析出所述待测文件中各个函数的代码;
获取所述预设参考文件中各个函数的代码;
根据所述待测文件中各个函数的代码和所述预设参考文件中各个函数的代码,确定代码差异函数和新增函数,所述代码差异函数为所述待测文件和预设参考文件中函数名相同且函数代码不同的函数,所述新增函数为存在于所述待测文件中且未存在于所述预设参考文件中的函数。
在可选的实施方式中,所述方法表集合包括至少一个方法,所述按照JAR格式解析出所述待测文件中各个函数的代码的步骤包括:
从所述待测文件的方法表集合中解析出作为外部接口的接口方法的方法名,将所述接口方法作为函数;
根据所述接口方法的方法名从所述属性表集合中找到所述接口方法的代码位置,并根据所述接口方法的代码位置确定所述接口方法的代码。
在可选的实施方式中,所述类文件结构还包括用于描述方法之间的引用关系的索引信息,所述根据所述差异函数确定是否存在与所述差异函数具有调用关系的关系函数的步骤包括:
根据所述索引信息,得到所述差异函数所属的引用链,所述引用链包括与所述差异函数存在直接或者间接引用关系的相关方法;
若所述相关方法中存在作为外部接口的相关接口方法,则将所述相关接口方法确定为所述关系函数。
在可选的实施方式中,所述待测文件和所述预设参考文件均为JAR格式,所述方法还包括:
按照JAR格式的内容排布结构,解析出所述待测文件中的非代码数据;
对所述待测文件中的非代码数据进行清洗,得到清洗后的待测文件;
若清洗后的待测文件和清洗后的预设参考文件不同,则判定所述待测文件和所述预设参考文件存在代码差异。
在可选的实施方式中,所述按照JAR格式的内容排布结构,解析出所述待测文件中的非代码数据的步骤包括:
按照JAR格式的内容排布结构,从所述待测文件中确定头文件标识、核心目录标识、核心目录结束标识;
将所述待测文件中距离所述头文件标识第一偏移量的第一位置开始且长度为第一预设长度的数据、距离所述核心目录标识第二偏移量的第二位置开始且长度为第二预设长度的数据及距离所述核心目录结束标识第三偏移量的第三位置开始且长度为第三预设长度的数据确定为所述待测文件中的非代码数据。
第二方面,本发明提供一种基于测试用例识别的测试装置,所述装置包括:
获取模块,用于获取JAR格式的待测文件,所述待测文件包括至少一个函数;
分析模块,用于将所述待测文件和预设参考文件进行分析比对,获得目标函数集合;所述目标函数集合包含至少一个差异函数;所述差异函数为所述待测文件中与所述预设参考文件的函数具有差异的函数,所述差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从所述待测文件的方法中确定的;
测试模块,用于分别将所述目标函数集合中各个函数对应的用例作为目标测试用例,并对所述目标测试用例进行测试。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现前述实施方式中任一项所述的基于测试用例识别的测试方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项所述的基于测试用例识别的测试方法。
相对于现有技术,本发明实施例提供了一种基于测试用例识别的测试方法、装置、电子设备和介质,获取JAR格式的待测试文件后,将待测试文件和预设参考文件进行分析比对,得到包括了待测文件中与预设参考文件存在差异的差异函数的目标函数集合,差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从待测文件的方法中确定的,再分别将目标函数集合中各个函数对应的用例作为目标测试用例,并对目标测试进行测试,本发明实施例先根据JAR格式的类文件结构中的方法表集合和属性表集合确定差异函数,再基于差异函数确定需要测试的测试用例,由于只针对测试文件有修改的部分涉及的函数进行测试,消除了对测试文件中未做修改的部分进行测试所额外消耗的测试时间,整体上减少了自动化测试的耗时,提高了自动化测试效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本实施例提供的总体逻辑架构的示例图。
图2为本实施例提供的基于测试用例识别的测试方法的流程示例图。
图3为本实施例提供的针对JAR格式的待测文件处理的逻辑架构的示例图。
图4为本实施例提供的JAR包解析的示例图。
图5为本实施例提供的JAR文件数据区的结构示例图。
图6为本实施例提供的JAR文件数据区的解析示例图。
图7为本实施例提供的基于测试用例识别的测试装置的方框示例图。
图8为本发明实施例提供的一种电子设备的方框示例图。
图标:100-基于测试用例识别的测试装置;110-获取模块;120-分析模块;130-测试模块;10-电子设备;11-处理器;12-存储器;13-总线。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
B/S(Broswer/Server,浏览器/WEB服务器)架构由于升级部署更方便,客户端更轻便,能够有效避免因客户端过于重型带来的升级部署失败等问题。包括金融软件在内的大型的应用软件产商在开发软件系统尤其是投资交易系统等金融类的软件系统时必然会碰到高并发,大数据量,低延时等技术挑战,大部分厂商会选择分布式架构以及微服务的模式来应对,即同一个服务部署多个节点,平行扩展系统各节点。现实开发场景中,研发测试团队需要同时负责多个版本系统,每个版本又会存在多套测试环境,预发布环境,生产环境等,复杂且过多的版本测试验证环境,如果使用人工去分辨测试用例则太耗费时间,如果不筛选而是全部执行相关的几十万条用例,则导致测试效率极其低下。
有鉴于此,本发明实施例提供一种基于测试用例识别的测试方法、装置、电子设备和介质,其核心方案的思路在于:先识别出待测试文件中修改部分涉及的差异函数,再基于差异函数自动筛选出相关的测试用例,通过精准筛选出与修改部分相关的测试用例,减少与修改部分无关的自动化测试用例的执行,消除了对测试文件中未做修改的部分进行测试所额外消耗的测试时间,整体上减少了自动化测试的耗时,提高了自动化测试效率。下面将对其进行详细描述。
请参照图1,图1为本实施例提供的总体逻辑架构的示例图,图1中,自动化测试主要包括以下几大阶段:提交代码、上传测试环境、分析提交代码中的差异函数、基于差异函数确定目标测试用例、执行目标测试用例,输出目标测试用例的测试结果。
提交代码:开发人员将修改后的代码文件提交至代码管理平台,例如SVN或者Github等。
上传测试环境:持续集成工具检测到有代码提交后,自动获取包含有修改的代码,并重新编译出版本包,将编译出的版本包上传至测试环境,测试环境可以但不限于回归测试、预发布测试等环境。
分析代码中的差异函数:根据预先配置的基础环境变量,包括但不限于IP地址、端口、账号、密码、程序路径,获取当前递交的代码版本和指定的基线版本,将两者进行对比,得到差异函数。
基于差异函数确定目标测试用例:从预设测试用例中选择包括差异函数和/或与差异函数存在关联关系的函数的测试用例作为目标测试用例。
执行目标测试用例:将目标测试用例作为自动化测试的用例输入,启动自动化测试。
输出目标测试用例的测试结果:根据自动化测试执行目标测试用例的执行结果得到测试结果,进而根据测试结果判断提交代码是否存在问题。
基于图1所示的总体逻辑架构,本实施例提供了一种基于测试用例识别的测试方法,请参照图2,图2为本实施例提供的基于测试用例识别的测试方法的流程示例图,该方法包括以下步骤:
步骤S101,获取JAR格式的待测文件,待测文件包括至少一个函数。
在本实施例中,待测文件可以是图1中持续集成工具检测到开发人员提交修改后的代码后编译出的版本包,待测文件也可以是编译的版本包中的包含有程序代码的二进制文件,若是前者,则需要将版本包进行拆包分析,提取其中的包含有程序代码的二进制文件。
步骤S102,将待测文件和预设参考文件进行分析比对,获得目标函数集合;目标函数集合包含至少一个差异函数;差异函数为待测文件中与预设参考文件的函数具有差异的函数,差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从待测文件的方法中确定的。
在本实施例中,预设参考文件可以是图1中的基线版本的文件,也可以是根据测试需求预先指定的历史版本中目标版本的文件,例如,待测文件是基于版本V1.0的代码缺陷修改而成的,若测试需求是需要测试其对版本V1.0的影响,则预设参考文件为版本V1.0。
在本实施例中,差异函数包括但不限于以下几种情况中的至少一种:(1)待测文件和预设参考文件中函数名相同但是代码存在差异的函数;(2)待测文件新增的、而预设参考文件中没有的函数;(3)待测文件和预设参考文件中函数名相同但是预设参考文件中该函数是内部函数而待测文件中该函数变为外部接口函数。目标函数集合中包含的函数包括但不限于差异函数,差异函数和与差异函数存在相关性的函数,相关性的函数可以包括差异函数直接或者间接调用的函数和/或直接或者间接调用差异函数的函数。
步骤S103,分别将目标函数集合中各个函数对应的用例作为目标测试用例,并对目标测试用例进行测试。
在本实施例中,目标测试用例可以是包括目标函数集合中的一个或者多个函数的用例,但是目标测试用例必须是包括差异函数的用例,例如,目标函数集合中的函数为A、B、C、D,其中,A为差异函数,则目标测试用例包括以下几种用例中的至少一种:(1)包括A的用例;(2)包括A和B的用例;(3)包括A、B、C的用例;(4)包括A、B、C、D的用例,目标测试用例的选择可以视测试需求而定,例如,测试完备性要求高、测试效率限制比较低时,可以将上述四种用例全部选择,作为目标测试用例;测试完备性要求一般,测试效率较高时,可以选择上述四种中的一种或者两种或者三种的全部用例作为目标测试用例,或者选择上述四种中每一种的部分测试用例作为目标测试用例。
本实施例提供的上述方法,先根据JAR格式的类文件结构中的方法表集合和属性表集合确定差异函数,再基于差异函数确定需要测试的测试用例,由于只针对测试文件有修改的部分涉及的函数进行测试,消除了对测试文件中未做修改的部分进行测试所额外消耗的测试时间,整体上减少了自动化测试的耗时,提高了自动化测试效率。
在可选的实施方式中,由于目标函数集合中可以包括差异函数,也可以既包括差异函数又包括与差异函数存在相关关系的函数,针对上述两种方式,本实施例各提供了对应的一种实现方式。
而对于差异函数,至少包括以下几种:
(1)差异函数为待测文件新增的函数;(2)差异函数为待测文件中函数名与预设参考文件中函数名相同、并且在预设参考文件中该函数是内部函数、在待测文件中变为被外部调用的接口函数;(3)差异函数为待测文件中函数名与预设参考文件中函数名相同、并且函数实现存在差别;对于(1)和(2),只需要比较函数名及函数的属性信息既可以确定差异函数,而对于(3),为了快速识别出差异函数,本实施例提供了一种具体实现方式:
若待测文件和预设参考文件存在代码差异,则将待测文件中各个函数与预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数;
将代码差异的函数作为差异函数。
在本实施例中,先将待测文件和预设参考文件各自作为一个整体,从文件粒度上比较这两个文件是否存在代码差异,若从文件粒度上确定两个文件不存在差异,则就没有必要再继续对文件中的函数进行比对,避免了不必要的比对处理。作为一种实现方式,可以分别对待测文件的代码和预设参考文件的代码利用预设加密算法,生成各自的加密串,通过比对两个加密串是否相同,进而确定两者是否存在代码差异,加密算法包括但不限于SHA,SM4,MD5等。
需要说明的是,除了上述通过比对函数的代码确定代码差异,有些函数还可以直接比对函数的接口信息确定两者之间是否存在代码差异,例如,待测文件中的函数A包括3个输入参数和1个输出参数,预设参考文件的函数A包括2个输入参数和1个输出参数,则通过对比两个函数的输入参数和输出参数,就可以得知两个函数是否存在代码差异,除此之外,还可以通过比对函数的返回值的类型确定两者之间是否存在代码差异,例如,待测文件中的函数A的返回值为整型,而预设参考文件的函数A的返回值为结构体类型,则两者之间肯定存在代码差异。
在确定差异函数之后,当待测文件中没有调用差异函数的函数、也没有被差异函数调用的函数时,则目标函数集合中只存在差异函数,否则,目标函数集合中除了存在差异函数,还可以包括与差异函数存在关联关系的函数,为了确定与差异函数存在关联关系的函数,本实施例提供了一种实现方式:
根据差异函数确定是否存在与差异函数具有调用关系的关系函数;
若是,则将关系函数添加至目标函数集合。
在本实施例中,调用关系可以是差异函数直接或者间接调用关系函数、也可以是关系函数直接或者间接调用差异函数。
在可选的实施方式中,为了更高效地确定存在代码差异的函数,发明人针对待测文件的格式进行分析后发现,可以根据不同文件格式的特点提高确定存在代码差异的函数的效率,本实施例以JAR格式为例,给出了一种针对JAR格式的文件,确定存在代码差异的函数的处理方式。
基于图1的总体逻辑架构,对于JAR格式的文件而言,其总体处理流程和图1一致,即:研发团队开发递交代码到持续集成环境,根据触发条件,触发自动化编译,根据预设的分发程序到不同测试环境,目标环境收到程序后,执行自动化测试流程。触发自动化流程后,系统启动后分别发起连接根据配置信息连接到两台服务器上,搜索找到指定的目录,启动ftp程序,远程下载该目录下的所有jar文件到本地A,B目录,下载完成后是否ftp连接,Linux服务器连接,读取A,B两个文件夹中所有文件,根据将两个文件夹中文件名称相同的文件,读取文件内容加载到内存中,并对两个文件按照JAR格式进行分析,得到两者的差异函数,最后基于差异函数确定目标测试用例,再运行目标测试用例,得到测试结果。
为了更清楚地说明整个处理过程,本实施首先基于图1提供的总体逻辑架构给出了针对JAR格式的待测文件处理的逻辑架构的示例图,请参照图3,图3为本实施例提供的针对JAR格式的待测文件处理的逻辑架构的示例图,图3主要是对图1中的分析提交代码中的差异函数和基于差异函数确定目标测试用例这两个阶段按照JAR格式的文件对其进一步细化。
对于分析提交代码中的差异函数这个阶段而言,主要包括以下处理:(1)根据预设程序路径找到对应的JAR格式的程序包;(2)下载找到的待测文件程序包和预设参考文件程序包;(3)获取两个程序包代码部分的内容;(4)计算这两个程序包的代码数据;(5)分析这两个程序包节数据,计算公开函数数据;(6)对比两个程序包公开函数的差异,得到差异函数。
对于基于差异函数确定目标测试用例这个阶段而言,主要包括以下处理:(1)计算待测文件程序包字节数,计算差异函数调用关系链;(2)将差异函数及调用关系链上的公开函数作为目标函数集合中的函数;(3)将目标函数集合中各个函数对应的用例作为目标测试用例。
JAR格式是一种软件包文件格式,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发Java平台应用软件或库。JAR文件是一种归档文件,以ZIP格式构建,以.jar为文件扩展名。用户可以使用JDK自带的jar命令创建或提取JAR文件,也可以使用其他zip压缩工具,JAR文件要遵循专门的格式,为了更详细地说明上述两个阶段的处理过程,本实施例先对JAR格式的包结构进行说明,JAR格式的包结构如表1所示。
表1
表1中,JAR包的文件名为ABC.jar,该JAR包包括n个文件,由于JAR包是使用zip的压缩技术完成jar包的打包操作,具体是使用了java.util.zip这个类库,JAR里面记录着压缩的所有文件的内容信息,每个压缩文件都包括Local file header(文件头)、File data(文件数据)和Data descriptor(数据描述符)这三部分,Local file header用于标识文件的开始,记录了该压缩文件的信息,File data记录了相应压缩文件的数据,Datadescriptor用于标识该文件压缩结束,该结构只有在相应的Local file header中通用标记字段的第3bit设为1时才会出现,紧接在压缩文件源数据后。该JAR包还包括Centraldirectory(核心目录)和End of central directory record(EOCD,目录结束标识),Central directory记录了压缩文件的目录信息,在这个数据区中每一条记录对应在压缩源文件数据区中的一条数据,End of central directory record存在于整个JAR包的结尾,用于标记压缩的目录数据的结束,每个压缩文件必须有且只有一个EOCD记录。
在本实施例中,为了快速地确定待测文件和预设参考文件是否存在代码差异,对于JAR格式的待测文件和预设参考文件,本实施例提供了一种按照JAR格式的特点确定是否存在代码差异的实现方式:
首先,按照JAR格式的内容排布结构,解析出待测文件中的非代码数据;
在本实施例中,待测文件中的非代码数据包括但不限于文件的修改日期、修改时间、磁盘路径等。
其次,对待测文件中的非代码数据进行清洗,得到清洗后的待测文件;
在本实施例中,对非代码数据进行清洗可以是将非代码数据替换成特殊值,例如,将所有非代码数据替换成0。需要说明的是,对待测文件中的非代码数据进行清洗的方式要和对预设参考文件中的非代码数据进行清洗的方式相同。
最后,若清洗后的待测文件和清洗后的预设参考文件不同,则判定待测文件和预设参考文件存在代码差异。
在本实施例中,对于清洗后的待测文件和清洗后的预设参考文件,可以采用相同的加密算法分别对两者进行加密计算,得到两者的加密串,通过对比两者的加密串确定两者是否存在代码差异,加密算法包括但不限于SHA,SM4,MD5等。
在可选的实施方式中,当JAR格式的待测文件为编译后的二进制文件时,为了能够快速、准确地确定出其中的非代码数据,本实施例提供了一种按照JAR格式的内容排布结构,解析出待测文件中的非代码数据的一种实现方式:
首先,按照JAR格式的内容排布结构,从待测文件中确定头文件标识、核心目录标识、核心目录结束标识;
其次,将待测文件中距离头文件标识第一偏移量的第一位置开始且长度为第一预设长度的数据、距离核心目录标识第二偏移量的第二位置开始且长度为第二预设长度的数据及距离核心目录结束标识第三偏移量的第三位置开始且长度为第三预设长度的数据确定为待测文件中的非代码数据。
在本实施例中,JAR格式有着专门的内容排布方式,JAR格式的文件结构是以zip文件结构打底,在上层构建自己的结构,一般的jar都是包含 META-INF目录,名称-值对节区,JAR Manifest, JAR 签名,JAR Index ,Service Provider,API信息等几部分组成,JAR使用了ZIP的压缩技术构建了文件,META-INF目录用于存储程序包和扩展配置数据,包括安全性,版本控制,扩展和服务。请参照图4,图4为本实施例提供的JAR包解析的示例图,图4中,JAR包的文件名为ABC.jar,该JAR包中包括BB和CC两个文件,且这两个文件位于AA目录下,另外,JAR包还包括固定的目录META-INF、STATIC.DIR、IMAGE.DIR、AUDIO.DIR和ABC.JAR,META-INF目录用于存储程序包和扩展配置数据,包括安全性,版本控制,扩展和服务,由图4可以分析出,同一份代码在不同时间编译后JAR文件中的有一些节点内容是不一致的,包括编译日期,编译时间戳,上次修改日期,时间,文件路径等,可以通过将此类信息清洗后再将两者进行对比,由此可以减少不必要信息对比。
在本实施例中,为了确定日期、时间及磁盘路径等非代码数据,只需要对META-INF中的MANIFEST.MF文件进行分析,MANIFEST.MF文件是一种元数据文件,用于在运行Java应用程序时加载所有必需的内容,MANIFEST.MF文件的格式是规范化的,定义了Java应用程序中JAR文件的清单,这个清单描述了这个JAR文件中包含的所有类、资源、库等。除此之外,还需要将其余的目录和文件均当作普通的文件看待,如图4中的1.file~7.file并确定出其中的日期、时间及磁盘路径等非代码数据。
对于文件中的日期、时间及磁盘路径等信息,可以通过文件数据区的数据排布方式确定其中的日期、时间及磁盘路径等信息,请参照图5,图5图5为本实施例提供的JAR文件数据区的结构示例图,图5中,对于本地文件头(Local file header)而言,距离其第一偏移量的第一位置开始且长度为第一预设长度的数据包括该文件最后修改的时间和文件最后修改的日期等信息,例如,距离Local file header10字节且长度为2字节的数据为文件最后修改的时间(File last modification time)、距离Local file header12字节且长度为2字节的数据为文件最后修改的日期(File last modification date);对于核心目录(Central directory)而言,距离其第二偏移量的第二位置开始且长度为第二预设长度的数据包括该目录最后修改的时间和日期等信息,例如,距离Central directory12字节且长度为2字节的数据为该目录最后修改的时间、距离Central directory14字节且长度为2字节的数据为该目录最后修改的日期;对于核心目录结束标识(End of central directoryrecord)而言,距离其第三偏移量的第三位置开始且长度为第三预设长度的数据包括当前磁盘编号(number of this disk)、核心目录开始位置的磁盘编号(number of the diskwith the start of the central directory)及核心目录开始位置相对于archive开始的位移(offset of start of central directory with respect to the starting disknumber)等信息,例如,距离End of central directory record4字节且长度为2字节的数据为当前磁盘编号、距离End of central directory record6字节且长度为2字节的数据为该核心目录开始位置的磁盘编号,距离End of central directory record16字节且长度为4字节的数据为核心目录开始位置相对于archive开始的位移。
对于JAR格式的二进制文件包,文件头标志、核心目录标记及核心目录结束标记都是固定的值,其16进制的值分别表示为0x04034b50、0x02014b50、0x06054b50。为了更具体地说明其中的非代码信息,请参照图6,图6为本实施例提供的JAR文件数据区的解析示例图,图6中,找到16进制为0x04034b50,就能确定距离文件头标识,在距离文件头标识10字节处,长度为2字节的数据为文件最后修改时间,图6中的其他非代码信息的确定方式与之类似。
需要说明的是,当JAR格式的二进制文件包中有多个文件中,会存在多个文件头标志,需要根据每一个文件头标志,确定每一个文件的文件最后修改的时间和日期,一个JAR格式的二进制文件包只有一个核心目录标记和一个核心目录结束标记,根据核心目录标记和核心目录结束标记分别确定与之存在位置偏移关系的其他非代码信息,最终确定出二进制文件包中所有非代码信息。
在本实施例中,为了将待测文件中各个函数与预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数,一种方式是将函数的代码确定出来,而对于JAR格式的文件,可以按照JAR格式解析出待测文件中的函数的代码,再对代码进行比对,一种可能的实现方式为:
首先,按照JAR格式解析出待测文件中各个函数的代码;
在本实施例中,对于JAR格式的类文件,即经过编译后的字节码文件,其中保留了JAVA源代码中的结构和几乎全部的符号信息,JAR格式的类文件结构包括方法表集合和属性表集合,方法表集合包括至少一个方法,方法表集合表征了JAR格式的文件中包括的方法的修饰符、方法的修饰符包括表征该方法是否作为外部接口,即其是否为public的方法;是否有方法值、返回类型、方法名称和方法参数等信息,属性表结合表征方法的属性信息,包括方法的代码实现、方法声明的要抛出的异常信息等。
通常情况下,待测文件中的方法是待测文件中类中的方法,一个方法对应一段代码,通过方法的方法名调用该方法,以实现该方法的功能,方法可以在待测文件中内部被其他方法调用,也可以作为接口被待测文件之外的其他文件中的方法调用,在环境测试中,通常不需要对内部使用的方法进行测试,而只需要对作为接口的方法进行测试,本实施例将作为接口的方法称之为函数,一种解析函数的方式为:
从待测文件的方法表集合中解析出作为外部接口的接口方法的方法名,将接口方法作为函数;
根据接口方法的方法名从属性表集合中找到接口方法的代码位置,并根据接口方法的代码位置确定接口方法的代码。
其次,获取预设参考文件中各个函数的代码;
最后,根据待测文件中各个函数的代码和预设参考文件中各个函数的代码,确定代码差异函数和新增函数,代码差异函数为待测文件和预设参考文件中函数名相同、且函数代码不同的函数,新增函数为存在于待测文件中且未存在于预设参考文件中的函数。
在本实施例中,对于函数名相同的函数,可以首先通过比对两个函数的长度是否相同,若长度不一致,则可以判断肯定代码不同,如果长度一致,再利用加密函数分别计算两个函数代码的加密串,若一致,则两个函数代码相同,否则,两个函数代码不同。
在本实施例中,在确定出差异函数后,为了更全面地测试差异函数对整个待测试文件的影响,除了对差异函数对应的用例进行测试之外,还需要对于差异函数及与差异函数存在调用关系的关系函数也进行测试,由此保证测试的全面性,对于JAR格式的类文件,即经过编译后的字节码文件,其中保留了JAVA源代码中的结构和几乎全部的符号信息,同样可以通过JAR格式的类文件的特点确定与差异函数存在调用关系的关系函数,由于JAR格式的类文件结构中除了包括方法表集合和属性表集合,还是包括用于描述方法之间的引用关系的索引信息,利用索引信息确定与差异函数存在调用关系的关系函数的一种方式可以为:
首先,根据索引信息,得到差异函数所属的引用链,引用链包括与差异函数存在直接或者间接引用关系的相关方法;
其次,若相关方法中存在作为外部接口的相关接口方法,则将相关接口方法确定为关系函数。
在本实施例中,索引信息可以是类索引和接口索引集合,类索引用于确定类的全限定名,接口索引结合用于描述类实现的接口,这些被实现的接口将按implements语句后的接口顺序从左到右排列在接口索引集合中,根据类索引和接口索引集合确定方法之间的引用关系,进而得到差异函数的引用链,该引用链包括与差异函数存在直接、或者间接调用关系的相关方法,将相关方法中作为外部接口的方法作为关系函数。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面分别给出一种基于测试用例识别的测试装置100的实现方式,应用于电子设备。请参照图7,图7为本发明实施例提供的基于测试用例识别的测试装置的方框示例图,需要说明的是,本实施例所提供的基于测试用例识别的测试装置100,其基本原理及产生的技术效果和对应的上述实施例相同,为简要描述,本实施例部分未提及指出。
基于测试用例识别的测试装置100包括获取模块110、分析模块120和测试模块130。
获取模块110,用于获取待测文件,待测文件包括至少一个函数。
分析模块120,用于将待测文件和预设参考文件进行分析比对,获得目标函数集合;目标函数集合包含至少一个差异函数;差异函数为待测文件中与预设参考文件的函数具有差异的函数,所述差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从所述待测文件的方法中确定的。
测试模块130,用于分别将目标函数集合中各个函数对应的用例作为目标测试用例,并对目标测试用例进行测试。
本实施例提供的基于测试用例识别的测试装置100,由于只针对测试文件有修改的部分涉及的函数进行测试,消除了对测试文件中未做修改的部分进行测试所额外消耗的测试时间,整体上减少了自动化测试的耗时,提高了自动化测试效率。
在可选的实施方式中,分析模块120具体用于:
若待测文件和预设参考文件存在代码差异,则将待测文件中各个函数与预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数;
将代码差异的函数作为差异函数。
在可选的实施方式中,分析模块120具体还用于:
根据差异函数确定是否存在与差异函数具有调用关系的关系函数;
若是,则将关系函数添加至目标函数集合。
在可选的实施方式中,分析模块120具体用于:
按照JAR格式解析出待测文件中各个函数的代码;
获取预设参考文件中各个函数的代码;
根据待测文件中各个函数的代码和预设参考文件中各个函数的代码,确定代码差异函数和新增函数,代码差异函数为待测文件和预设参考文件中函数名相同、且函数代码不同的函数,新增函数为存在于待测文件中、且未存在于预设参考文件中的函数。
在可选的实施方式中,方法表集合包括至少一个方法,分析模块120在具体用于按照JAR格式解析出待测文件中各个函数的代码时,具体用于:
从待测文件的方法表集合中解析出作为外部接口的接口方法的方法名,将接口方法作为函数;
根据接口方法的方法名从属性表集合中找到接口方法的代码位置,并根据接口方法的代码位置确定接口方法的代码。
在可选的实施方式中,类文件结构还包括用于描述方法之间的引用关系的索引信息,分析模块120具体用于根据差异函数确定是否存在与差异函数具有调用关系的关系函数时具体用于:
根据索引信息,得到差异函数所属的引用链,引用链包括与差异函数存在直接或者间接引用关系的相关方法;
若相关方法中存在作为外部接口的相关接口方法,则将相关接口方法确定为关系函数。
在可选的实施方式中,待测文件和预设参考文件均为JAR格式,分析模块120具体还用于:
按照JAR格式的内容排布结构,解析出待测文件中的非代码数据;
对待测文件中的非代码数据进行清洗,得到清洗后的待测文件;
若清洗后的待测文件和清洗后的预设参考文件不同,则判定待测文件和预设参考文件存在代码差异。
在可选的实施方式中,分析模块120具体用于按照JAR格式的内容排布结构,解析出待测文件中的非代码数据时具体用于:
按照JAR格式的内容排布结构,从待测文件中确定头文件标识、核心目录标识、核心目录结束标识;
将待测文件中距离头文件标识第一偏移量的第一位置开始且长度为第一预设长度的数据、距离核心目录标识第二偏移量的第二位置开始且长度为第二预设长度的数据及距离核心目录结束标识第三偏移量的第三位置开始且长度为第三预设长度的数据确定为待测文件中的非代码数据。
本发明实施例还提供了电子设备10的方框示例图,前述实施例中的实现上述实施例的基于测试用例识别的测试方法,或者实现上述实施例的基于测试用例识别的测试方法应用于该电子设备10,需要说明的是,请参照图8,图8示出了本发明实施例提供的电子设备10的方框示例图,电子设备10包括处理器11、存储器12和总线13,处理器11和存储器12通过总线13连接。
处理器11可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述实施例的基于测试用例识别的测试方法,或者上述实施例的基于测试用例识别的测试方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如图7中的基于测试用例识别的测试装置100。基于测试用例识别的测试装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中或固化在电子设备10的操作系统(operating system,OS)中的软件功能模块。处理器11在接收到执行指令后,执行程序以实现上述实施例揭示的基于测试用例识别的测试方法。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项的基于测试用例识别的测试方法。
综上所述,本发明实施例提供了一种基于测试用例识别的测试方法、装置、电子设备和介质,方法包括:获取待测文件,待测文件包括至少一个函数;将待测文件和预设参考文件进行分析比对,获得目标函数集合;目标函数集合包含至少一个差异函数;差异函数为待测文件中与预设参考文件的函数具有差异的函数,差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从待测文件的方法中确定的;分别将目标函数集合中各个函数对应的用例作为目标测试用例,并对目标测试用例进行测试。与现有技术相比,本发明实施例至少具有以下优势:(1)由于只针对测试文件有修改的部分涉及的函数进行测试,消除了对测试文件中未做修改的部分进行测试所额外消耗的测试时间,整体上减少了自动化测试的耗时,提高了自动化测试效率;(2)先将待测文件和预设参考文件各自作为一个整体,从文件粒度上比较这两个文件是否存在代码差异,若从文件粒度上确定两个文件不存在差异,则就没有必要再继续对文件中的函数进行比对,避免了不必要的比对处理;(3)对于JAR格式的类文件,充分利用JAR的类文件结构的特点,确定出其中的非代码数据,先清洗非代码数据,再进行比对,既避免了非代码数据造成的干扰,既提高了比对的准确性,又提高了整体比对效率;(4)利用JAR的类文件结构的特点,既确定出差异函数、又确定出与差异函数存在调用关系的关系函数,既对差异函数进行测试,又对差异函数和关系函数进行测试,保证了测试的全面性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种基于测试用例识别的测试方法,其特征在于,所述方法包括:
获取JAR格式的待测文件,所述待测文件包括至少一个函数;
将所述待测文件和预设参考文件进行分析比对,获得目标函数集合;所述目标函数集合包含至少一个差异函数;所述差异函数为所述待测文件中与所述预设参考文件的函数具有差异的函数,所述差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从所述待测文件的方法中确定的;
分别将所述目标函数集合中各个函数对应的用例作为目标测试用例,并对所述目标测试用例进行测试。
2.如权利要求1所述的基于测试用例识别的测试方法,其特征在于,所述将所述待测文件和预设参考文件进行分析比对,获得目标函数集合的步骤,包括:
若所述待测文件和所述预设参考文件存在代码差异,则将所述待测文件中各个函数与所述预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数;
将所述代码差异的函数作为所述差异函数。
3.如权利要求1或2所述的基于测试用例识别的测试方法,其特征在于,所述方法还包括:
根据所述差异函数确定是否存在与所述差异函数具有调用关系的关系函数;
若是,则将所述关系函数添加至所述目标函数集合。
4.如权利要求2所述的基于测试用例识别的测试方法,其特征在于,所述将所述待测文件中各个函数与所述预设参考文件中各个函数的代码进行比对,确认存在代码差异的函数的步骤包括:
按照JAR格式解析出所述待测文件中各个函数的代码;
获取所述预设参考文件中各个函数的代码;
根据所述待测文件中各个函数的代码和所述预设参考文件中各个函数的代码,确定代码差异函数和新增函数,所述代码差异函数为所述待测文件和预设参考文件中函数名相同且函数代码不同的函数,所述新增函数为存在于所述待测文件中且未存在于所述预设参考文件中的函数。
5.如权利要求4所述的基于测试用例识别的测试方法,其特征在于,所述方法表集合包括至少一个方法,所述按照JAR格式解析出所述待测文件中各个函数的代码的步骤包括:
从所述待测文件的方法表集合中解析出作为外部接口的接口方法的方法名,将所述接口方法作为函数;
根据所述接口方法的方法名从所述属性表集合中找到所述接口方法的代码位置,并根据所述接口方法的代码位置确定所述接口方法的代码。
6.如权利要求3所述的基于测试用例识别的测试方法,其特征在于,所述类文件结构还包括用于描述方法之间的引用关系的索引信息,所述根据所述差异函数确定是否存在与所述差异函数具有调用关系的关系函数的步骤包括:
根据所述索引信息,得到所述差异函数所属的引用链,所述引用链包括与所述差异函数存在直接或者间接引用关系的相关方法;
若所述相关方法中存在作为外部接口的相关接口方法,则将所述相关接口方法确定为所述关系函数。
7.如权利要求2所述的基于测试用例识别的测试方法,其特征在于,所述待测文件和所述预设参考文件均为JAR格式,所述方法还包括:
按照JAR格式的内容排布结构,解析出所述待测文件中的非代码数据;
对所述待测文件中的非代码数据进行清洗,得到清洗后的待测文件;
若清洗后的待测文件和清洗后的预设参考文件不同,则判定所述待测文件和所述预设参考文件存在代码差异。
8.如权利要求7所述的基于测试用例识别的测试方法,其特征在于,所述按照JAR格式的内容排布结构,解析出所述待测文件中的非代码数据的步骤包括:
按照JAR格式的内容排布结构,从所述待测文件中确定头文件标识、核心目录标识、核心目录结束标识;
将所述待测文件中距离所述头文件标识第一偏移量的第一位置开始且长度为第一预设长度的数据、距离所述核心目录标识第二偏移量的第二位置开始且长度为第二预设长度的数据及距离所述核心目录结束标识第三偏移量的第三位置开始且长度为第三预设长度的数据确定为所述待测文件中的非代码数据。
9.一种基于测试用例识别的测试装置,其特征在于,所述装置包括:
获取模块,用于获取JAR格式的待测文件,所述待测文件包括至少一个函数;
分析模块,用于将所述待测文件和预设参考文件进行分析比对,获得目标函数集合;所述目标函数集合包含至少一个差异函数;所述差异函数为所述待测文件中与所述预设参考文件的函数具有差异的函数,所述差异函数是根据JAR格式的类文件结构中的方法表集合和属性表集合从所述待测文件的方法中确定的;
测试模块,用于分别将所述目标函数集合中各个函数对应的用例作为目标测试用例,并对所述目标测试用例进行测试。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现权利要求1-8中任一项所述的基于测试用例识别的测试方法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1-8中任一项所述的基于测试用例识别的测试方法。
CN202311483240.7A 2023-11-09 2023-11-09 基于测试用例识别的测试方法、装置、电子设备和介质 Active CN117215965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311483240.7A CN117215965B (zh) 2023-11-09 2023-11-09 基于测试用例识别的测试方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311483240.7A CN117215965B (zh) 2023-11-09 2023-11-09 基于测试用例识别的测试方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN117215965A true CN117215965A (zh) 2023-12-12
CN117215965B CN117215965B (zh) 2024-02-27

Family

ID=89049691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311483240.7A Active CN117215965B (zh) 2023-11-09 2023-11-09 基于测试用例识别的测试方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN117215965B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
US20160162386A1 (en) * 2014-12-04 2016-06-09 Hcl Technologies Ltd. Code change analysis to optimize testing lifecycle
CN107015909A (zh) * 2017-03-31 2017-08-04 青岛海信电器股份有限公司 基于代码变更分析的测试方法及装置
CN109271322A (zh) * 2018-09-25 2019-01-25 杭州群核信息技术有限公司 一种软件测试范围确定方法、软件测试方法和装置
US20200019494A1 (en) * 2017-02-28 2020-01-16 Sparriw Co., Ltd Method and apparatus for performing test by using test case
CN112181479A (zh) * 2020-09-23 2021-01-05 中国建设银行股份有限公司 代码文件版本间差异的确定方法、装置及电子设备
CN114816984A (zh) * 2022-03-09 2022-07-29 中国邮政储蓄银行股份有限公司 Java程序的回归测试方法以及测试装置
CN116521512A (zh) * 2022-09-08 2023-08-01 北京云思智学科技有限公司 代码的精准测试方法、装置、电子设备及计算机可读介质
CN116700778A (zh) * 2023-08-02 2023-09-05 中邮消费金融有限公司 接口差异分析方法、设备、存储介质及装置
CN116881156A (zh) * 2023-07-25 2023-10-13 南京领行科技股份有限公司 一种自动化测试方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
US20160162386A1 (en) * 2014-12-04 2016-06-09 Hcl Technologies Ltd. Code change analysis to optimize testing lifecycle
US20200019494A1 (en) * 2017-02-28 2020-01-16 Sparriw Co., Ltd Method and apparatus for performing test by using test case
CN107015909A (zh) * 2017-03-31 2017-08-04 青岛海信电器股份有限公司 基于代码变更分析的测试方法及装置
CN109271322A (zh) * 2018-09-25 2019-01-25 杭州群核信息技术有限公司 一种软件测试范围确定方法、软件测试方法和装置
CN112181479A (zh) * 2020-09-23 2021-01-05 中国建设银行股份有限公司 代码文件版本间差异的确定方法、装置及电子设备
CN114816984A (zh) * 2022-03-09 2022-07-29 中国邮政储蓄银行股份有限公司 Java程序的回归测试方法以及测试装置
CN116521512A (zh) * 2022-09-08 2023-08-01 北京云思智学科技有限公司 代码的精准测试方法、装置、电子设备及计算机可读介质
CN116881156A (zh) * 2023-07-25 2023-10-13 南京领行科技股份有限公司 一种自动化测试方法、装置、设备及存储介质
CN116700778A (zh) * 2023-08-02 2023-09-05 中邮消费金融有限公司 接口差异分析方法、设备、存储介质及装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ALTIERO, FRANCESCO等: "Inspecting Code Churns to Prioritize Test Cases", 《TESTING SOFTWARE AND SYSTEMS ICTSS 2020》, vol. 12543, 1 January 2020 (2020-01-01), pages 224 - 250 *
周志明: "《深入理解Java虚拟机》", vol. 1, 机械工业出版社, pages: 224 - 250 *
王嘉捷;郭涛;张普含;章磊;: "基于软件代码差异分析的智能模糊测试", 清华大学学报(自然科学版), no. 12 *
王嘉捷等: "基于软件代码差异分析的智能模糊测试", 《清华大学学报(自然科学版)》, no. 12, 15 December 2013 (2013-12-15) *

Also Published As

Publication number Publication date
CN117215965B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
US7945902B1 (en) Detection of non-standard application programming interface usage via analysis of executable code
US8516464B2 (en) Computer system and method for resolving dependencies in a computer system
US8949812B2 (en) System and method for updating hard-coded dependencies
JP4370525B2 (ja) アプリケーション環境チェック装置及び方法とそのプログラム
US20160124795A1 (en) Evaluation method and apparatus
CN113835713B (zh) 源码包下载方法、装置、计算机设备和存储介质
US9405906B1 (en) System and method for enhancing static analysis of software applications
US20180032735A1 (en) System and method for enhancing static analysis of software applications
US9411618B2 (en) Metadata-based class loading using a content repository
CN112631894B (zh) 代码检测方法、装置、存储介质及计算机设备
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN111352631B (zh) 一种接口兼容性检测方法及装置
CN117215965B (zh) 基于测试用例识别的测试方法、装置、电子设备和介质
CN117493169A (zh) 一种Java依赖库版本间API行为不兼容性检测方法、装置、设备及介质
CN112346981A (zh) 联调测试覆盖率检测方法及系统
CN111240987A (zh) 移植程序检测方法、装置、电子设备及计算机可读存储介质
CN111124545A (zh) 应用程序启动方法、装置、电子设备及存储介质
US11947966B2 (en) Identifying computer instructions enclosed by macros and conflicting macros at build time
CN111367796B (zh) 应用程序调试方法及装置
CN111273940B (zh) 将程序文件上传至代码仓库的方法及装置
US20210240596A1 (en) Source code file retrieval
CN111400243A (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
US12013774B2 (en) Verification of core file debugging resources
CN111273944B (zh) 生成程序文件并上传至代码仓库的方法及装置
CN115543374A (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