CN117009230B - 一种基于代码覆盖率评测的精准测试方法及系统 - Google Patents
一种基于代码覆盖率评测的精准测试方法及系统 Download PDFInfo
- Publication number
- CN117009230B CN117009230B CN202310919328.2A CN202310919328A CN117009230B CN 117009230 B CN117009230 B CN 117009230B CN 202310919328 A CN202310919328 A CN 202310919328A CN 117009230 B CN117009230 B CN 117009230B
- Authority
- CN
- China
- Prior art keywords
- code
- program
- module
- change
- file
- 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
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 19
- 238000010998 test method Methods 0.000 title claims abstract description 11
- 230000008859 change Effects 0.000 claims abstract description 203
- 238000012360 testing method Methods 0.000 claims abstract description 169
- 238000004458 analytical method Methods 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims description 39
- 230000001419 dependent effect Effects 0.000 claims description 27
- 238000005206 flow analysis Methods 0.000 claims description 15
- 230000003068 static effect Effects 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 235000019580 granularity Nutrition 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及软件测试技术领域,特别涉及一种基于代码覆盖率评测的精准测试方法及系统。
背景技术
在软件开发过程中,难免会遇到需要更改代码的情况,可能是因为之前的代码不够优化,导致系统出现了性能问题;也可能是因为需求的变化需要对代码进行修改为了确保软件的质量和稳定性,在每次代码变更后都需要进行测试。代码变更指对软件源代码的增加、删除及修改;然而,当代码规模较大时,手动编写测试用例是一项费时费力的工作。因此,自动生成测试用例成为了一个热门话题;目前已有许多研究致力于通过分析代码变更来自动生成测试用例。这些方法可以精确地确定代码变更的影响范围,并生成相应的测试用例列表。
现有技术一,申请号CN202210178431.1公开了一种确定测试用例的方法、装置、存储介质及电子设备,获取预定时段内的当前代码变更信息对应的当前数字化指标,其中,当前数字化指标为代码源文件的数字化数据;采用上述当前数字化指标预测上述预定时段内出现的代码程序缺陷,得到预测结果;根据上述预测结果和预定对应关系,确定回归测试用例集合,其中,预定对应关系为预先确定的待测应用程序与回归测试用例之间的对应关系;虽然实现了降低回归测试工作量,提升回归测试效率的技术效果,进而解决了现有技术中确定测试用例的方法存在的测试工作量大且测试效率低的技术问题;但是自动化程度低,没有对变更代码的影响范围进行分析,导致测试用例不准确。
现有技术二,申请号CN202010861279.8公开了一种测试信息的处理方法、系统、装置和存储介质,包含以下步骤:显示测试界面,测试界面包含第一区域和第二区域,其中,第一区域用于显示被测对象的交互界面;监听针对第一区域的部分或者全部第一操作指令;根据监听到的第一操作指令确定被选中的对象;根据被选中的对象获取测试用例列表,并在第二区域中显示测试用例列表;监听针对第二区域的第二操作指令;根据监听到的第二操作指令执行测试用例列表中测试用例。虽然可以提高开发人员的测试效率,缩短软件研发周期,但是没有代码变更的内容进行针对性分析,导致软件测试效率较低。
现有技术三,申请号CN201510829175.8公开了一种基于网页的自动化测试方法及装置,包含:测试系统将预设的测试类名形成测试类列表,读取测试类列表中的测试类名查找相应的测试类,读取测试类中的测试用例名形成测试用例列表,读取测试用例列表中的测试用例名查找相应的测试用例,根据测试用例查找和操作页面元素并在被测页面上查找预设的页面元素,进行测试结果断言。测试系统判断测试用例列表中是否还有未被读取的测试用例名,是则查找相应的测试用例,否则判断测试类列表中是否还有未被读取的测试类名,若测试类列表中还有未被读取的测试类名则查找相应的测试类,否则测试结束。虽然实现了基于网页的自动化测试,但是测试用例列表较为单一,而且通过查找非常不便,极大的降低了测试的效率。
目前现有技术一、现有技术二及现有技术三存在代码覆盖率测评的自动化程度低,测试用例列表覆盖面窄,不利于提升软件代码测试精度;因而,本发明提供一种基于代码覆盖率评测的精准测试方法及系统,通过算法对代码变更进行分析,确定变更代码影响的范围,生成需要测试人员执行的测试用例列表。
发明内容
为了解决上述技术问题,本发明提供了一种基于代码覆盖率评测的精准测试系统,包含以下步骤:
通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;
结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;
结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表。
可选的,代码变更的第一分析结果的处理过程,包含以下步骤:
获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;
对代码变更的内容的原因、方式及功能的控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;
通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为。
可选的,建立程序逻辑关系的过程,包含以下步骤:
扫描代码变更的内容,找出代码变更对应的程序的控制流特征及控制流结构,对代码变更的内容的原因、方式及功能变量的作用域,进行分析,得到程序的变量作用域表;
反汇编程序,并插入监控程序段,监控程序段监控程序运行过程中的运行行为;
汇编并打包插入监控程序段的新程序,运行新程序,通过监控程序段获取程序的运行行为数据,根据结构划分规则对程序运行行为数据过程中表现的结构特点进行划分,得到相程序块,得到程序逻辑关系。
可选的,确定程序运行的程序行为的过程,包含以下步骤:
从增加的代码、删除的代码或修改的代码,提取出变更代码对应的程序语义信息;
运行变更代码对应的程序,读取寄存器存储的信息实现程序信息的传递,推断程序执行时在程序内部传递的方式;
通过分析增加的代码、删除的代码或修改的代码中定义和使用变量的方式,确定哪些变量影响程序行为,收集程序的语义信息,得到程序行为。
可选的,第二分析结果的获取过程,包含以下步骤:
接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;
获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;
通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系。
可选的,与变更代码的依赖关系的获取过程,包含以下步骤:
对变更代码进行编译,生成程序编译后的二进制文件,生成二进制文件的符号表,符号表中包含:引用函数、引用模块及引用文件;
获取变更代码对应代码库中的相关函数、相关模块及相关文件,将相关函数、相关模块及相关文件定义为自定义变量函数、自定义变量模块及自定义变量文件;
基于自定义变量函数与引用函数,确定与每个引用函数匹配的自定义变量函数所在程序编译后的二进制文件为引用函数的依赖文件,生成函数依赖关系;基于自定义变量模块与引用模块,确定与每个引用模块匹配的自定义变量模块所在程序编译后的二进制文件为引用模块的依赖文件,生成模块依赖关系;基于自定义文件模块与引用模块,确定与每个引用文件匹配的自定义文件模块所在程序编译后的二进制文件为引用文件的依赖文件,生成文件依赖关系。
可选的,生成需要测试人员执行的测试用例列表的过程,包含以下步骤:
生成对新增代码、修改代码及删除代码的规则,其中,对于新增代码编写新的测试用例以覆盖相应的功能;对于修改代码更新现有的测试用例以验证变更后的程序行为;对于删除代码检查现有的测试用例是否依赖于该代码段,如果是,则需要删除相应的测试用例;
搜索预设测试用例的数据序列的关键词,将关键词作为静态节点,将对新增代码、修改代码及删除代码的规则作为动态节点,将静态节点与动态节点进行匹配,匹配成功后得到匹配后的测试用例;
按照匹配后的测试用例以规则作为标识,生成需要测试人员执行的测试用例列表。
本发明提供的一种基于代码覆盖率评测的精准测试系统,包含:
第一分析结果模块,负责通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;
第二分析结果模块,负责结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;
测试用例列表生成模块,负责结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表。
可选的,第一分析结果模块,包含:
预处理子模块,负责获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;
关系建立子模块,负责对代码变更的内容的原因、方式及功能的控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;
行为确认子模块,负责通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为。
可选的,第二分析结果模块,包含:
指令处理子模块,负责接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;
依赖关系子模块,负责获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;
关联关系建立子模块,负责通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系。
本发明首先通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;其次结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;最后结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;上述方案通过增量、控制流和数据流的分析,实现了对代码变更内容的分析,多方面的分析,让第一分析结果更加的全面和准确,为生成测试用例列表提供了准确的参考数据;通过变更代码的内容实现了其影响范围的确定,拓展了测试的范围,实现了新增代码、修改代码及删除代码不同用例列表的生成,提升了代码变更的效率和精度;本实施例的增量、控制流和数据流分析,可以准确地确定变更代码的影响范围;自动生成测试用例,减少了手动编写测试用例的工作量和出错率;可以针对不同粒度的影响范围生成相应的测试用例列表,覆盖面广。本实施例可应用于各种软件开发过程中,特别是在大型软件项目中,能够快速生成测试用例,保证软件质量和稳定性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例1中基于代码覆盖率评测的精准测试方法流程图;
图2为本发明实施例2中代码变更的第一分析结果的处理过程图;
图3为本发明实施例3中建立程序逻辑关系的过程图;
图4为本发明实施例4中确定程序运行的程序行为的过程图;
图5为本发明实施例5中第二分析结果的获取过程图;
图6为本发明实施例6中与变更代码的依赖关系的获取过程图;
图7为本发明实施例7中生成需要测试人员执行的测试用例列表的过程图;
图8为本发明实施例8中基于代码覆盖率评测的精准测试系统框图;
图9为本发明实施例9中第一分析结果模块框图;
图10为本发明实施例10中第二分析结果模块框图;
图11为本发明实施例11中测试用例列表生成模块框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包含多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
实施例1:如图1所示,本发明实施例提供了一种基于代码覆盖率评测的精准测试方法,包含:
S100:通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;
S200:结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;
S300:结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;
上述技术方案的工作原理和有益效果为:本实施例首先通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;其次结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;最后结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;上述方案通过增量、控制流和数据流的分析,实现了对代码变更内容的分析,多方面的分析,让第一分析结果更加的全面和准确,为生成测试用例列表提供了准确的参考数据;通过变更代码的内容实现了其影响范围的确定,拓展了测试的范围,实现了新增代码、修改代码及删除代码不同用例列表的生成,提升了代码变更的效率和精度;本实施例的增量、控制流和数据流分析,可以准确地确定变更代码的影响范围;自动生成测试用例,减少了手动编写测试用例的工作量和出错率;可以针对不同粒度的影响范围生成相应的测试用例列表,覆盖面广。本实施例可应用于各种软件开发过程中,特别是在大型软件项目中,能够快速生成测试用例,保证软件质量和稳定性。
实施例2:如图2所示,在实施例1的基础上,本发明实施例提供的代码变更的第一分析结果的处理过程,包含以下步骤:
S101:获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;
S102:对代码变更的内容的原因、方式及功能等控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;
S103:通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为;
上述技术方案的工作原理和有益效果为:本实施例首先获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;其次对代码变更的内容的原因、方式及功能等控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;最后通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为;上述方案通过扫描并过滤,得到了代码变更的具体内容,实现了代码变更的比对,为控制流和数据流程的分析奠定了数据基础,有助于提升测试的精度;同时对变更代码的控制流进行分析,找出代码变更对程序逻辑的影响,有助于提升软件的可信度,建立了程序逻辑关系,对程序的执行过程做出了判断,尤其是针对变更代码的过程,明确了代码变更对程序逻辑的影响;另外,通过程序逻辑关系对代码变更的内容进行数据流分析,确定程序运行的程序行为,对代码变更的程序运行过程进行了分析,有效判断程序行为的有效性,进一步明确代码变更对数据流的影响。
实施例3:如图3所示,在实施例2的基础上,本发明实施例提供的建立程序逻辑关系的过程,包含以下步骤:
S1021:扫描代码变更的内容,找出代码变更对应的程序的控制流特征及控制流结构,对代码变更的内容的原因、方式及功能等变量的作用域,进行分析,得到程序的变量作用域表;
S1022:反汇编程序,并插入监控程序段,监控程序段监控程序运行过程中的运行行为;
S1023:汇编并打包插入监控程序段的新程序,运行新程序,通过监控程序段获取程序的运行行为数据,根据结构划分规则对程序运行行为数据过程中表现的结构特点进行划分,得到相程序块,得到程序逻辑关系;
上述技术方案的工作原理和有益效果为:本实施例首先扫描代码变更的内容,找出代码变更对应的程序的控制流特征及控制流结构,对代码变更的内容的原因、方式及功能等变量的作用域,进行分析,得到程序的变量作用域表;其次反汇编程序,并插入监控程序段,监控程序段监控程序运行过程中的运行行为;最后汇编并打包插入监控程序段的新程序,运行新程序,通过监控程序段获取程序的运行行为数据,根据结构划分规则对程序运行行为数据过程中表现的结构特点进行划分,得到相程序块,得到程序逻辑关系;上述方案通过对对代码变更的内容的原因、方式及功能等控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系,实现了代码变更的内容的控制流分析,通过监控程序段得到了变更代码对程序的影响,获取了运行行为数据,得到了准确的程序逻辑关系,进一步明确了变更代码对程序逻辑的影响力,有效提升测试的效率。
实施例4:如图4所示,在实施例2的基础上,本发明实施例提供的确定程序运行的程序行为的过程,包含以下步骤:
S1031:从增加的代码、删除的代码或修改的代码,提取出变更代码对应的程序语义信息;
S1032:运行变更代码对应的程序,读取寄存器存储的信息实现程序信息的传递,推断程序执行时在程序内部传递的方式;
S1033:通过分析增加的代码、删除的代码或修改的代码中定义和使用变量的方式,确定哪些变量影响程序行为,收集程序的语义信息,得到程序行为;
上述技术方案的工作原理和有益效果为:本实施例首先从增加的代码、删除的代码或修改的代码,提取出变更代码对应的程序语义信息;其次运行变更代码对应的程序,读取寄存器存储的信息实现程序信息的传递,推断程序执行时在程序内部传递的方式;最后通过分析增加的代码、删除的代码或修改的代码中定义和使用变量的方式,确定哪些变量影响程序行为,收集程序的语义信息,得到程序行为;上述方案通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为,可以最终确定程序运行的程序行为,可以帮助发现和理解程序行为的变化,以及在代码更改后验证其正确性,有助于提升测试的成功率。
实施例5:如图5所示,在实施例1的基础上,本发明实施例提供的第二分析结果的获取过程,包含以下步骤:
S201:接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;
S202:获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;
S203:通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系;
上述技术方案的工作原理和有益效果为:本实施例首先接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;其次获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;最后通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系;上述方案通过变更代码进行定位,对变更代码与相关函数、相关模块及相关文件的关联关系进行判断,确定与变更代码相关的所有函数、与变更代码相关的所有模块及与变更代码相关的所有文件是否都需要被测试,一方面减轻了测试的负担,另一方面节省了测试的时间,提升测试的效率;同时确定变更代码对相关函数、相关模块及相关文件的影响范围。
实施例6:如图6所示,在实施例5的基础上,本发明实施例提供的与变更代码的依赖关系的获取过程,包含以下步骤:
S2021:对变更代码进行编译,生成程序编译后的二进制文件,生成二进制文件的符号表,符号表中包含:引用函数、引用模块及引用文件;
S2022:获取变更代码对应代码库中的相关函数、相关模块及相关文件,将相关函数、相关模块及相关文件定义为自定义变量函数、自定义变量模块及自定义变量文件;
S2023:基于自定义变量函数与引用函数,确定与每个引用函数匹配的自定义变量函数所在程序编译后的二进制文件为引用函数的依赖文件,生成函数依赖关系;基于自定义变量模块与引用模块,确定与每个引用模块匹配的自定义变量模块所在程序编译后的二进制文件为引用模块的依赖文件,生成模块依赖关系;基于自定义文件模块与引用模块,确定与每个引用文件匹配的自定义文件模块所在程序编译后的二进制文件为引用文件的依赖文件,生成文件依赖关系;
上述技术方案的工作原理和有益效果为:本实施例首先对变更代码进行编译,生成程序编译后的二进制文件,生成二进制文件的符号表,符号表中包含:引用函数、引用模块及引用文件;其次获取变更代码对应代码库中的相关函数、相关模块及相关文件,将相关函数、相关模块及相关文件定义为自定义变量函数、自定义变量模块及自定义变量文件;最后基于自定义变量函数与引用函数,确定与每个引用函数匹配的自定义变量函数所在程序编译后的二进制文件为引用函数的依赖文件,生成函数依赖关系;基于自定义变量模块与引用模块,确定与每个引用模块匹配的自定义变量模块所在程序编译后的二进制文件为引用模块的依赖文件,生成模块依赖关系;基于自定义文件模块与引用模块,确定与每个引用文件匹配的自定义文件模块所在程序编译后的二进制文件为引用文件的依赖文件,生成文件依赖关系;上述方案通过定义二进制文件,实现了相关函数、相关模块及相关文件与代码变更的内容的关联关系的确定,通过依赖关系的确定,实现了变更代码的影响范围的确定,也就确定了测试的范围,进一步提升了系统的测试效率,节省了资源。
实施例7:如图7所示,在实施例1的基础上,本发明实施例提供的生成需要测试人员执行的测试用例列表的过程,包含以下步骤:
S301:生成对新增代码、修改代码及删除代码的规则,其中,对于新增代码编写新的测试用例以覆盖相应的功能;对于修改代码更新现有的测试用例以验证变更后的程序行为;对于删除代码检查现有的测试用例是否依赖于该代码段,如果是,则需要删除相应的测试用例;
S302:搜索预设测试用例的数据序列的关键词,将关键词作为静态节点,将对新增代码、修改代码及删除代码的规则作为动态节点,将静态节点与动态节点进行匹配,匹配成功后得到匹配后的测试用例;
S303:按照匹配后的测试用例以规则作为标识,生成需要测试人员执行的测试用例列表;
上述技术方案的工作原理和有益效果为:本实施例首先生成对新增代码、修改代码及删除代码的规则,其中,对于新增代码编写新的测试用例以覆盖相应的功能;对于修改代码更新现有的测试用例以验证变更后的程序行为;对于删除代码检查现有的测试用例是否依赖于该代码段,如果是,则需要删除相应的测试用例;其次搜索预设测试用例的数据序列的关键词,将关键词作为静态节点,将对新增代码、修改代码及删除代码的规则作为动态节点,将静态节点与动态节点进行匹配,匹配成功后得到匹配后的测试用例;最后按照匹配后的测试用例以规则作为标识,生成需要测试人员执行的测试用例列表;上述方案按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表,实现了不同规则下的测试用例列表,同时以规则作为标识,将测试用例列表区分开来,实现了不同功能测试用例列表的存储,能够有效提升测试的效率。
实施例8:如图8所示,在实施例1~实施例7的基础上,本发明实施例提供的基于代码覆盖率评测的精准测试系统,包含:
第一分析结果模块,负责通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;
第二分析结果模块,负责结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;
测试用例列表生成模块,负责结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;
上述技术方案的工作原理和有益效果为:本实施例的第一分析结果模块,负责通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;第二分析结果模块负责结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;测试用例列表生成模块负责结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;上述方案通过增量、控制流和数据流的分析,实现了对代码变更内容的分析,多方面的分析,让第一分析结果更加的全面和准确,为生成测试用例列表提供了准确的参考数据;通过变更代码的内容实现了其影响范围的确定,拓展了测试的范围,实现了新增代码、修改代码及删除代码不同用例列表的生成,提升了代码变更的效率和精度;本实施例的增量、控制流和数据流分析,可以准确地确定变更代码的影响范围;自动生成测试用例,减少了手动编写测试用例的工作量和出错率;可以针对不同粒度的影响范围生成相应的测试用例列表,覆盖面广。本实施例可应用于各种软件开发过程中,特别是在大型软件项目中,能够快速生成测试用例,保证软件质量和稳定性。
实施例9:如图9所示,在实施例8的基础上,本发明实施例提供的第一分析结果模块,包含:
预处理子模块,负责获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;
关系建立子模块,负责对代码变更的内容的原因、方式及功能等控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;
行为确认子模块,负责通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为;
上述技术方案的工作原理和有益效果为:本实施例的预处理子模块负责获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;关系建立子模块负责对代码变更的内容的原因、方式及功能等控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;行为确认子模块负责通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为;上述方案通过扫描并过滤,得到了代码变更的具体内容,实现了代码变更的比对,为控制流和数据流程的分析奠定了数据基础,有助于提升测试的精度;同时对变更代码的控制流进行分析,找出代码变更对程序逻辑的影响,有助于提升软件的可信度,建立了程序逻辑关系,对程序的执行过程做出了判断,尤其是针对变更代码的过程,明确了代码变更对程序逻辑的影响;另外,通过程序逻辑关系对代码变更的内容进行数据流分析,确定程序运行的程序行为,对代码变更的程序运行过程进行了分析,有效判断程序行为的有效性,进一步明确代码变更对数据流的影响。
实施例10:如图10所示,在实施例8的基础上,本发明实施例提供的第二分析结果模块,包含:
指令处理子模块,负责接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;
依赖关系子模块,负责获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;
关联关系建立子模块,负责通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系;
上述技术方案的工作原理和有益效果为:本实施例的指令处理子模块负责接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;依赖关系子模块负责获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;关联关系建立子模块负责通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系;上述方案通过变更代码进行定位,对变更代码与相关函数、相关模块及相关文件的关联关系进行判断,确定与变更代码相关的所有函数、与变更代码相关的所有模块及与变更代码相关的所有文件是否都需要被测试,一方面减轻了测试的负担,另一方面节省了测试的时间,提升测试的效率;同时确定变更代码对相关函数、相关模块及相关文件的影响范围。
实施例11:如图11所示,在实施例8的基础上,本发明实施例提供的测试用例列表生成模块,包含:
规则定义子模块,负责生成对新增代码、修改代码及删除代码的规则,其中,对于新增代码编写新的测试用例以覆盖相应的功能;对于修改代码更新现有的测试用例以验证变更后的程序行为;对于删除代码检查现有的测试用例是否依赖于该代码段,如果是,则需要删除相应的测试用例;
节点匹配子模块,负责搜索预设测试用例的数据序列的关键词,将关键词作为静态节点,将对新增代码、修改代码及删除代码的规则作为动态节点,将静态节点与动态节点进行匹配,匹配成功后得到匹配后的测试用例;
标识定义子模块,负责按照匹配后的测试用例以规则作为标识,生成需要测试人员执行的测试用例列表;
上述技术方案的工作原理和有益效果为:本实施例的规则定义子模块负责生成对新增代码、修改代码及删除代码的规则,其中,对于新增代码编写新的测试用例以覆盖相应的功能;对于修改代码更新现有的测试用例以验证变更后的程序行为;对于删除代码检查现有的测试用例是否依赖于该代码段,如果是,则需要删除相应的测试用例;节点匹配子模块负责搜索预设测试用例的数据序列的关键词,将关键词作为静态节点,将对新增代码、修改代码及删除代码的规则作为动态节点,将静态节点与动态节点进行匹配,匹配成功后得到匹配后的测试用例;标识定义子模块负责按照匹配后的测试用例以规则作为标识,生成需要测试人员执行的测试用例列表;上述方案按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表,实现了不同规则下的测试用例列表,同时以规则作为标识,将测试用例列表区分开来,实现了不同功能测试用例列表的存储,能够有效提升测试的效率。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种基于代码覆盖率评测的精准测试方法,其特征在于,包含以下步骤:
通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;
结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;
结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;
第二分析结果的获取过程,包含以下步骤:
接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;
获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;
通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系;
与变更代码的依赖关系的获取过程,包含以下步骤:
对变更代码进行编译,生成程序编译后的二进制文件,生成二进制文件的符号表,符号表中包含:引用函数、引用模块及引用文件;
获取变更代码对应代码库中的相关函数、相关模块及相关文件,将相关函数、相关模块及相关文件定义为自定义变量函数、自定义变量模块及自定义变量文件;
基于自定义变量函数与引用函数,确定与每个引用函数匹配的自定义变量函数所在程序编译后的二进制文件为引用函数的依赖文件,生成函数依赖关系;基于自定义变量模块与引用模块,确定与每个引用模块匹配的自定义变量模块所在程序编译后的二进制文件为引用模块的依赖文件,生成模块依赖关系;基于自定义文件模块与引用模块,确定与每个引用文件匹配的自定义文件模块所在程序编译后的二进制文件为引用文件的依赖文件,生成文件依赖关系。
2.如权利要求1所述的基于代码覆盖率评测的精准测试方法,其特征在于,代码变更的第一分析结果的处理过程,包含以下步骤:
获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;
对代码变更的内容的原因、方式及功能的控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;
通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为。
3.如权利要求2所述的基于代码覆盖率评测的精准测试方法,其特征在于,建立程序逻辑关系的过程,包含以下步骤:
扫描代码变更的内容,找出代码变更对应的程序的控制流特征及控制流结构,对代码变更的内容的原因、方式及功能变量的作用域,进行分析,得到程序的变量作用域表;
反汇编程序,并插入监控程序段,监控程序段监控程序运行过程中的运行行为;
汇编并打包插入监控程序段的新程序,运行新程序,通过监控程序段获取程序的运行行为数据,根据结构划分规则对程序运行行为数据过程中表现的结构特点进行划分,得到相程序块,得到程序逻辑关系。
4.如权利要求2所述的基于代码覆盖率评测的精准测试方法,其特征在于,确定程序运行的程序行为的过程,包含以下步骤:
从增加的代码、删除的代码或修改的代码,提取出变更代码对应的程序语义信息;
运行变更代码对应的程序,读取寄存器存储的信息实现程序信息的传递,推断程序执行时在程序内部传递的方式;
通过分析增加的代码、删除的代码或修改的代码中定义和使用变量的方式,确定哪些变量影响程序行为,收集程序的语义信息,得到程序行为。
5.如权利要求1所述的基于代码覆盖率评测的精准测试方法,其特征在于,生成需要测试人员执行的测试用例列表的过程,包含以下步骤:
生成对新增代码、修改代码及删除代码的规则,其中,对于新增代码编写新的测试用例以覆盖相应的功能;对于修改代码更新现有的测试用例以验证变更后的程序行为;对于删除代码检查现有的测试用例是否依赖于代码段,如果是,则需要删除相应的测试用例;
搜索预设测试用例的数据序列的关键词,将关键词作为静态节点,将对新增代码、修改代码及删除代码的规则作为动态节点,将静态节点与动态节点进行匹配,匹配成功后得到匹配后的测试用例;
按照匹配后的测试用例以规则作为标识,生成需要测试人员执行的测试用例列表。
6.一种基于代码覆盖率评测的精准测试系统,其特征在于,包含:
第一分析结果模块,负责通过增量、控制流和数据流程对代码变更进行分析,得到包含代码变更确定程序运行的程序行为的第一分析结果;
第二分析结果模块,负责结合第一分析结果,确定变更代码对相关函数、相关模块及相关文件的影响范围,得到第二分析结果;
测试用例列表生成模块,负责结合第二分析结果,按照对新增代码、修改代码及删除代码的不同规则,生成需要测试人员执行的测试用例列表;
第二分析结果模块,包含:
指令处理子模块,负责接收第一分析结果完成的指令,发起对变更代码的内容的定位请求指令,定位请求指令包含变更代码的相关函数、相关模块及相关文件的属性信息;
依赖关系子模块,负责获取变更代码所属相关函数、相关模块及相关文件的位置链表,获取代码库中相关函数、相关模块及相关文件,与变更代码的依赖关系,存在依赖关系,采用与变更代码的对应关系进行存储;确定对应关系后根据位置链表,确定位置对象,位置对象具有与属性信息对应的描述信息;
关联关系建立子模块,负责通过描述信息获取变更代码在相关函数、相关模块及相关文件的位置信息,建立变更代码与相关函数、相关模块或相关文件的关联关系;
与变更代码的依赖关系的获取过程,包含:
对变更代码进行编译,生成程序编译后的二进制文件,生成二进制文件的符号表,符号表中包含:引用函数、引用模块及引用文件;
获取变更代码对应代码库中的相关函数、相关模块及相关文件,将相关函数、相关模块及相关文件定义为自定义变量函数、自定义变量模块及自定义变量文件;
基于自定义变量函数与引用函数,确定与每个引用函数匹配的自定义变量函数所在程序编译后的二进制文件为引用函数的依赖文件,生成函数依赖关系;基于自定义变量模块与引用模块,确定与每个引用模块匹配的自定义变量模块所在程序编译后的二进制文件为引用模块的依赖文件,生成模块依赖关系;基于自定义文件模块与引用模块,确定与每个引用文件匹配的自定义文件模块所在程序编译后的二进制文件为引用文件的依赖文件,生成文件依赖关系。
7.如权利要求6所述的基于代码覆盖率评测的精准测试系统,其特征在于,第一分析结果模块,包含:
预处理子模块,负责获取代码变更的版本代码及之前版本代码,进行扫描并过滤,得到代码变更的内容,内容包含:增加的代码、删除的代码及修改的代码;
关系建立子模块,负责对代码变更的内容的原因、方式及功能的控制流进行分析,确定出代码变更的内容建立程序和逻辑间联系,建立程序逻辑关系;
行为确认子模块,负责通过程序逻辑关系对代码变更的内容进行数据流分析,收集从代码变更的内容中收集程序的语义信息,确定程序运行的程序行为。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919328.2A CN117009230B (zh) | 2023-07-25 | 2023-07-25 | 一种基于代码覆盖率评测的精准测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919328.2A CN117009230B (zh) | 2023-07-25 | 2023-07-25 | 一种基于代码覆盖率评测的精准测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117009230A CN117009230A (zh) | 2023-11-07 |
CN117009230B true CN117009230B (zh) | 2024-04-16 |
Family
ID=88564832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310919328.2A Active CN117009230B (zh) | 2023-07-25 | 2023-07-25 | 一种基于代码覆盖率评测的精准测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009230B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331849B (zh) * | 2023-12-01 | 2024-02-27 | 杭银消费金融股份有限公司 | 一种基于代码精准分析的测试方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915271A (zh) * | 2012-10-31 | 2013-02-06 | 北京邮电大学 | 基于控制流图的单元回归测试用例集合优化方法 |
CN103577311A (zh) * | 2012-07-26 | 2014-02-12 | 深圳市世纪光速信息技术有限公司 | 一种测试用例筛选方法及装置 |
CN104503917A (zh) * | 2015-01-04 | 2015-04-08 | 牟永敏 | 基于数据流函数调用路径的变更影响域分析方法及系统 |
CN104834603A (zh) * | 2015-05-26 | 2015-08-12 | 牟永敏 | 一种面向回归测试的控制流变更影响域分析方法和系统 |
CN110109816A (zh) * | 2018-02-01 | 2019-08-09 | 华为技术有限公司 | 测试用例选择方法和装置 |
CN110262803A (zh) * | 2019-06-30 | 2019-09-20 | 潍柴动力股份有限公司 | 一种依赖关系的生成方法及装置 |
CN110750459A (zh) * | 2019-10-23 | 2020-02-04 | 天津汇缘诚信科技有限公司 | 基于白盒分析的测试用例自动生成和测试进程管理方法 |
CN111666206A (zh) * | 2020-04-30 | 2020-09-15 | 北京百度网讯科技有限公司 | 变更代码的影响范围的获取方法、装置、设备及存储介质 |
CN113806231A (zh) * | 2021-09-29 | 2021-12-17 | 锐捷网络股份有限公司 | 一种代码覆盖率分析方法、装置、设备和介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110048B (zh) * | 2009-12-28 | 2014-07-09 | 国际商业机器公司 | 用于基于框架的应用程序的回归测试选择方法和装置 |
CN104252408B (zh) * | 2013-06-26 | 2017-04-12 | 国际商业机器公司 | 提供测试用例的方法和装置 |
KR20180119857A (ko) * | 2017-04-26 | 2018-11-05 | 현대자동차주식회사 | 소프트웨어 변경 영향성 분석 방법 및 장치 |
-
2023
- 2023-07-25 CN CN202310919328.2A patent/CN117009230B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577311A (zh) * | 2012-07-26 | 2014-02-12 | 深圳市世纪光速信息技术有限公司 | 一种测试用例筛选方法及装置 |
CN102915271A (zh) * | 2012-10-31 | 2013-02-06 | 北京邮电大学 | 基于控制流图的单元回归测试用例集合优化方法 |
CN104503917A (zh) * | 2015-01-04 | 2015-04-08 | 牟永敏 | 基于数据流函数调用路径的变更影响域分析方法及系统 |
CN104834603A (zh) * | 2015-05-26 | 2015-08-12 | 牟永敏 | 一种面向回归测试的控制流变更影响域分析方法和系统 |
CN110109816A (zh) * | 2018-02-01 | 2019-08-09 | 华为技术有限公司 | 测试用例选择方法和装置 |
CN110262803A (zh) * | 2019-06-30 | 2019-09-20 | 潍柴动力股份有限公司 | 一种依赖关系的生成方法及装置 |
CN110750459A (zh) * | 2019-10-23 | 2020-02-04 | 天津汇缘诚信科技有限公司 | 基于白盒分析的测试用例自动生成和测试进程管理方法 |
CN111666206A (zh) * | 2020-04-30 | 2020-09-15 | 北京百度网讯科技有限公司 | 变更代码的影响范围的获取方法、装置、设备及存储介质 |
CN113806231A (zh) * | 2021-09-29 | 2021-12-17 | 锐捷网络股份有限公司 | 一种代码覆盖率分析方法、装置、设备和介质 |
Non-Patent Citations (1)
Title |
---|
回归测试用例选择技术研究综述;陈翔;顾卫江;徐慧;顾庆;陈道蓄;;计算机科学(10);第4-9页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117009230A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413506B (zh) | 测试用例推荐方法、装置、设备及存储介质 | |
US9619373B2 (en) | Method and apparatus to semantically connect independent build and test processes | |
US9575752B2 (en) | Inferring a defect's cause in updated source code | |
US8307010B2 (en) | Data feature tracking through hierarchical node sets | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
US8479162B2 (en) | Method and apparatus for locating memory leak in a program | |
CN117009230B (zh) | 一种基于代码覆盖率评测的精准测试方法及系统 | |
CN112394942A (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
CN111026433A (zh) | 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质 | |
CN111858301B (zh) | 基于变更历史的组合服务测试用例集约简方法及装置 | |
CN110554954A (zh) | 一种结合静态依赖和动态执行规则的测试用例选择方法 | |
CN114780138B (zh) | 流场模拟软件代码版本管理方法、装置和存储介质 | |
CN110990285B (zh) | 一种ui自动化测试方法及装置 | |
CN112395199B (zh) | 基于云计算的分布式软件实例测试方法及软件开发平台 | |
CN116820996A (zh) | 基于人工智能的集成测试用例自动生成方法和装置 | |
Tukaram | Design and development of software tool for code clone search, detection, and analysis | |
Liu et al. | Drift: Fine-Grained Prediction of the Co-Evolution of Production and Test Code via Machine Learning | |
CN116204399B (zh) | 一种Linux系统性能自动化测试方法及系统 | |
CN115328816B (zh) | 测试用例管理方法、装置、计算设备及存储介质 | |
CN115858006A (zh) | 一种Software2.0中机器学习程序库版本配置的测试与评估方法 | |
CN114817020A (zh) | 测试用例数据的生成方法及其装置 | |
CN112988558A (zh) | 测试执行方法、装置、电子设备及存储介质 | |
CN114357918A (zh) | 一种芯片验证方法及装置、电子设备、存储介质 | |
CN114218091A (zh) | 一种回归测试的方法、装置、设备及可读存储介质 | |
CN113868143A (zh) | 一种基于Linux平台多浏览器自动化测试方法及系统 |
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 |