CN111209214B - 代码测试处理方法、装置、电子设备及介质 - Google Patents
代码测试处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN111209214B CN111209214B CN202010096090.4A CN202010096090A CN111209214B CN 111209214 B CN111209214 B CN 111209214B CN 202010096090 A CN202010096090 A CN 202010096090A CN 111209214 B CN111209214 B CN 111209214B
- Authority
- CN
- China
- Prior art keywords
- code
- test
- keyword
- determining
- association
- 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
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/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/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
技术领域
本申请涉及游戏技术领域,尤其涉及一种代码测试处理方法、装置、电子设备及介质。
背景技术
游戏项目开发及测试过程中,代码测试是其中重要的工作环节,代码覆盖率反映了代码测试过程中能够被覆盖的程度,具体反映了代码测试过程中被执行的语句占总的语句的比值。
现有技术中,代码测试后的代码覆盖率往往低于100%,经验欠缺的测试人员甚至只能达到50%左右。在面对代码覆盖率低于预期值的情况下,测试人员不知道如何重新测试以提升代码测试的代码覆盖率,而往往是测试人员根据自身测试经验和固定测试流程再次进行代码测试。
然而,测试人员根据自身测试经验和固定测试流程进行代码测试,不能有效提升代码测试的代码覆盖率,无法进行有效的代码优化工作,游戏开发工作受限明显。
发明内容
本申请提供一种代码测试处理方法、装置、电子设备及介质,用以解决现有技术存在的代码测试中代码覆盖率无法得以有效提升的技术问题。
第一方面,本申请提供一种代码测试处理方法,包括:
确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至所述代码覆盖率不低于所述第一预设阈值:
确定所述代码对应的至少一个第一关键词;
根据所述代码对应的所述至少一个第一关键词,确定与所述至少一个关键词对应的至少一个测试任务;
根据所述至少一个测试任务中的每一个测试任务,对所述代码进行测试处理。
进一步地,确定所述代码对应的至少一个第一关键词,包括:
对所述代码对应的代码文本进行分词处理,得到所述代码文本对应的至少一个离散词语;
根据预设的关键词库,在所述代码文本对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到所述代码对应的至少一个第二关键词,其中,所述至少一个第二关键词中的每一个第二关键词与所述代码具有第一关联系数;
确定所述第一关联系数高于第一关联阈值的所述第二关键词,构成所述代码对应的至少一个第一关键词。
进一步地,所述代码文本包括所述代码的代码说明,和所述代码对应的任务清单。
进一步地,确定所述第二关键词与对应的代码之间的第一关联系数的方法,包括:
根据预设的第一关联初始值,和根据所述代码被提交的次数,确定所述第一关联系数。
进一步地,根据所述代码对应的所述至少一个第一关键词,确定与所述至少一个关键词对应的至少一个测试任务,包括:
根据所述代码对应的所述至少一个第一关键词中的每一个第一关键词,确定与所述每一个第一关键词对应的至少一个第一测试建议,其中,所述至少一个第一测试建议中的每一个第一测试建议与对应的所述第一关键词具有第二关联系数;
确定所述第二关联系数高于第二关联阈值的所述第一测试建议,构成所述每一个第一关键词对应的至少一个第二测试建议;
根据所述每一个第一关键词对应的至少一个第二测试建议,确定所述至少一个测试任务。
进一步地,确定所述第一关键词与对应的第一测试建议之间的第二关联系数的方法,包括:
根据预设的第二关联初始值,和根据用户对所述第一测试建议的反馈内容和反馈频次,确定所述第一关联系数
进一步地,所述方法还包括:当所述代码覆盖率低于所述第一预设阈值,且所述代码具有对应的自动化测试程序时,利用所述自动化测试程序对所述代码进行测试。
第二方面,本申请提供一种代码测试处理装置,包括:
第一处理单元,用于确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至所述代码覆盖率不低于所述第一预设阈值:
第二处理单元,用于确定所述代码对应的至少一个第一关键词;
第三处理单元,用于根据所述代码对应的所述至少一个第一关键词,确定与所述至少一个关键词对应的至少一个测试任务;
第四处理单元,用于根据所述至少一个测试任务中的每一个测试任务,对所述代码进行测试处理。
进一步地,第二处理单元,包括:
第一处理子单元,用于对所述代码对应的代码文本进行分词处理,得到所述代码文本对应的至少一个离散词语;
第二处理子单元,用于根据预设的关键词库,在所述代码文本对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到所述代码对应的至少一个第二关键词,其中,所述至少一个第二关键词中的每一个第二关键词与所述代码具有第一关联系数;
第三处理子单元,用于确定所述第一关联系数高于第一关联阈值的所述第二关键词,构成所述代码对应的至少一个第一关键词。
进一步地,所述代码文本包括所述代码的代码说明,和所述代码对应的任务清单。
进一步地,第二处理子单元,包括:
第一处理模块,用于根据预设的第一关联初始值,和根据所述代码被提交的次数,确定所述第一关联系数。
进一步地,第三处理单元,包括:
第四处理子单元,用于根据所述代码对应的所述至少一个第一关键词中的每一个第一关键词,确定与所述每一个第一关键词对应的至少一个第一测试建议,其中,所述至少一个第一测试建议中的每一个第一测试建议与对应的所述第一关键词具有第二关联系数;
第五处理子单元,用于确定所述第二关联系数高于第二关联阈值的所述第一测试建议,构成所述每一个第一关键词对应的至少一个第二测试建议;
第六处理子单元,用于根据所述每一个第一关键词对应的至少一个第二测试建议,确定所述至少一个测试任务。
进一步地,第四处理子单元,包括:
第二处理模块,用于根据预设的第二关联初始值,和根据用户对所述第一测试建议的反馈内容和反馈频次,确定所述第一关联系数
进一步地,所述装置还包括第四处理单元,用于当所述代码覆盖率低于所述第一预设阈值,且所述代码具有对应的自动化测试程序时,利用所述自动化测试程序对所述代码进行测试。
第三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述的方法。
本申请提供一种代码测试处理方法、装置、设备及存储介质,通过确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值;确定代码对应的至少一个第一关键词;根据代码对应的至少一个第一关键词,确定与至少一个关键词对应的至少一个测试任务;根据至少一个测试任务中的每一个测试任务,对代码进行测试,并确定代码测试后的代码覆盖率。通过确定代码的至少一个第一关键词,并根据代码对应的至少一个第一关键词,确定与代码对应的至少一个测试任务,确定出的测试任务与代码的适配性强,相比于相关技术中的测试人员根据自身测试经验或固定测试流程确定代码测试的测试任务,本申请确定出的测试任务与代码的关联性良好、测试任务内容丰富,根据确定出的至少一个测试任务对代码进行测试处理,能够实现更优化的代码测试,测试效果良好,有利于提升代码的代码覆盖率,和提高代码的代码质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种代码测试处理方法的流程示意图;
图1a为本实施例提供的一种SVN工具的提交日志截图;
图2为本申请实施例提供的又一种代码测试处理方法的流程示意图;
图2a为本申请实施例提供的一种代码测试处理方法的执行示意图;
图3为本申请实施例提供的一种代码测试处理装置的结构示意图;
图4为本申请实施例提供的又一种代码测试处理装置的结构示意图;
图5为本申请实施例提供的一种代码测试处理设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及的名词解释:
代码覆盖率:代码测试过程中能够被覆盖的程度,具体为代码测试过程中被执行的语句占总的语句的比值。
关联系数:用于表征不同变量之间的线性相关程度。
Jacoco:一种常用的代码覆盖率统计工具。
Cobertura:一种常用的代码覆盖率统计工具。
JVM:Java Virtual Machine,Java虚拟机的缩写,JVM是通过在实际的计算机上仿真模拟各种计算机功能来实现的虚拟机。
版本控制:指对程序开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,其最主要的功能是用于追踪文件的变更情况。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本申请具体的应用场景为:游戏项目开发及测试过程中,代码测试是其中重要的工作环节,代码覆盖率反映了代码测试过程中能够被覆盖的程度,具体反映了代码测试过程中被执行的语句占总的语句的比值。现有技术中,代码测试后的代码覆盖率往往低于100%,经验欠缺的测试人员甚至只能达到50%左右。在面对代码覆盖率低于预期值的情况下,测试人员不知道如何重新测试以提升代码测试的代码覆盖率,而往往是测试人员根据自身测试经验和固定测试流程再次进行代码测试。然而,测试人员根据自身测试经验和固定测试流程进行代码测试,不能有效提升代码测试的代码覆盖率,无法进行有效的代码优化工作,游戏开发工作受限明显。
本申请提供的一种代码测试处理方法、装置、设备和存储介质,旨在解决现有技术中的如上技术问题。
图1为本申请实施例提供的一种代码测试处理方法的流程示意图,如图1所示,执行包括:
步骤101、确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值。
代码测试中源代码被测试的比例和程度即为代码的代码覆盖率,代码覆盖率包括行覆盖率、分支覆盖率、路径覆盖率和行变支覆盖率,常用的代码覆盖率统计工具包括Jacoco和Cobertura。常用的代码覆盖率统计工具的工作方式包括:利用JVM(Jave虚拟机)在class类文件的某个瞬间进行插桩;执行代码测试时,将执行代码的轨迹备份至内存中进行存放;数据处理器结合插桩的数据分析得到代码覆盖率。示例性的,数据处理器通过对插桩的数据分析,确定代码被执行的行号,通过计算代码被执行的行数与代码的总行数的比值,得到代码测试后的行覆盖率。
代码覆盖率反映了代码测试中源代码被测试的比例和程度,当代码覆盖率低于第一预设阈值时,确定代码覆盖率不满足预设条件,需要确定与代码匹配的测试方法,并对代码进行重新测试,以提高代码的代码覆盖率。
步骤102、确定代码对应的至少一个第一关键词。
可选的,步骤102包括:对代码对应的代码文本进行分词处理,得到代码文本对应的至少一个离散词语;根据预设的关键词库,在代码文本对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到代码对应的至少一个第二关键词,其中,至少一个第二关键词中的每一个第二关键词与代码具有第一关联系数;确定第一关联系数高于第一关联阈值的第二关键词,构成代码对应的至少一个第一关键词。其中,代码对应的代码文本包括代码的代码说明,和代码对应的任务清单。
版本控制是指对程序开发过程中各程序代码、配置文件及说明文档等文件变更进行管理,常用的版本控制工具包括SVN、Git等。在开发人员提交代码后,SVN会在日志中显示本次提交的作者、日期、提交说明及所有代码。图1a为本实施例提供的SVN工具的提交日志截图,如图1a所示,Path显示了本次提交的所有代码,Message显示了本次提交的说明信息,其中,Message所提供的说明信息即为代码的代码说明。
在程序开发过程中,通常将各开发任务分割成一系列的任务清单,任务清单中包括具体的任务内容,任务清单中的任务内容具有唯一的标识符,如图1a所示,74658即为任务内容的任务编号。
利用自然语言处理技术,对代码对应的代码文本进行分词处理,得到代码文本对应的至少一个离散词语,其中,代码对应的代码文本包括代码的代码说明和代码对应的任务清单。通过对代码的代码说明和代码对应的任务清单进行分词处理,得到代码对应的至少一个离散词语。根据预设的关键词库,在代码对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到代码对应的至少一个第二关键词。示例性的,代码对应的至少一个离散词语包括:面向、新人、工会战、攻略、配合、神兽,确定出的与预设的关键词相似度超过第二预设阈值的离散词语包括:新人、工会战、神兽,构成代码对应的至少一个第二关键词。
每一个第二关键词与代码之间具有第一关联系数,第一关联系数描述了第二关键词与代码的关联程度。确定第一关联系数的方法包括:根据预设的第一关联初始值,和根据代码被提交的次数,确定第一关联系数。当包含第二关键词的某一代码第一次出现时,对第二关键词与该代码之间的第一关联系数赋值为r0;当该代码再次被提交时,第二关键词与该代码之间的第一关联系数变成r0+Δ;当该代码第n次被提交时,第二关键词与该代码之间的第一关联系数变成r0+(n-1)Δ。对于包含同一第二关键词的不同代码来说,第二关键词与不同代码之间的第一关联系数可能不同,即同一第二关键词与不同代码之间的关联程度是不同的。
在代码对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到代码对应的至少一个第二关键词,每一个第二关键词与代码的关联程度不同。为保证确定出的第二关键词与代码之间具有较强的关联程度,确定第一关联系数高于第一关联阈值的第二关键词,得到代码对应的至少一个第一关键词。示例性的,确定出的代码的第二关键词包括:新人、工会战、神兽,三个第二关键词与代码之间的第一关联系数分别为0.24、0.92、0.01,预设的第一关联阈值为0.2,则确定出的代码的第一关键词包括:新人、工会战。第一关键词与代码之间具有较强的关联程度,后续根据第一关键词确定出的测试任务与代码之间也具有较强的关联程度,根据由第一关键词确定出的测试任务进行代码测试,测试效果良好,有利于提高代码的代码覆盖率和提升代码的代码质量。
步骤103、根据代码对应的至少一个第一关键词,确定与至少一个关键词对应的至少一个测试任务。
在本实施例中,具体的,在确定出代码对应的至少一个第一关键词后,以代码对应的至少一个第一关键词为基础,确定与每一个第一关键词对应的至少一个测试任务,测试任务具体包括测试方法和测试内容。测试任务与第一关键词具有较强的关联程度,以第一关键词作为中间媒介确定出的测试任务与代码之间也具有较强的关联程度。相比于相关技术中的测试人员采用固定的测试方法或测试流程对代码进行测试,本实施例实现了根据与代码具有强关联程度的第一关键词,确定与代码适配的测试任务,实现了代码测试过程的优化处理,有利于提高代码的代码覆盖率,和提高代码测试的测试效率。
步骤104、根据至少一个测试任务中的每一个测试任务,对代码进行测试。
在本实施例中,具体的,根据代码对应的至少一个第一关键词确定出的至少一个测试任务与代码具有较强的关联程度,测试任务由优质的测试建议确定而成,优质的测试建议的来源包括收录在数据库中的经验文章、资深测试人员给出的测试建议、专家提供的测试建议,相比于测试人员根据自身经验或固定流程确定测试任务,本实施例确定出的测试任务灵活性高、多样性丰富,与代码的适配性更强,根据由第一关键词确定出的测试任务进行代码测试,测试效果良好,有利于进行代码的优化。
本实施例通过确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值;确定代码对应的至少一个第一关键词;根据代码对应的至少一个第一关键词,确定与至少一个关键词对应的至少一个测试任务;根据至少一个测试任务中的每一个测试任务,对代码进行测试,并确定代码测试后的代码覆盖率。通过确定代码的至少一个第一关键词,并根据代码对应的至少一个第一关键词,确定与代码对应的至少一个测试任务,确定出的测试任务与代码的适配性强,相比于相关技术中的测试人员根据自身测试经验或固定测试方法确定代码测试的测试任务,本实施例确定出的测试任务与代码的关联性良好、测试任务内容丰富,根据确定出的至少一个测试任务对代码进行测试,测试效果显著,有利于有效提升代码的代码覆盖率,有利于进行代码的优化。
图2为本申请实施例提供的另一种代码测试处理方法的流程示意图,图2a为本申请实施例提供的一种代码测试处理方法的执行示意图,如图2和图2a所示,执行包括:
步骤201、确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值。
在本实施例中,具体的,本步骤原理及过程可以参见图1的步骤101,不再赘述。
步骤202、确定代码对应的至少一个第一关键词。
在本实施例中,具体的,对代码对应的代码文本进行分词处理,得到代码对应的至少一个离散词语,代码文本包括代码的代码说明和代码对应的任务清单。代码说明中描述了提交的代码的说明信息,具体包括代码的内容概略、任务描述、任务目标、适用对象等信息;任务清单包括根据代码的开发任务划分成的一系列的任务单,每个任务单可作为项目开发人员的基本单元任务。在代码对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,构成代码对应的至少一个第二关键词,至少一个第二关键词中的每一个第二关键词与代码具有第一关联系数,第一关联系数描述了第二关键词与代码之间的关联程度。为保证确定出的第二关键词与代码具有较强的关联程度,在代码对应的至少一个第二关键词中,确定第一关联系数超过第一关联阈值的第二关键词,得到成代码的至少一个第一关键词,第一关键词描述了代码的关键内容,具体可以描述代码的任务目标、适用对象、主体内容等信息,实现了将代码转换为至少一个匹配度高、概括性强、可读性高的文字内容的第一关键词。
步骤203、根据代码对应的至少一个第一关键词中的每一个第一关键词,确定与代码对应的至少一个第二测试建议,并根据与代码对应的至少一个第二测试建议,确定与代码对应的至少一个测试任务。
可选的,步骤203包括:根据代码对应的至少一个第一关键词中的每一个第一关键词,确定与每一个第一关键词对应的至少一个第一测试建议,其中,至少一个第一测试建议中的每一个第一测试建议与对应的第一关键词具有第二关联系数;确定第二关联系数高于第二关联阈值的第一测试建议,构成每一个第一关键词对应的至少一个第二测试建议;根据每一个第一关键词对应的至少一个第二测试建议,确定至少一个测试任务。其中,确定第一关键词与对应的第一测试建议之间的第二关联系数的方法,包括:根据预设的第二关联初始值,和根据用户对第一测试建议的反馈内容和反馈频次,确定第一关联系数。
在本实施例中,具体的,根据代码对应的至少一个第一关键词中的每一个第一关键词,确定与每一个第一关键词对应的至少一个第一测试建议,第一测试建议的来源包括数据库中收录的经验文章和测试建议,测试建议包括资深测试人员给出的测试建议和专家给出的测试建议。第一测试建议与第一关键词之间具有第二关联系数,第二关联系数描述了第一测试建议与第一关键词之间的关联程度。由于通过利用至少一个第一关键词来表征代码,第一关键词描述了代码的任务目标、适用对象、主体内容等信息,因此第一测试建议与第一关键词之间的关联程度,即为第一测试建议与代码之间的关联程度。
第一测试建议的来源为数据库中收录的经验文章的情况:数据库中收录有不同游戏、不同项目的大量的经验文章,例如收录有付费系统、登录系统、游戏角色装备、游戏任务等内容的大量的经验文章,经验文章中包括由作者设定或由系统自动识别出的关键词,通过进行第一关键词与经验文章关键词的匹配,确定与第一关键词相似度超过预设阈值的经验文章关键词,进而确定出与第一关键词匹配的经验文章,经验文章与第一关键词之间具有第二关联系数,第二关联系数描述了代码的第一关键词与经验文章之间的关联程度。
第一测试建议的来源为数据库中收录的测试建议的情况:数据库中收录的测试建议包括资深测试人员给出的测试建议和专家给出的测试建议。资深测试人员的确定方式包括指定固定的测试人员,和根据测试人员发表过的测试建议以及进行过的历史测试记录确定。数据库中收录的测试建议具有测试建议关键词,测试建议关键词由作者指定,或由系统根据测试建议的内容自动识别得到。通过确定与第一关键词相似度超过预设阈值的测试建议关键词,确定出与第一关键词匹配的第一测试建议,第一测试建议与第一关键词之间具有第二关联系数,第二关联系数描述了第一测试建议与第一关键词之间的关联程度。
在确定第一关键词与对应的第一测试建议之间的第二关联系数时,据预设的第二关联初始值,和根据用户对第一测试建议的反馈内容和反馈频次,确定第一关联系数。反馈频次为用户反馈的次数,反馈内容包括用户反馈第一测试建议有效和反馈第一测试建议无效两种类别,反馈内容也可以是用户对第一测试建议进行评分的评分值。反馈内容和反馈频次共同决定了第一测试建议的权重,即第一测试建议的权重即为第一测试建议与第一关键词的第二关联系数。
示例性的,确定出的代码的第一关键词包括:新手、工会战,与“工会战”对应的经验文章有三篇,三篇经验文章与“工会战”的第二关联系数分别为0.9、1.8、0.6,对应的资深测试人员的测试建议有3条,第二关联系数分别为0.8、2.1、0.4,对应的专家建议为10453号建议。
当代码的代码覆盖率低于第一预设阈值,且代码具有对应的自动化测试程序时,直接利用自动化测试程序对代码进行测试。自动化测试程序是针对具有固定测试流程的代码内容(如游戏成就系统,接口数值测试等)编写的脚本程序,脚本程序可以在代码内执行,在执行一次脚步程序后即自动完成一次代码测试。
为保证确定出的测试任务与代码具有较强的关联程度,在与代码对应的至少一个第一测试建议中,确定第二关联系数超过第二关联阈值的第一测试建议,得到与代码对应的至少一个第二测试建议。第二测试建议与代码之间具有较强的关联程度,第二测试建议包括测试方法、用例场景设计、校验准侧、代码剔除、函数确定、异常捕捉方法、指针参数优化、代码重复消除等内容,根据确定出的第二测试建议确定至少一个测试任务,测试任务描述了需要对代码进行测试的任务内容,测试人员只需根据确定出的测试任务对代码进行测试即可。
步骤204、根据至少一个测试任务中的每一个测试任务,对代码进行测试。
在本实施例中,具体的,本步骤原理及过程可以参见图1的步骤104,不再赘述。
本实施例通过确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值;确定代码对应的至少一个第一关键词;根据代码对应的至少一个第一关键词中的每一个第一关键词,确定与代码对应的至少一个第二测试建议,并根据与代码对应的至少一个第二测试建议,确定与代码对应的至少一个测试任务;根据至少一个测试任务中的每一个测试任务,对代码进行测试。通过利用相关程度高、概括性强、可读性高的至少一个第一关键词来表征代码,并根据用于表征代码的至少一个第一关键词,确定与代码对应的至少一个第一测试建议,进而根据至少一个第一测试建议确定代码测试的测试任务,确定出的测试任务与代码的适配性高、测试方式多元化,相比于相关技术中的测试人员根据自身测试经验或固定测试流程对代码进行测试,本实施例根据代码的至少一个第一关键词确定出的测试任务能够实现更优化的代码测试,测试效果良好,测试效率高,有利于提升代码的代码覆盖率,和提高代码的代码质量;对测试人员的专业要求降低,实现方式简单,适用范围广泛,有利于降低游戏项目开发的开发成本。
图3为本申请实施例提供的一种代码测试处理装置的结构示意图,如图3所示,该装置包括:
第一处理单元1,用于确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值:
第二处理单元2,用于确定代码对应的至少一个第一关键词;
第三处理单元3,用于根据代码对应的至少一个第一关键词,确定与至少一个关键词对应的至少一个测试任务;
第四处理单元4,用于根据至少一个测试任务中的每一个测试任务,对代码进行测试,并确定代码测试后的代码覆盖率。
本实施例通过确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值;确定代码对应的至少一个第一关键词;根据代码对应的至少一个第一关键词,确定与至少一个关键词对应的至少一个测试任务;根据至少一个测试任务中的每一个测试任务,对代码进行测试,并确定代码测试后的代码覆盖率。通过确定代码的至少一个第一关键词,并根据代码对应的至少一个第一关键词,确定与代码对应的至少一个测试任务,确定出的测试任务与代码的适配性强,相比于相关技术中的测试人员根据自身测试经验或固定测试方法确定代码测试的测试任务,本实施例确定出的测试任务与代码的关联性良好、测试任务内容丰富,根据确定出的至少一个测试任务对代码进行测试,能够实现更优化的代码测试,有利于提升代码的代码覆盖率,和提高代码的代码质量。
图4为本申请实施例提供的又一种代码测试处理装置的结构示意图,在图3所示实施例的基础上,如图4所示,
第二处理单元2,包括:
第一处理子单元21,用于对代码对应的代码文本进行分词处理,得到代码文本对应的至少一个离散词语;
第二处理子单元22,用于根据预设的关键词库,在代码文本对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到代码对应的至少一个第二关键词,其中,至少一个第二关键词中的每一个第二关键词与代码具有第一关联系数;
第三处理子单元23,用于确定第一关联系数高于第一关联阈值的第二关键词,构成代码对应的至少一个第一关键词。
代码文本包括代码的代码说明,和代码对应的任务清单。
第二处理子单元22,包括:
第一处理模块221,用于根据预设的第一关联初始值,和根据代码被提交的次数,确定第一关联系数。
第三处理单元3,包括:
第四处理子单元31,用于根据代码对应的至少一个第一关键词中的每一个第一关键词,确定与每一个第一关键词对应的至少一个第一测试建议,其中,至少一个第一测试建议中的每一个第一测试建议与对应的第一关键词具有第二关联系数;
第五处理子单元32,用于确定第二关联系数高于第二关联阈值的第一测试建议,构成每一个第一关键词对应的至少一个第二测试建议;
第六处理子单元33,用于根据每一个第一关键词对应的至少一个第二测试建议,确定至少一个测试任务。
第四处理子单元31,包括:
第二处理模块311,用于根据预设的第二关联初始值,和根据用户对第一测试建议的反馈内容和反馈频次,确定第一关联系数
本装置还包括第五处理单元5,用于当代码覆盖率低于第一预设阈值,且代码具有对应的自动化测试程序时,利用自动化测试程序对代码进行测试。
本实施例通过确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至代码覆盖率不低于第一预设阈值;确定代码对应的至少一个第一关键词;根据代码对应的至少一个第一关键词中的每一个第一关键词,确定与代码对应的至少一个第二测试建议,并根据与代码对应的至少一个第二测试建议,确定与代码对应的至少一个测试任务;根据至少一个测试任务中的每一个测试任务,对代码进行测试。通过利用相关程度高、概括性强、可读性高的至少一个第一关键词来表征代码,并根据用于表征代码的至少一个第一关键词,确定与代码对应的至少一个第一测试建议,进而根据至少一个第一测试建议确定代码测试的测试任务,确定出的测试任务与代码的适配性高、测试方式多元化,相比于相关技术中的测试人员根据自身测试经验或固定测试流程对代码进行测试,本实施例根据代码的至少一个第一关键词确定出的测试任务能够实现更优化的代码测试,测试效果良好,测试效率高,有利于提升代码的代码覆盖率,和提高代码的代码质量;对测试人员的专业要求降低,实现方式简单,适用范围广泛,有利于降低游戏项目开发的开发成本。
图5为本申请实施例提供的一种代码测试处理设备的结构示意图,如图5所示,本申请实施例提供了一种代码测试处理设备,可以用于执行图1-图2所示实施例中代码测试处理动作或步骤,具体包括:处理器501,存储器502和通信接口503。
存储器502,用于存储计算机程序。
处理器501,用于执行存储器502中存储的计算机程序,以实现图1-图4所示实施例中代码测试处理的动作,不再赘述。
可选的,代码测试处理还可以包括总线504。其中,处理器501、存储器502以及通信接口503可以通过总线504相互连接;总线504可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。上述总线504可以分为地址总线、数据总线和控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,上述各实施例之间可以相互参考和借鉴,相同或相似的步骤以及名词均不再一一赘述。
或者,以上各个模块的部分或全部也可以通过集成电路的形式内嵌于该轨迹预测设备的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、自动服务设备或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、自动服务设备或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的自动服务设备、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (9)
1.一种代码测试处理方法,其特征在于,包括:
确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至所述代码覆盖率不低于所述第一预设阈值:
确定所述代码对应的至少一个第一关键词;
根据所述代码对应的所述至少一个第一关键词,确定与所述至少一个关键词对应的至少一个测试任务;
根据所述至少一个测试任务中的每一个测试任务,对所述代码进行测试处理;
确定所述代码对应的至少一个第一关键词,包括:
对所述代码对应的代码文本进行分词处理,得到所述代码文本对应的至少一个离散词语;
根据预设的关键词库,在所述代码文本对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到所述代码对应的至少一个第二关键词,其中,所述至少一个第二关键词中的每一个第二关键词与所述代码具有第一关联系数;
确定所述第一关联系数高于第一关联阈值的所述第二关键词,构成所述代码对应的至少一个第一关键词。
2.根据权利要求1所述的方法,其特征在于,所述代码文本包括所述代码的代码说明,和所述代码对应的任务清单。
3.根据权利要求1所述的方法,其特征在于,确定所述第二关键词与对应的代码之间的第一关联系数的方法,包括:
根据预设的第一关联初始值,和根据所述代码被提交的次数,确定所述第一关联系数。
4.根据权利要求1所述的方法,其特征在于,根据所述代码对应的所述至少一个第一关键词,确定与所述至少一个关键词对应的至少一个测试任务,包括:
根据所述代码对应的所述至少一个第一关键词中的每一个第一关键词,确定与所述每一个第一关键词对应的至少一个第一测试建议,其中,所述至少一个第一测试建议中的每一个第一测试建议与对应的所述第一关键词具有第二关联系数;
确定所述第二关联系数高于第二关联阈值的所述第一测试建议,构成所述每一个第一关键词对应的至少一个第二测试建议;
根据所述每一个第一关键词对应的至少一个第二测试建议,确定所述至少一个测试任务。
5.根据权利要求4所述的方法,其特征在于,确定所述第一关键词与对应的第一测试建议之间的第二关联系数的方法,包括:
根据预设的第二关联初始值,和根据用户对所述第一测试建议的反馈内容和反馈频次,确定所述第一关联系数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:当所述代码覆盖率低于所述第一预设阈值,且所述代码具有对应的自动化测试程序时,利用所述自动化测试程序对所述代码进行测试。
7.一种代码测试处理装置,其特征在于,包括:
第一处理单元,用于确定代码测试后的代码覆盖率是否低于第一预设阈值,是则重复执行以下步骤,直至所述代码覆盖率不低于所述第一预设阈值:
第二处理单元,用于确定所述代码对应的至少一个第一关键词;
第三处理单元,用于根据所述代码对应的所述至少一个第一关键词,确定与所述至少一个关键词对应的至少一个测试任务;
第四处理单元,用于根据所述至少一个测试任务中的每一个测试任务,对所述代码进行测试处理;
所述第二处理单元,包括:
第一处理子单元,用于对所述代码对应的代码文本进行分词处理,得到所述代码文本对应的至少一个离散词语;
第二处理子单元,用于根据预设的关键词库,在所述代码文本对应的至少一个离散词语中,确定与预设的关键词相似度超过第二预设阈值的离散词语,得到所述代码对应的至少一个第二关键词,其中,所述至少一个第二关键词中的每一个第二关键词与所述代码具有第一关联系数;
第三处理子单元,用于确定所述第一关联系数高于第一关联阈值的所述第二关键词,构成所述代码对应的至少一个第一关键词。
8.一种电子设备,其特征在于,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010096090.4A CN111209214B (zh) | 2020-02-17 | 2020-02-17 | 代码测试处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010096090.4A CN111209214B (zh) | 2020-02-17 | 2020-02-17 | 代码测试处理方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209214A CN111209214A (zh) | 2020-05-29 |
CN111209214B true CN111209214B (zh) | 2023-04-25 |
Family
ID=70784216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010096090.4A Active CN111209214B (zh) | 2020-02-17 | 2020-02-17 | 代码测试处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209214B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069075B (zh) * | 2020-09-09 | 2023-06-30 | 网易(杭州)网络有限公司 | 游戏角色的时装测试方法、装置和游戏客户端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155900A (zh) * | 2015-04-17 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种代码测试监测方法、装置及设备 |
CN109766260A (zh) * | 2018-12-11 | 2019-05-17 | 平安科技(深圳)有限公司 | 配置测试动作的方法、装置、电子设备和存储介质 |
CN110209585A (zh) * | 2019-06-04 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种软件测试用例智能训练方法,终端及存储介质 |
-
2020
- 2020-02-17 CN CN202010096090.4A patent/CN111209214B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155900A (zh) * | 2015-04-17 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种代码测试监测方法、装置及设备 |
CN109766260A (zh) * | 2018-12-11 | 2019-05-17 | 平安科技(深圳)有限公司 | 配置测试动作的方法、装置、电子设备和存储介质 |
CN110209585A (zh) * | 2019-06-04 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种软件测试用例智能训练方法,终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111209214A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108121795B (zh) | 用户行为预测方法及装置 | |
US11915104B2 (en) | Normalizing text attributes for machine learning models | |
US10678673B2 (en) | Software program fault localization | |
EP4075281A1 (en) | Ann-based program test method and test system, and application | |
CN109783346B (zh) | 基于关键字驱动的自动化测试方法、装置及终端设备 | |
US20090217246A1 (en) | Evaluating Software Programming Skills | |
Zhang et al. | Large-scale empirical study of important features indicative of discovered vulnerabilities to assess application security | |
CN110490304B (zh) | 一种数据处理方法及设备 | |
CN110688536A (zh) | 一种标签预测方法、装置、设备和存储介质 | |
CN111581086B (zh) | 一种基于RankNet的混合软件错误定位方法及系统 | |
CN113761444A (zh) | 基于代码评分的教程推荐方法、教程推荐装置及终端设备 | |
Falessi et al. | The impact of dormant defects on defect prediction: A study of 19 apache projects | |
US20220327452A1 (en) | Method for automatically updating unit cost of inspection by using comparison between inspection time and work time of crowdsourcing-based project for generating artificial intelligence training data | |
Sun et al. | Effectiveness of exploring historical commits for developer recommendation: an empirical study | |
CN111209214B (zh) | 代码测试处理方法、装置、电子设备及介质 | |
Silva et al. | Towards making safety-critical systems safer: learning from mistakes | |
CN115292167A (zh) | 生命周期预测模型构建方法、装置、设备及可读存储介质 | |
KR102195608B1 (ko) | 인공지능 학습데이터 생성을 위한 크라우드소싱 기반 프로젝트의 오브젝트 반려율을 활용한 자동 반려 방법 | |
CN110674491B (zh) | 用于安卓应用的实时取证的方法、装置和电子设备 | |
CN114490390A (zh) | 测试数据生成方法、装置、设备及存储介质 | |
CN109902004B (zh) | 一种应用程序链接渠道的测试方法及装置 | |
Chu et al. | FAST: a framework for automating statistics-based testing | |
CN113095589A (zh) | 一种人口属性确定方法、装置、设备及存储介质 | |
CN112597041A (zh) | 代码覆盖率的跨分支合并方法、系统、设备及存储介质 | |
CN111859985A (zh) | Ai客服模型测试方法、装置、电子设备及存储介质 |
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 |