CN116431502A - 代码测试方法、装置、设备和存储介质 - Google Patents
代码测试方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116431502A CN116431502A CN202310405168.XA CN202310405168A CN116431502A CN 116431502 A CN116431502 A CN 116431502A CN 202310405168 A CN202310405168 A CN 202310405168A CN 116431502 A CN116431502 A CN 116431502A
- Authority
- CN
- China
- Prior art keywords
- code
- tested
- test
- requirement
- meaning
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 claims abstract description 14
- 238000011161 development Methods 0.000 claims description 44
- 230000018109 developmental process Effects 0.000 claims description 44
- 230000011218 segmentation Effects 0.000 claims description 18
- 238000013524 data verification Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 230000007547 defect Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 3
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
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/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
-
- 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/3692—Test management for test results analysis
-
- 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
技术领域
本申请涉及测试技术领域,尤其涉及一种代码测试方法、装置、设备和存储介质。
背景技术
在如金融科技等领域中,很多场景都是在处理业务数据,其业务数据作为核心。开发与测试团队大量的工作都在构建数据模型、实现数据业务逻辑(即业务需求)。
进而,在通过构建相关代码字段,以实现数据业务逻辑时,还需要对该代码字段和数据业务逻辑进行匹配,以判定该代码字段是否能实现该数据业务逻辑。
目前,在测试代码字段与数据业务逻辑一致性时,需要预先通过数据库语句识别该代码字段的实现逻辑,而后再根据业务需求进行数据实现逻辑校验,其代码字段的测试过程较为繁杂,导致测试周期长、测试效率低。
发明内容
有鉴于此,为了解决现有技术存在的不足,本申请提供了一种可应用于如金融科技等领域或其他领域的代码测试方法、装置、设备和存储介质。
第一方面,本申请提供一种代码测试方法,包括:
获取指定数据库的待测试代码,对所述待测试代码进行字段划分,得到多个代码字段,其中,一个所述代码字段对应一个业务需求;
选取预设数量的代码字段作为目标代码字段,识别所述目标代码字段对应的第一业务需求含义;
根据所述第一业务需求含义,构建第一测试代码,其中,所述第一测试代码用于实现所述第一业务需求含义;
将所述目标代码字段与所述第一测试代码进行匹配,将匹配结果作为所述待测试代码的测试结果。
在可选的实施方式中,若所述目标代码字段与所述第一测试代码匹配一致,确定所述待测试代码测试成功,存储所述目标代码字段对应的第一业务需求含义以及第一测试代码,得到数据验证表;
若所述目标代码字段与所述第一测试代码匹配不一致,则确定所述待测试代码存在开发缺陷。
在可选的实施方式中,所述方法还包括:
获取新构建的新需求代码,识别所述新需求代码对应的第二业务需求含义;
将所述第二业务需求含义与所述数据验证表中的第一业务需求含义进行匹配,在匹配一致时,将所述新需求代码作为回归测试代码,进而聚类得到回归测试集;
对所述回归测试集中的新需求代码进行回归测试。
在可选的实施方式中,所述对所述回归测试集中的新需求代码进行回归测试,包括:
在所述数据验证表中,获取与所述第二业务需求含义一致的第一业务需求含义对应的第二测试代码;
运行所述新需求代码,得到第一运行结果,以及运行所述第二测试代码,得到第二运行结果;
比对所述第一运行结果和所述第二运行结果,在比对一致时,确定所述新需求代码测试成功。
在可选的实施方式中,若所述第二业务需求含义与所述第一业务需求含义匹配不一致,或所述第一运行结果和所述第二运行结果比对不一致,确定所述新需求代码存在开发缺陷。
在可选的实施方式中,所述识别所述目标代码字段对应的第一业务需求含义,包括:
获取与所述目标代码字段对应的需求开发文档;
对所述需求开发文档进行分词处理,得到多个分词;
根据预设语义词典,对各所述分词进行语义识别,得到各所述分词的语义;
将各所述分词的语义进行聚合,得到所述需求开发文档的业务需求,进而确定所述目标代码字段的第一业务需求含义。
在可选的实施方式中,所述对所述待测试代码进行字段划分,得到多个代码字段,包括:
识别所述待测试代码中的分隔符,查找所述分隔符中的预设分隔符;
将所述待测试代码按照预设分隔符所分隔出的字段划分为一个代码字段,对应得到所述待测试代码中的多个代码字段。
第二方面,本申请提供一种代码测试装置,包括:
获取模块,用于获取指定数据库的待测试代码,对所述待测试代码进行字段划分,得到多个代码字段,其中,一个所述代码字段对应一个业务需求;
识别模块,用于选取预设数量的代码字段作为目标代码字段,识别所述目标代码字段对应的第一业务需求含义;
构建模块,用于根据所述第一业务需求含义,构建第一测试代码,其中,所述第一测试代码用于实现所述第一业务需求含义;
匹配模块,用于将所述目标代码字段与所述第一测试代码进行匹配,将匹配结果作为所述待测试代码的测试结果。
第三方面,本申请提供一种计算机设备,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施前述的代码测试方法。
第四方面,本申请提供一种计算机存储介质,其存储有计算机程序,所述计算机程序被执行时,实施根据前述的代码测试方法。
本申请实施例具有如下有益效果:
本申请实施例所提供的代码测试方法,通过获取指定数据库的待测试代码,对待测试代码进行字段划分,得到多个代码字段,其中,一个代码字段对应一个业务需求;选取预设数量的代码字段作为目标代码字段,识别目标代码字段对应的第一业务需求含义;根据第一业务需求含义,构建第一测试代码,其中,第一测试代码用于实现第一业务需求含义;将目标代码字段与第一测试代码进行匹配,将匹配结果作为待测试代码的测试结果。本申请实施例通过对待测试代码中预设数量的目标代码字段与相应的测试代码进行匹配,以实现待测试代码的业务需求测试,从而无需对所有的待测试代码进行测试,减少了测试数据量,且简化了测试流程,缩短了测试周期,提高了测试效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例中代码测试方法的第一个实施方式示意图;
图2示出了本申请实施例中代码测试方法的第二个实施方式示意图;
图3示出了本申请实施例中代码测试方法的第三个实施方式示意图;
图4示出了本申请实施例中代码测试方法的第四个实施方式示意图;
图5示出了本申请实施例中代码测试方法的第五个实施方式示意图;
图6示出了本申请实施例中代码测试装置的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
大数据的项目逻辑非常复杂,例如,涉及到海量数据的存贮和交互。从存贮上来说,数据存贮到相应的系统框架中,如Hive、Spark等时,清理过的数据会通过数据的算法设置标签,设置标签后的数据会存贮在所构建的数据库中,实现数据的关联存储;从交互来说,涉及到数据清理和设置标签的原始数据的处理,即用复杂的数据库语句嵌套查询,修改,删除,新建中间表以满足业务需求底层逻辑的要求,同时也涉及到处理后的数据后的数据和前端系统的交互。因此,涉及大数据的开发对测试要求很高,任何一个细微环节数据校验的错误就会通过复杂的流程层层放大错误,因此如何测试复杂逻辑的大数据是测试大数据面临的重大挑战问题。
在如金融科技等领域中,很多场景都是在处理数据,其数据作为核心。开发与测试团队大量的工作都在构建数据模型、实现数据业务逻辑。进而,验证业务逻辑与所开发代码匹配一致的正确性十分重要。而自动化测试对开发效率与迭代周期的提升,在业界已经达成共识与认可。
目前大数据的测试人员在面对用户需求后,通过分析需求并采用功能测试的方法来验证其所开发的代码字段的正确性时,具体是通过咨询开发人员和分析底层数据逻辑的代码后,使用数据库语句验证开发人员的底层逻辑;然后根据业务的需求再从清理处理过存贮到数据库的数据进行逻辑的校验。也即是,预先通过数据库语句识别该代码字段的实现逻辑,而后再根据业务需求进行实现逻辑校验。
但该代码的测试过程中,每次测试都得重新读开发人员复杂的数据库语句,检查是否和业务需求一致。然后通过小批量的测试数据验证开发人员的底层逻辑开发是否正确。当开发需求只有小部分变化时,无法分清已验证过的实现逻辑和新逻辑,无法重点测试新逻辑。并且,在测试底层逻辑时,回归测试占用时间长,连接大数据时,在跳板机上逐条运行测试语句花费大量时间。
进一步地,本申请实施例提供了一种代码测试方法,通过对待测试代码中的目标代码字段与相应的测试代码进行匹配,以检测该待测试代码是否正确。
请参照图1,下面对该代码测试方法进行详细说明。
S10,获取指定数据库的待测试代码,对待测试代码进行字段划分,得到多个代码字段,其中,一个代码字段对应一个业务需求。
获取指定数据库中的待测试代码,而后通过待测试代码中的预设分隔符,以将待测试代码进行字段划分,对应得到该待测试代码的多个代码字段。一个代码字段即对应实现一个业务需求,进而,可对各个代码字段相应进行业务需求的测试,以判断各个代码字段与业务需求实现逻辑是否匹配。其中,该指定数据库可以是包含原始代码、数据表的数据库,在此不做限定。待测试代码即为需要进行业务需求测试的代码。
作为一种可选的实施方式,如图2所示,上述的S10中“对待测试代码进行字段划分,得到多个代码字段”具体包括如下步骤:
S11,识别待测试代码中的分隔符,查找分隔符中的预设分隔符。
S12,将待测试代码按照预设分隔符所分隔出的字段划分为一个代码字段,对应得到待测试代码中的多个代码字段。
识别待测试代码中所存在的分隔符,其中,该分隔符包括但不限于“//”、“/*”、“*/”;具体可通过预先设置的字段查找工具或运行相关字段查找代码,识别待测试代码中所包含的多个分隔符。
进而,在待测试代码中所包含的多个分隔符中,确定预设分隔符,以将该预设分隔符作为字段划分的分隔符,从而将待测试代码按照该预设分隔符所分隔的字段,进行字段划分,得到多个字段。也即是,每两个预设分隔符之间的所有字段作为一个代码字段。
其中,预设分隔符可以根据实际需求进行相应设置,在此不做限定,例如,可以设置该预设分隔符为“/*”、“*/”;即在每对分隔符“/*”、“*/”之间的所有字段为一个代码字段。
S20,选取预设数量的代码字段作为目标代码字段,识别目标代码字段对应的第一业务需求含义。
从所得到的多个代码字段中,选取预设数量的代码字段,并将其作为目标代码字段,进而通过该预设数量的代码字段进行测试,以确定待测试代码的测试结果。
其中,该预设数量可以根据实际需求进行设置,在此不做限定,例如,预设数量可以是100,或200等。
进一步地,通过获取与目标代码字段对应的需求开发文档,该需求开发文档即反映了该目标代码字段所实现的业务需求,进而可根据该业务需求确定该目标代码字段的业务需求含义,并将其作为第一业务需求含义。
可以理解,本实施例通过预设数量的代码字段进行业务需求含义的测试,进而将其测试结果作为所有待测试代码的测试结果,从而无需对所有的待测试代码进行业务需求含义的测试,减少了测试的数据量,节约了测试的时间成本。
作为一种可选的实施方式,如图3所示,上述的S20中“识别目标代码字段对应的第一业务需求含义”具体包括如下步骤:
S21,获取与目标代码字段对应的需求开发文档。
S22,对需求开发文档进行分词处理,得到多个分词。
S23,根据预设语义词典,对各分词进行语义识别,得到各分词的语义。
S24,将各分词的语义进行聚合,得到需求开发文档的业务需求,进而确定目标代码字段的第一业务需求含义。
在代码开发阶段,预先撰写有需求开发文档,并根据需求开发文档里所需实现的业务需求来相应进行代码开发,以使得所编写的代码可以实现对应的业务需求,将所开发的代码与对应实现的业务需求的需求开发文档进行关联,以形成相应的测试日志。其中,该需求开发文档的具体形式可以是用户故事,或是用户需求文档,具体在此不做限定。
在本实施例中,获取与目标代码字段相关的需求开发文档。而后,对该需求开发文档进行分词处理,其分词处理过程可以采用文本分词的相关算法,其中,该文本分词算法包括NLP系列算法、n-1阶马尔科夫模型算法等。具体可采用其中一种或多种文本分词算法对需求开发文档进行分词处理,以相应得到多个分词。
进一步地,通过预设的语义词典,确定各个分词对应的语义。其中,本实施例预先设置有适用于一个或多个领域的语义词典,该语义词典包括多个分词及其对应的语义。
在语义词典中查找与需求开发文档所划分的分词匹配一致的分词,以确定该分词的具体语义,进而确定该需求开发文档中各个分词的语义;将需求开发文档中各个分词的语义进行聚合,以生成该需求开发文档中所有分词对应的语义,即该需求开发文档的语义。可以理解的是,该需求开发文档的语义即是需求开发文档对应的业务需求。
进而,将该需求开发文档对应的业务需求作为对应的目标代码字段的业务需求含义。
S30,根据第一业务需求含义,构建第一测试代码,其中,第一测试代码用于实现第一业务需求含义。
S40,将目标代码字段与第一测试代码进行匹配,将匹配结果作为待测试代码的测试结果。
构建用于实现第一业务需求含义的第一测试代码,即运行该第一测试代码即可实现该第一业务需求含义对应的需求功能。
对该目标代码字段与第一测试代码进行代码字段的匹配,而后将其匹配结果作为待测试代码的测试结果。
在本实施例中,可通过构建Hive语句来检测待测试代码的业务需求含义是否正确,即该测试代码即为通过Hive语句进行编写。
进一步地,如图4所示,本申请实施例还具体包括如下步骤:
S51,若目标代码字段与第一测试代码匹配一致,确定待测试代码测试成功,存储目标代码字段对应的第一业务需求含义以及第一测试代码,得到数据验证表。
在本实施例中,若该目标代码字段与第一测试代码的代码字段匹配一致,则确定该待测试代码的业务需求含义的测试成功,而后,将目标代码字段、第一业务需求含义和第一测试代码进行关联存储,进而对应得到数据验证表。也即是,该数据验证表中包含有目标代码字段、第一业务需求含义、第一测试代码及其三者之间的关联关系。
在本实施例中,后续通过上述步骤以进一步扩充和更新该数据验证表中所包含的代码字段、业务需求含义、测试代码及其三者之间的关联关系。进而,使得该数据验证表即是包含有多种的代码字段、业务需求含义、测试代码及其三者之间的关联关系。
更进一步地,可将该数据验证表作为代码字段的业务需求含义的匹配表,即后续在更新代码时,可将更新后的代码字段的业务需求含义与数据验证表中的业务需求含义进行匹配,以确定更新后的代码字段是否存在异常。
S52,若目标代码字段与第一测试代码匹配不一致,则确定待测试代码存在开发缺陷。
若该目标代码字段与第一测试代码的代码字段匹配不一致,则确定该待测试代码的业务需求含义的测试失败,进而确定该待测试代码存在开发缺陷,需要对其进行修改。
作为一种可选的实施方式,如图5所示,本申请实施例还具体包括如下步骤:
S61,获取新构建的新需求代码,识别新需求代码对应的第二业务需求含义。
S62,将第二业务需求含义与数据验证表中的第一业务需求含义进行匹配,在匹配一致时,将新需求代码作为回归测试代码,进而聚类得到回归测试集。
S63,对回归测试集中的新需求代码进行回归测试。
在本实施例中,若待测试代码对应的业务需求发生变更,从而生成新的需求开发文档,并对应新构建有新需求代码,该新需求代码用于实现更新的业务需求。也即是,该指定数据库中存储有新构建的新需求代码。
根据该新的需求开发文档,识别新需求代码对应的业务需求含义,将其作为第二业务需求含义。
可以理解,识别新需求代码的第二业务需求含义与上述的识别目标代码字段的第一业务需求含义的实现逻辑同理,故在此不做赘述。
在识别得到新需求代码对应的第二业务需求含义时,将该第二业务需求含义与数据验证表中的第一业务需求含义进行字段匹配。也即是,计算第二业务需求含义与第一业务需求含义的相似度。
进一步地,若第一业务需求含义和第二业务需求含义之间的相似度大于或等于预设相似度阈值,则确定该第一业务需求含义和第二业务需求含义匹配一致。
而后,在第一业务需求含义和第二业务需求含义匹配一致时,将新需求代码作为回归测试代码,而后,将所有的回归测试代码进行聚类,形成回归测试集。进而,可对回归测试集中的所有回归测试代码进行回归测试。其中,回归测试即是在更新有代码后,重新对其进行测试以确认修改没有引入新的错误或导致其他代码产生错误,本实施例通过对新需求代码进行回归测试,降低了后续的代码维护难度,以使得大幅降低系统开发、测试、维护升级等阶段的成本。
可选的,若第二业务需求含义与第一业务需求含义匹配不一致,则确定新需求代码存在开发缺陷,进而,需要对该新需求代码进行相应调整。
作为一种可选的实施方式,本实施例在对回归测试集中的新需求代码进行回归测试的具体过程包括:在数据验证表中,获取与第二业务需求含义一致的第一业务需求含义对应的第二测试代码;运行新需求代码,得到第一运行结果,以及运行第二测试代码,得到第二运行结果;比对第一运行结果和第二运行结果,在比对一致时,确定所述新需求代码测试成功。
进一步地,若确定第一运行结果和第二运行结果比对不一致,则确定新需求代码存在开发缺陷,需要对其进行相应调整。
本申请实施例通过对待测试代码中预设数量的目标代码字段与相应的测试代码进行匹配,以实现待测试代码的业务需求测试,从而无需对所有的待测试代码进行测试,减少了测试数据量,且仅通过对目标代码字段识别业务需求含义,而后构建测试代码,进行目标代码字段和测试代码的匹配,以实现待测试代码的业务需求测试,从而简化了测试流程,缩短了测试周期,提高了测试效率。
请参照图6,本申请实施例提供了一种代码测试装置,该装置包括:
获取模块100,用于获取指定数据库的待测试代码,对所述待测试代码进行字段划分,得到多个代码字段,其中,一个所述代码字段对应一个业务需求;
识别模块200,用于选取预设数量的代码字段作为目标代码字段,识别所述目标代码字段对应的第一业务需求含义;
构建模块300,用于根据所述第一业务需求含义,构建第一测试代码,其中,所述第一测试代码用于实现所述第一业务需求含义;
匹配模块400,用于将所述目标代码字段与所述第一测试代码进行匹配,将匹配结果作为所述待测试代码的测试结果。
上述的代码测试装置对应于上述实施例的代码测试方法;上述实施例中的任何可选项也适用于本实施例,这里不再详述。
本申请实施例还提供了一种计算机设备,该所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述实施例的代码测试方法。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据(比如代码字段、业务需求含义等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述实施例的代码测试方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种代码测试方法,其特征在于,包括:
获取指定数据库的待测试代码,对所述待测试代码进行字段划分,得到多个代码字段,其中,一个所述代码字段对应一个业务需求;
选取预设数量的代码字段作为目标代码字段,识别所述目标代码字段对应的第一业务需求含义;
根据所述第一业务需求含义,构建第一测试代码,其中,所述第一测试代码用于实现所述第一业务需求含义;
将所述目标代码字段与所述第一测试代码进行匹配,将匹配结果作为所述待测试代码的测试结果。
2.根据权利要求1所述的代码测试方法,其特征在于,若所述目标代码字段与所述第一测试代码匹配一致,确定所述待测试代码测试成功,存储所述目标代码字段对应的第一业务需求含义以及第一测试代码,得到数据验证表;
若所述目标代码字段与所述第一测试代码匹配不一致,则确定所述待测试代码存在开发缺陷。
3.根据权利要求2所述的代码测试方法,其特征在于,所述方法还包括:
获取新构建的新需求代码,识别所述新需求代码对应的第二业务需求含义;
将所述第二业务需求含义与所述数据验证表中的第一业务需求含义进行匹配,在匹配一致时,将所述新需求代码作为回归测试代码,进而聚类得到回归测试集;
对所述回归测试集中的新需求代码进行回归测试。
4.根据权利要求3所述的代码测试方法,其特征在于,所述对所述回归测试集中的新需求代码进行回归测试,包括:
在所述数据验证表中,获取与所述第二业务需求含义一致的第一业务需求含义对应的第二测试代码;
运行所述新需求代码,得到第一运行结果,以及运行所述第二测试代码,得到第二运行结果;
比对所述第一运行结果和所述第二运行结果,在比对一致时,确定所述新需求代码测试成功。
5.根据权利要求4所述的代码测试方法,其特征在于,若所述第二业务需求含义与所述第一业务需求含义匹配不一致,或所述第一运行结果和所述第二运行结果比对不一致,确定所述新需求代码存在开发缺陷。
6.根据权利要求1所述的代码测试方法,其特征在于,所述识别所述目标代码字段对应的第一业务需求含义,包括:
获取与所述目标代码字段对应的需求开发文档;
对所述需求开发文档进行分词处理,得到多个分词;
根据预设语义词典,对各所述分词进行语义识别,得到各所述分词的语义;
将各所述分词的语义进行聚合,得到所述需求开发文档的业务需求,进而确定所述目标代码字段的第一业务需求含义。
7.根据权利要求1所述的代码测试方法,其特征在于,所述对所述待测试代码进行字段划分,得到多个代码字段,包括:
识别所述待测试代码中的分隔符,查找所述分隔符中的预设分隔符;
将所述待测试代码按照预设分隔符所分隔出的字段划分为一个代码字段,对应得到所述待测试代码中的多个代码字段。
8.一种代码测试装置,其特征在于,包括:
获取模块,用于获取指定数据库的待测试代码,对所述待测试代码进行字段划分,得到多个代码字段,其中,一个所述代码字段对应一个业务需求;
识别模块,用于选取预设数量的代码字段作为目标代码字段,识别所述目标代码字段对应的第一业务需求含义;
构建模块,用于根据所述第一业务需求含义,构建第一测试代码,其中,所述第一测试代码用于实现所述第一业务需求含义;
匹配模块,用于将所述目标代码字段与所述第一测试代码进行匹配,将匹配结果作为所述待测试代码的测试结果。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施权利要求1-7中任一项所述的代码测试方法。
10.一种计算机存储介质,其特征在于,其存储有计算机程序,所述计算机程序被执行时,实施根据权利要求1-7中任一项所述的代码测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310405168.XA CN116431502A (zh) | 2023-04-07 | 2023-04-07 | 代码测试方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310405168.XA CN116431502A (zh) | 2023-04-07 | 2023-04-07 | 代码测试方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431502A true CN116431502A (zh) | 2023-07-14 |
Family
ID=87081134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310405168.XA Pending CN116431502A (zh) | 2023-04-07 | 2023-04-07 | 代码测试方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431502A (zh) |
-
2023
- 2023-04-07 CN CN202310405168.XA patent/CN116431502A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8166000B2 (en) | Using a data mining algorithm to generate format rules used to validate data sets | |
US9104709B2 (en) | Cleansing a database system to improve data quality | |
CN107168995B (zh) | 一种数据处理方法及服务器 | |
CN102804147A (zh) | 执行abap源代码的代码检查的代码检查执行系统 | |
US10248517B2 (en) | Computer-implemented method, information processing device, and recording medium | |
CN110543356A (zh) | 异常任务检测方法、装置、设备及计算机存储介质 | |
JP2022073981A (ja) | ソースコード取得 | |
US10782942B1 (en) | Rapid onboarding of data from diverse data sources into standardized objects with parser and unit test generation | |
US11086906B2 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
CN112783513A (zh) | 一种代码风险检查方法、装置及设备 | |
CN111178037A (zh) | 重复缺陷报告识别方法、装置及电子设备 | |
CN115640155A (zh) | 基于语句依赖和补丁相似性的程序自动修复方法与系统 | |
CN116431502A (zh) | 代码测试方法、装置、设备和存储介质 | |
CN116028626A (zh) | 文本匹配方法、装置、存储介质以及电子设备 | |
CN115878400A (zh) | 测试方法、装置、计算机设备、存储介质和程序产品 | |
CN115185920A (zh) | 一种日志类型的检测方法、装置及设备 | |
CN115422180A (zh) | 数据校验方法及系统 | |
CN115186001A (zh) | 一种补丁处理方法和装置 | |
CN112115362B (zh) | 一种基于相似代码识别的编程信息推荐方法及装置 | |
CN114443783A (zh) | 一种供应链数据分析和增强处理方法及装置 | |
CN113779200A (zh) | 目标行业词库的生成方法、处理器及装置 | |
KR101697992B1 (ko) | 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템 및 방법 | |
Mao et al. | Extracting the representative failure executions via clustering analysis based on Markov profile model | |
Jain et al. | Two Timin’: Repairing Smart Contracts With A Two-Layered Approach | |
KR101538131B1 (ko) | 버그 정정 개발자 추천을 위한 하이브리드 버그 할당 시스템 및 방법 |
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 |