CN115840715B - 软件测试管理方法、装置和存储介质 - Google Patents
软件测试管理方法、装置和存储介质 Download PDFInfo
- Publication number
- CN115840715B CN115840715B CN202310166290.6A CN202310166290A CN115840715B CN 115840715 B CN115840715 B CN 115840715B CN 202310166290 A CN202310166290 A CN 202310166290A CN 115840715 B CN115840715 B CN 115840715B
- Authority
- CN
- China
- Prior art keywords
- test
- nodes
- node
- scene
- case
- 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
-
- 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
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种软件测试管理方法、装置和存储介质,其中包括:基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。本发明提高了整个测试管理的准确性和效率。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种软件测试管理方法、装置和存储介质。
背景技术
软件测试流程是软件开发过程中很重要的一个环节。软件测试流程的规范性会直接影响到了软件产品的质量。现在很多软件项目在测试过程中流程不规范,项目周期短,测试时间很紧张,同时还需要输出必要的资料文档。所以一个规范、高效的软件测试管理方法由为重要。人工测试用例是由测试人员将需求内容转换为测试用例的结果,也是验证开发实现软件功能的测试依据,因此人工测试用例的编写是测试流程管理中很重要的一环。然而,传统的人工测试用例存在测试场景容易遗漏、用例修改时修改范围大且容易出错并且测试流程效率低下的问题。此外,测试过程中发现的问题,需要在项目管理系统中提交问题单,在提单的过程中,需要进行相应问题描述以及操作步骤的输入等,无形之中增加了较多时间成本。
发明内容
本发明提供一种软件测试管理方法、装置和存储介质,用以解决现有技术中测试场景容易遗漏、用例修改时修改范围大且容易出错并且测试流程效率低下的缺陷。
本发明提供一种软件测试管理方法,包括:
基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;
将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
根据本发明提供的一种软件测试管理方法,所述基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图,具体包括:
依次基于待测试项目、功能模块、功能子模块以及单元测试场景的层级构建并连接项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点;
在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点;基于所述任一功能子模块对应的单元测试场景描述节点的节点内容,构建并填充当前预期结果节点,并连接所述当前操作步骤节点和所述当前预期结果节点。
根据本发明提供的一种软件测试管理方法,所述在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点,具体包括:
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件分解为若干个基础条件,并获取所述若干个基础条件对应的预设基础条件节点;基于所述若干个基础条件对应的预设基础条件节点的节点地址,构建并填充当前预置条件节点,并连接所述任一功能子模块对应的单元测试场景描述节点和所述当前预置条件节点;
基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的功能核心程度,构建并填充当前用例级别节点,并连接所述当前预置条件节点和所述当前用例级别节点;
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的测试步骤分解为若干个基础步骤,并获取所述若干个基础步骤对应的预设基础步骤节点;基于所述若干个基础步骤对应的预设基础步骤节点的节点地址,构建并填充当前操作步骤节点,并连接所述当前用例级别节点和所述当前操作步骤节点。
根据本发明提供的一种软件测试管理方法,所述执行所述测试脑图对应的多个测试用例,之前还包括:
基于所述测试脑图的任一分支中包含的测试路径层级,确定当前测试对象;
基于所述任一分支中包含的测试参数层级中的用例级别节点和预期结果节点,确定当前测试对象的测试优先级和测试预期结果;
基于所述任一分支中包含的测试参数层级中的预置条件节点指向的预设基础条件节点的节点地址,获取所述预设基础条件节点的节点内容,并拼装所述预设基础条件节点的节点内容,得到所述任一分支中包含的测试参数层级中的预置条件节点的节点内容;
基于所述任一分支中包含的测试参数层级中的操作步骤节点指向的预设基础步骤节点的节点地址,获取所述预设基础步骤节点的节点内容,并拼装所述预设基础步骤节点的节点内容,得到所述任一分支中包含的测试参数层级中的操作步骤节点的节点内容;
基于所述任一分支中包含的测试参数层级中的预置条件节点和操作步骤节点的节点内容,以及当前测试对象的测试优先级和测试预期结果,生成所述任一分支对应的测试用例。
根据本发明提供的一种软件测试管理方法,所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例对应的执行路径信息;其中,任一测试用例对应的执行路径信息中包含所述测试用例执行过程中的调用方法名序列、输入参数和输出参数;
将所述多个测试用例对应的执行路径信息分别输入至测试用例描述模型中,得到所述测试用例描述模型输出的所述多个测试用例对应的用例描述向量;
基于所述多个测试用例对应的用例描述向量之间的相似度,确定所述多个测试用例中的异常测试用例,并在所述测试脑图中将所述异常测试用例对应的分支进行突出显示。
根据本发明提供的一种软件测试管理方法,所述测试用例描述模型是基于预训练语言模型构建的,所述测试用例描述模型是基于以下步骤训练得到的:
获取样本项目的样本测试用例以及所述样本测试用例对应的实际测试场景;
将所述样本测试用例对应的执行路径信息输入至所述测试用例描述模型,得到所述测试用例描述模型输出的所述样本测试用例对应的用例描述向量;
基于已训练的场景分类器对所述样本测试用例对应的用例描述向量进行分类,得到所述样本测试用例对应的预测场景;
基于所述样本测试用例对应的预测场景和实际测试场景之间的一致性,对所述测试用例描述模型的参数进行调整。
根据本发明提供的一种软件测试管理方法,所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例分别对应的代码覆盖范围;
基于所述多个测试用例分别对应的代码覆盖范围,确定所述待测试项目中未被覆盖的代码段,并基于所述未被覆盖的代码段所在文件路径和所在函数名,确定所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景;
基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,得到更新测试脑图。
根据本发明提供的一种软件测试管理方法,所述基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,具体包括:
确定所述未被覆盖的代码段是否为条件分支;
若所述未被覆盖的代码段为条件分支且与所述未被覆盖的代码段相关联的关联条件分支已被覆盖,则确定所述关联条件分支对应的功能子模块以及测试场景;
基于所述关联条件分支对应的功能子模块以及测试场景,确定所述关联条件分支在所述测试脑图中的测试参数层级;
基于所述未被覆盖的代码段对应的遗漏测试场景,以及所述关联条件分支在所述测试脑图中的测试参数层级中包含的预置条件节点、用例级别节点和操作步骤节点,在所述测试脑图中针对所述未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支。
本发明还提供一种软件测试管理装置,包括:
脑图生成单元,用于基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;
测试用例执行单元,用于执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;
问题单创建单元,用于将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软件测试管理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件测试管理方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述软件测试管理方法。
本发明提供的软件测试管理方法、装置和存储介质,基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及单元测试场景对应的测试参数构建待测试项目对应的测试脑图,生成的测试脑图具备清晰的测试架构,其中测试路径层级清晰描述了待生成的测试用例所针对的测试对象,而测试参数层级清晰描述了待生成的测试用例对应的具体测试方式,因此方便后续对测试脑图进行评估、确定是否遗漏测试场景、确定修改对象以及全面修改测试脑图等,有助于提升测试用例生成以及修改的准确性和效率,从而提高整个测试管理的准确性和效率;接下来通过执行测试脑图对应的多个测试用例,在任一测试用例的测试结果与相应预期结果不一致时,在测试脑图中该测试用例对应的测试参数层级最后新增问题描述节点,为快速定位出现问题的单元测试场景及其对应的功能子模块和功能模块提供了条件,再通过将测试脑图导出至excel文件,基于excel文件中包含问题描述信息的行创建问题单,并将问题单的单号信息填入该行中,提高了提单效率以及问题单的传递效率和准确性,进一步提升了测试管理的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的软件测试管理方法的流程示意图;
图2是本发明提供的测试脑图构建方法的流程示意图;
图3是本发明提供的异常测试用例识别方法的流程示意图;
图4是本发明提供的测试脑图补全方法的流程示意图;
图5是本发明提供的软件测试管理装置的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的软件测试管理方法的流程示意图,如图1所示,该方法包括:
步骤110,基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;
步骤120,执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;
步骤130,将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
具体地,获取待测试项目中各功能模块包含的功能子模块对应的单元测试场景,其中待测试项目中包含多个功能模块,每个功能模块对应待测试项目的一个功能,例如登录,每个功能模块还包括多个功能子模块,每个功能子模块对应该功能模块内的单一子功能,例如用户协议页、欢迎页、登录页等。功能模块以及功能子模块的划分可以基于实际待测试项目中的代码结构确定,本发明实施例对此不作具体限定。在编制测试用例时,会针对各个功能子模块确定一个或多个单元测试场景,任一功能子模块对应的单元测试场景用于描述该功能子模块运行正常时的表现,例如针对“用户协议页”,其对应的单元测试场景可以包括“标题内容显示正常”、“不同意按钮点击后离开当前页面,阅读并同一本产品《用户协议》勾选框未选中,登录按钮置灰显示”和“同意按钮点击后离开当前页面,阅读并同一本产品《用户协议》勾选框被选中,登录按钮高亮显示”。每个单元测试场景对应的测试参数中包含该单元测试场景所需的前提条件、测试步骤以及预期结果等。
基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及各个单元测试场景对应的测试参数构建该待测试项目对应的测试脑图。其中,测试脑图可以基于xmind工具构建。测试脑图中包含两个层级的节点:测试路径层级和测试参数层级。此处,测试路径层级中包括项目节点(对应待测试项目)、功能模块节点(对应待测试项目中的功能模块)、功能子模块节点(对应某一功能模块中包含的功能子模块)和单元测试场景描述节点(对应某一功能子模块对应的单元测试场景);测试参数层级包括预置条件节点(对应任一单元测试场景对应的测试参数中的预置条件,即对该单元测试场景进行测试的前提条件)、用例级别节点(对应该单元测试场景的测试优先级)、操作步骤节点(对应该单元测试场景对应的测试参数中的测试步骤)和预期结果节点(对应该单元测试场景对应的测试参数中的预期结果)。
通过上述方式生成的测试脑图具备清晰的测试架构,其中测试路径层级清晰描述了待生成的测试用例所针对的测试对象,而测试参数层级清晰描述了待生成的测试用例对应的具体测试方式,因此方便后续对测试脑图进行评估、确定是否遗漏测试场景、确定修改对象以及全面修改测试脑图等,有助于提升测试用例生成以及修改的准确性和效率,从而提高整个测试管理的准确性和效率。其中,在生成测试用例时,由于测试参数层级体现了各个单元测试场景的测试方式,由测试参数层级构成的一条子路径对应一个具体的测试用例,因此基于测试参数层级即可快速将测试脑图转换为测试用例,而与该测试参数层级处于同一路径的测试路径层级则指示了该测试用例对应的测试对象,因此可以基于测试路径层级确定该测试用例对应的测试对象的相关信息。此外,测试路径层级在待测试项目确定后处于相对稳定的状态因此可以对其进行静态管理,而测试参数层级可以随着测试需求的变化而进行灵活调整因此可以对其进行动态管理,当测试需求发生变化或者测试用例出现问题时,可以针对测试参数层级进行动态调整,减少测试脑图修改时涉及的修改范围和影响范围,从而提升测试用例修改的灵活性和准确性。
执行测试脑图对应的多个测试用例,并获取多个测试用例的测试结果。基于各个测试用例的测试结果及其对应的预期结果进行比对,在任一测试用例的测试结果与相应预期结果不一致时,在测试脑图中该测试用例对应的测试参数层级最后新增一个问题描述节点,该问题描述节点中的节点信息可以包括该测试用例的问题描述信息,例如该测试用例的实际测试结果。可见,直接对测试脑图搜索问题描述节点,即可快速定位出现问题的单元测试场景及其对应的功能子模块和功能模块。随后,将测试脑图导出至excel文件中,基于excel文件中包含问题描述信息的行创建问题单,并将该问题单的单号信息填入包含问题描述信息的行中。此处,通过读取excel文件,汇总出存在问题的行并循环进行问题单的创建,将创建的问题单号,写入到存在问题的行中,提高了提单效率以及问题单的传递效率和准确性,进一步提升了测试管理的效率。
本发明实施例提供的方法,基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及单元测试场景对应的测试参数构建待测试项目对应的测试脑图,生成的测试脑图具备清晰的测试架构,其中测试路径层级清晰描述了待生成的测试用例所针对的测试对象,而测试参数层级清晰描述了待生成的测试用例对应的具体测试方式,因此方便后续对测试脑图进行评估、确定是否遗漏测试场景、确定修改对象以及全面修改测试脑图等,有助于提升测试用例生成以及修改的准确性和效率,从而提高整个测试管理的准确性和效率;接下来通过执行测试脑图对应的多个测试用例,在任一测试用例的测试结果与相应预期结果不一致时,在测试脑图中该测试用例对应的测试参数层级最后新增问题描述节点,为快速定位出现问题的单元测试场景及其对应的功能子模块和功能模块提供了条件,再通过将测试脑图导出至excel文件,基于excel文件中包含问题描述信息的行创建问题单,并将问题单的单号信息填入该行中,提高了提单效率以及问题单的传递效率和准确性,进一步提升了测试管理的效率。
基于上述实施例,如图2所示,所述基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图,具体包括:
步骤210,依次基于待测试项目、功能模块、功能子模块以及单元测试场景的层级构建并连接项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点;
步骤220,在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点;基于所述任一功能子模块对应的单元测试场景描述节点的节点内容,构建并填充当前预期结果节点,并连接所述当前操作步骤节点和所述当前预期结果节点。
具体地,为了自动生成测试脑图以提升测试管理的效率,可以依次基于待测试项目、功能模块、功能子模块以及单元测试场景的层级构建并连接项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点。即,在构建测试路径层级的节点时,其连接次序依次是项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点。其后,在构建测试参数层级的节点时,在任一功能子模块对应的单元测试场景描述节点之后,依次基于该功能子模块对应的任一单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点。即,按照预置条件节点、用例级别节点和操作步骤节点的次序进行节点连接。随后,基于该功能子模块对应的该单元测试场景描述节点的节点内容,构建并填充当前预期结果节点,并连接当前操作步骤节点和当前预期结果节点。其中,可以直接将单元测试场景描述节点的节点内容填充至当前预期结果节点中,还可以对单元测试场景描述节点的节点内容进行语义分析,提取其中表征执行结果的语义关键词,并将该语义关键词填充至当前预期结果节点中。
基于上述任一实施例,所述在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点,具体包括:
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件分解为若干个基础条件,并获取所述若干个基础条件对应的预设基础条件节点;基于所述若干个基础条件对应的预设基础条件节点的节点地址,构建并填充当前预置条件节点,并连接所述任一功能子模块对应的单元测试场景描述节点和所述当前预置条件节点;
基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的功能核心程度,构建并填充当前用例级别节点,并连接所述当前预置条件节点和所述当前用例级别节点;
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的测试步骤分解为若干个基础步骤,并获取所述若干个基础步骤对应的预设基础步骤节点;基于所述若干个基础步骤对应的预设基础步骤节点的节点地址,构建并填充当前操作步骤节点,并连接所述当前用例级别节点和所述当前操作步骤节点。
具体地,为了降低测试脑图的修改范围和受影响范围从而降低测试脑图修改的出错概率,考虑到测试参数层级的修改频率较高,因此,在任一功能子模块对应的任一单元测试场景描述节点之后构建测试参数层级的节点时,可以将该单元测试场景描述节点对应的单元测试场景对应的测试参数中包含的预置条件分解为若干个基础条件,并获取若干个基础条件对应的预设基础条件节点。其中,基础条件可以为不可分解的最小粒度的条件,例如“系统环境运行正常”、“APP运行正常”等,而预置条件则为一个或多个基础条件的组合。基于上述分解得到的若干个基础条件对应的预设基础条件节点的节点地址,构建并填充当前预置条件节点,并连接该功能子模块对应的该单元测试场景描述节点和当前预置条件节点。此处,可以预先设定多个基础条件,分别为多个基础条件构建相应的预设基础条件节点,并保存各个预设基础条件节点的节点地址。在构建测试脑图时,可以基于某一预置条件分解得到的若干个基础条件,确定其对应的预设基础条件节点及预设基础条件节点的节点地址,从而复制和组合上述分解得到的若干个基础条件对应的预设基础条件节点,得到当前预置条件节点。其中,预置条件节点内可以仅保存其对应的预设基础条件节点的节点地址。可见,当预置条件可被分解为多个基础条件时,其对应的预置条件节点是一个由多个预设基础条件节点组合而成的复合节点。
随后,基于该单元测试场景节点对应的单元测试场景对应的测试参数中包含的功能核心程度,构建并填充当前用例级别节点,并连接当前预置条件节点和当前用例级别节点。接下来,将该单元测试场景节点对应的单元测试场景对应的测试参数中包含的测试步骤分解为若干个基础步骤。其中,基础步骤可以为不可分解的最小粒度的操作步骤,例如“点击按钮”、“勾选选项”等,而测试步骤则为一个或多个基础步骤的组合。获取上述分解而来的若干个基础步骤对应的预设基础步骤节点,基于上述若干个基础步骤对应的预设基础步骤节点的节点地址,构建并填充当前操作步骤节点,然后连接当前用例级别节点和当前操作步骤节点。此处,可以预先设定多个基础步骤,分别为多个基础步骤构建相应的预设基础步骤节点,并保存各个预设基础步骤节点的节点地址。在构建测试脑图时,可以基于某一测试步骤分解得到的若干个基础步骤,确定其对应的预设基础步骤节点及预设基础步骤节点的节点地址,从而复制和组合上述分解得到的若干个基础步骤对应的预设基础步骤节点,得到当前操作步骤节点。可见,当测试步骤可被分解为多个基础步骤时,其对应的操作步骤节点是一个由多个预设基础步骤节点组合而成的复合节点。
通过上述条件分解组合以及步骤分解组合的方式构建预置条件节点和操作步骤节点,当测试需求改变或测试用例存在问题导致需要修改测试脑图的测试参数层级时,可以有效提升修改效率,且降低了测试脑图的修改范围和受影响范围,从而降低了由于遗漏修改导致出错的概率。具体而言,当需要修改任一单元测试场景对应的测试参数中的预置条件时,只需修改其对应的预置条件节点中的预设基础条件节点,同样地,当需要修改任一单元测试场景对应的测试参数中的测试步骤时,同样只需修改其对应的操作步骤节点中的预设基础步骤节点,提升了修改效率,且修改范围和受影响范围得到了有效限缩。此外,如若某一基础条件或某一基础步骤发生改变,则可以通过修改其对应的预设基础条件节点或预设基础步骤节点,从而达到全局修改引用该基础条件或基础步骤的预置条件节点或操作步骤节点的目的,避免了遗漏修改导致测试用例出错的问题。
基于上述任一实施例,所述执行所述测试脑图对应的多个测试用例,之前还包括:
基于所述测试脑图的任一分支中包含的测试路径层级,确定当前测试对象;
基于所述任一分支中包含的测试参数层级中的用例级别节点和预期结果节点,确定当前测试对象的测试优先级和测试预期结果;
基于所述任一分支中包含的测试参数层级中的预置条件节点指向的预设基础条件节点的节点地址,获取所述预设基础条件节点的节点内容,并拼装所述预设基础条件节点的节点内容,得到所述任一分支中包含的测试参数层级中的预置条件节点的节点内容;
基于所述任一分支中包含的测试参数层级中的操作步骤节点指向的预设基础步骤节点的节点地址,获取所述预设基础步骤节点的节点内容,并拼装所述预设基础步骤节点的节点内容,得到所述任一分支中包含的测试参数层级中的操作步骤节点的节点内容;
基于所述任一分支中包含的测试参数层级中的预置条件节点和操作步骤节点的节点内容,以及当前测试对象的测试优先级和测试预期结果,生成所述任一分支对应的测试用例。
具体地,在执行测试脑图对应的多个测试用例之前,可以基于测试脑图自动生成测试用例。其中,可以基于测试脑图的任一分支中包含的测试路径层级,确定当前测试对象,即当前测试用例的测试对象是待测试项目中的哪一功能模块中的哪一功能子模块对应的哪一单元测试场景。基于该分支中包含的测试参数层级中的用例级别节点和预期结果节点,确定当前测试对象的测试优先级和测试预期结果。基于该分支中包含的测试参数层级中的预置条件节点指向的预设基础条件节点的节点地址,获取上述预设基础条件节点的节点内容,然后组合拼装上述预设基础条件节点的节点内容,得到该分支中包含的测试参数层级中的预置条件节点的节点内容,该节点内容对应着相应测试用例的预置条件。基于该分支中包含的测试参数层级中的操作步骤节点指向的预设基础步骤节点的节点地址,获取上述预设基础步骤节点的节点内容,并组合拼装上述预设基础步骤节点的节点内容,得到该分支中包含的测试参数层级中的操作步骤节点的节点内容,该节点内容对应着相应测试用例的测试步骤。基于上述获得的该分支中包含的测试参数层级中的预置条件节点和操作步骤节点的节点内容,以及当前测试对象的测试优先级和测试预期结果,生成该分支对应的测试用例。
基于上述任一实施例,如图3所示,所述执行所述测试脑图对应的多个测试用例,具体包括:
步骤310,执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例对应的执行路径信息;其中,任一测试用例对应的执行路径信息中包含所述测试用例执行过程中的调用方法名序列、输入参数和输出参数;
步骤320,将所述多个测试用例对应的执行路径信息分别输入至测试用例描述模型中,得到所述测试用例描述模型输出的所述多个测试用例对应的用例描述向量;
步骤330,基于所述多个测试用例对应的用例描述向量之间的相似度,确定所述多个测试用例中的异常测试用例,并在所述测试脑图中将所述异常测试用例对应的分支进行突出显示。
具体地,在执行测试脑图对应的多个测试用例的过程中,记录各个测试用例在执行过程中对应的执行路径信息。其中,任一测试用例对应的执行路径信息包括该测试用例执行过程中的调用方法名序列、各调用方法的输入参数和输出参数,其中调用方法名、输入参数和输出参数的顺序是依照相应方法的执行顺序确定的。可见,测试用例对应的执行路径信息体现了该测试用例在执行过程中相应代码的动态行为,该动态行为可以更好地描述该测试用例的测试行为。因此,将多个测试用例对应的执行路径信息分别输入至测试用例描述模型中,得到测试用例描述模型输出的上述多个测试用例对应的用例描述向量。其中,测试用例描述模型用于基于任一测试用例对应的执行路径信息,为该测试用例生成其对应的用例描述向量,以描述该测试用例的测试行为。
得到测试脑图对应的多个测试用例的用例描述向量后,可以计算各个测试用例的用例描述向量两两之间的相似度,以确定是否存在测试行为高度类似的冗余测试用例。具体而言,可以基于多个测试用例对应的用例描述向量之间的相似度,确定上述多个测试用例中与其他测试用例之间的相似度高于预设阈值的异常测试用例,并在测试脑图中将异常测试用例对应的分支进行突出显示,以提示测试人员该分支对应的测试用例存在高度冗余的情形,从而对测试脑图进行精简处理。
基于上述任一实施例,所述测试用例描述模型是基于预训练语言模型构建的,所述测试用例描述模型是基于以下步骤训练得到的:
获取样本项目的样本测试用例以及所述样本测试用例对应的实际测试场景;
将所述样本测试用例对应的执行路径信息输入至所述测试用例描述模型,得到所述测试用例描述模型输出的所述样本测试用例对应的用例描述向量;
基于已训练的场景分类器对所述样本测试用例对应的用例描述向量进行分类,得到所述样本测试用例对应的预测场景;
基于所述样本测试用例对应的预测场景和实际测试场景之间的一致性,对所述测试用例描述模型的参数进行调整。
具体地,测试用例描述模型可以基于预训练语言模型BERT或者专用于处理程序语言的CodeBERT构建得到。然而,由于测试用例描述模型的预期输出为测试用例对应的用例描述向量,其并非一个端到端模型,因此在训练测试用例描述模型时,为了兼顾训练可行性及其训练效果,提升测试用例描述对于测试用例对应的执行路径信息的语义提取能力以及测试用例的语义表达能力,可以基于场景分类思想对该模型进行训练。具体而言,可以获取样本项目的样本测试用例以及各个样本测试用例对应的实际测试场景。其中,任一样本测试用例对应的实际测试场景表征了该测试用例的测试用途。执行任一样本测试用例并记录其对应的执行路径信息,然后将该样本测试用例对应的执行路径信息输入至测试用例描述模型,得到测试用例描述模型输出的该样本测试用例对应的用例描述向量。随后,基于已训练的场景分类器(例如基于全连接层构建的分类器)对该样本测试用例对应的用例描述向量进行场景分类,得到该样本测试用例对应的预测场景。基于该样本测试用例对应的预测场景及其实际测试场景之间的一致性,对测试用例描述模型的参数进行调整,从而引导测试用例描述模型输出语义表达能力更强的用例描述向量。
基于上述任一实施例,如图4所示,所述执行所述测试脑图对应的多个测试用例,具体包括:
步骤410,执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例分别对应的代码覆盖范围;
步骤420,基于所述多个测试用例分别对应的代码覆盖范围,确定所述待测试项目中未被覆盖的代码段,并基于所述未被覆盖的代码段所在文件路径和所在函数名,确定所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景;
步骤430,基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,得到更新测试脑图。
具体地,为了避免遗漏测试场景,在初步生成测试脑图并执行其对应的多个测试用例之后,可以基于测试用例的执行结果对测试脑图进行补充,从而完善测试脑图所覆盖的测试场景。此处,可以在执行当前测试脑图对应的多个测试用例过程中,利用代码测试工具获取多个测试用例分别对应的代码覆盖范围。其中,任一测试用例对应的代码覆盖范围为该测试用例执行过程中所涉及的待测试项目中的源代码。基于上述多个测试用例分别对应的代码覆盖范围,确定待测试项目中未被测试用例覆盖的代码段。获取上述未被测试用例覆盖的代码段所在的文件路径和所在函数名,并据此确定上述未被覆盖的代码段对应的功能子模块以及未被覆盖的代码段对应的遗漏测试场景。其中,可以基于上述未被测试用例覆盖的代码段所在的文件路径确定其对应的功能子模块,并基于上述未被测试用例覆盖的代码段所在的函数名确定其对应的单元测试场景,作为遗漏测试场景。特殊的是,若上述未被测试用例覆盖的代码段对应一个条件分支,则可以基于该代码段对应的条件表达式和执行条件(例如满足或不满足上述条件表达式),结合该代码段所在的函数名,确定其对应的单元测试场景。
基于上述未被覆盖的代码段对应的功能子模块以及未被覆盖的代码段对应的遗漏测试场景,在测试脑图中针对上述未被覆盖的代码段对应的功能子模块新增该未被覆盖的代码段对应的遗漏测试场景的分支,得到更新测试脑图。具体而言,可以在上述未被覆盖的代码段对应的功能子模块对应的功能子模块节点之后新增一个单元测试场景描述节点,并基于该未被覆盖的代码段对应的遗漏测试场景对新增的单元测试场景描述节点进行填充,然后再在该新增的单元测试场景描述节点之后新增测试参数层级的各个节点,实现测试脑图的测试场景的补充完善。
基于上述任一实施例,所述基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,具体包括:
确定所述未被覆盖的代码段是否为条件分支;
若所述未被覆盖的代码段为条件分支且与所述未被覆盖的代码段相关联的关联条件分支已被覆盖,则确定所述关联条件分支对应的功能子模块以及测试场景;
基于所述关联条件分支对应的功能子模块以及测试场景,确定所述关联条件分支在所述测试脑图中的测试参数层级;
基于所述未被覆盖的代码段对应的遗漏测试场景,以及所述关联条件分支在所述测试脑图中的测试参数层级中包含的预置条件节点、用例级别节点和操作步骤节点,在所述测试脑图中针对所述未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支。
具体地,确定上述未被覆盖的代码段是否为条件分支,具体可以通过搜索该代码段及其上一级代码段中是否包含if、switch等条件分支关键词的方式确定该代码段是否为条件分支。若上述未被覆盖的代码段为条件分支且与该代码段相关联的关联条件分支已被覆盖,则确定该关联条件分支对应的功能子模块以及测试场景。其中,关联条件分支与该代码段可以属于同一条件表达语句的不同执行分支,还可以属于串联的多个条件表达语句(例如多个串联的ifelse语句)中的不同执行分支。因此,关联条件分支与该代码段的作用存在较大的相似性,对其进行测试时的测试方式也存在较大的相似性,故可以借鉴关联条件分支的测试方式对该代码段进行测试。
对此,若与上述未被覆盖的代码段相关联的关联条件分支已被覆盖,则可以确定该关联条件分支对应的功能子模块以及测试场景,基于该关联条件分支对应的功能子模块以及测试场景,确定该关联条件分支在测试脑图中的测试参数层级的各个节点。基于未被覆盖的代码段对应的功能子模块和遗漏测试场景构建了新的单元测试场景描述节点后,利用其关联条件分支在测试脑图中的测试参数层级中包含的预置条件节点、用例级别节点和操作步骤节点,在测试脑图中针对上述未被覆盖的代码段新增该未被覆盖的代码段对应的遗漏测试场景的分支,实现测试脑图的测试场景的自动完善。其中,新增的预置条件节点以及用例级别节点的节点内容可以直接复制其关联条件分支在测试脑图中的预置条件节点和用例级别节点的节点内容,而操作步骤节点的节点内容可以通过利用该未被覆盖的代码段对应的条件表达式和执行条件对其关联条件分支在测试脑图中的操作步骤节点的节点内容进行调整后得到。
下面对本发明提供的软件测试管理装置进行描述,下文描述的软件测试管理装置与上文描述的软件测试管理方法可相互对应参照。
基于上述任一实施例,图5是本发明提供的软件测试管理装置的结构示意图,如图5所示,该装置包括:脑图生成单元510、测试用例执行单元520和问题单创建单元530。
其中,脑图生成单元510用于基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;
测试用例执行单元520用于执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;
问题单创建单元530用于将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
本发明实施例提供的装置,基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及单元测试场景对应的测试参数构建待测试项目对应的测试脑图,生成的测试脑图具备清晰的测试架构,其中测试路径层级清晰描述了待生成的测试用例所针对的测试对象,而测试参数层级清晰描述了待生成的测试用例对应的具体测试方式,因此方便后续对测试脑图进行评估、确定是否遗漏测试场景、确定修改对象以及全面修改测试脑图等,有助于提升测试用例生成以及修改的准确性和效率,从而提高整个测试管理的准确性和效率;接下来通过执行测试脑图对应的多个测试用例,在任一测试用例的测试结果与相应预期结果不一致时,在测试脑图中该测试用例对应的测试参数层级最后新增问题描述节点,为快速定位出现问题的单元测试场景及其对应的功能子模块和功能模块提供了条件,再通过将测试脑图导出至excel文件,基于excel文件中包含问题描述信息的行创建问题单,并将问题单的单号信息填入该行中,提高了提单效率以及问题单的传递效率和准确性,进一步提升了测试管理的效率。
基于上述任一实施例,所述基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图,具体包括:
依次基于待测试项目、功能模块、功能子模块以及单元测试场景的层级构建并连接项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点;
在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点;基于所述任一功能子模块对应的单元测试场景描述节点的节点内容,构建并填充当前预期结果节点,并连接所述当前操作步骤节点和所述当前预期结果节点。
基于上述任一实施例,所述在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点,具体包括:
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件分解为若干个基础条件,并获取所述若干个基础条件对应的预设基础条件节点;基于所述若干个基础条件对应的预设基础条件节点的节点地址,构建并填充当前预置条件节点,并连接所述任一功能子模块对应的单元测试场景描述节点和所述当前预置条件节点;
基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的功能核心程度,构建并填充当前用例级别节点,并连接所述当前预置条件节点和所述当前用例级别节点;
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的测试步骤分解为若干个基础步骤,并获取所述若干个基础步骤对应的预设基础步骤节点;基于所述若干个基础步骤对应的预设基础步骤节点的节点地址,构建并填充当前操作步骤节点,并连接所述当前用例级别节点和所述当前操作步骤节点。
基于上述任一实施例,所述执行所述测试脑图对应的多个测试用例,之前还包括:
基于所述测试脑图的任一分支中包含的测试路径层级,确定当前测试对象;
基于所述任一分支中包含的测试参数层级中的用例级别节点和预期结果节点,确定当前测试对象的测试优先级和测试预期结果;
基于所述任一分支中包含的测试参数层级中的预置条件节点指向的预设基础条件节点的节点地址,获取所述预设基础条件节点的节点内容,并拼装所述预设基础条件节点的节点内容,得到所述任一分支中包含的测试参数层级中的预置条件节点的节点内容;
基于所述任一分支中包含的测试参数层级中的操作步骤节点指向的预设基础步骤节点的节点地址,获取所述预设基础步骤节点的节点内容,并拼装所述预设基础步骤节点的节点内容,得到所述任一分支中包含的测试参数层级中的操作步骤节点的节点内容;
基于所述任一分支中包含的测试参数层级中的预置条件节点和操作步骤节点的节点内容,以及当前测试对象的测试优先级和测试预期结果,生成所述任一分支对应的测试用例。
基于上述任一实施例,所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例对应的执行路径信息;其中,任一测试用例对应的执行路径信息中包含所述测试用例执行过程中的调用方法名序列、输入参数和输出参数;
将所述多个测试用例对应的执行路径信息分别输入至测试用例描述模型中,得到所述测试用例描述模型输出的所述多个测试用例对应的用例描述向量;
基于所述多个测试用例对应的用例描述向量之间的相似度,确定所述多个测试用例中的异常测试用例,并在所述测试脑图中将所述异常测试用例对应的分支进行突出显示。
基于上述任一实施例,所述测试用例描述模型是基于预训练语言模型构建的,所述测试用例描述模型是基于以下步骤训练得到的:
获取样本项目的样本测试用例以及所述样本测试用例对应的实际测试场景;
将所述样本测试用例对应的执行路径信息输入至所述测试用例描述模型,得到所述测试用例描述模型输出的所述样本测试用例对应的用例描述向量;
基于已训练的场景分类器对所述样本测试用例对应的用例描述向量进行分类,得到所述样本测试用例对应的预测场景;
基于所述样本测试用例对应的预测场景和实际测试场景之间的一致性,对所述测试用例描述模型的参数进行调整。
基于上述任一实施例,所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例分别对应的代码覆盖范围;
基于所述多个测试用例分别对应的代码覆盖范围,确定所述待测试项目中未被覆盖的代码段,并基于所述未被覆盖的代码段所在文件路径和所在函数名,确定所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景;
基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,得到更新测试脑图。
基于上述任一实施例,所述基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,具体包括:
确定所述未被覆盖的代码段是否为条件分支;
若所述未被覆盖的代码段为条件分支且与所述未被覆盖的代码段相关联的关联条件分支已被覆盖,则确定所述关联条件分支对应的功能子模块以及测试场景;
基于所述关联条件分支对应的功能子模块以及测试场景,确定所述关联条件分支在所述测试脑图中的测试参数层级;
基于所述未被覆盖的代码段对应的遗漏测试场景,以及所述关联条件分支在所述测试脑图中的测试参数层级中包含的预置条件节点、用例级别节点和操作步骤节点,在所述测试脑图中针对所述未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支。
图6是本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、存储器(memory)620、通信接口(Communications Interface)630和通信总线640,其中,处理器610,存储器620,通信接口630通过通信总线640完成相互间的通信。处理器610可以调用存储器620中的逻辑指令,以执行软件测试管理方法,该方法包括:基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
此外,上述的存储器620中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的软件测试管理方法,该方法包括:基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的软件测试管理方法,该方法包括:基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种软件测试管理方法,其特征在于,包括:
基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;
将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中;
所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例对应的执行路径信息;其中,任一测试用例对应的执行路径信息中包含所述测试用例执行过程中的调用方法名序列、输入参数和输出参数;
将所述多个测试用例对应的执行路径信息分别输入至测试用例描述模型中,得到所述测试用例描述模型输出的所述多个测试用例对应的用例描述向量;
基于所述多个测试用例对应的用例描述向量之间的相似度,确定所述多个测试用例中的异常测试用例,并在所述测试脑图中将所述异常测试用例对应的分支进行突出显示。
2.根据权利要求1所述的软件测试管理方法,其特征在于,所述基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图,具体包括:
依次基于待测试项目、功能模块、功能子模块以及单元测试场景的层级构建并连接项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点;
在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点;基于所述任一功能子模块对应的单元测试场景描述节点的节点内容,构建并填充当前预期结果节点,并连接所述当前操作步骤节点和所述当前预期结果节点。
3.根据权利要求2所述的软件测试管理方法,其特征在于,所述在任一功能子模块对应的单元测试场景描述节点之后,依次基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件、功能核心程度和测试步骤,分别构建并连接当前预置条件节点、当前用例级别节点和当前操作步骤节点,具体包括:
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的预置条件分解为若干个基础条件,并获取所述若干个基础条件对应的预设基础条件节点;基于所述若干个基础条件对应的预设基础条件节点的节点地址,构建并填充当前预置条件节点,并连接所述任一功能子模块对应的单元测试场景描述节点和所述当前预置条件节点;
基于所述任一功能子模块对应的单元测试场景对应的测试参数中包含的功能核心程度,构建并填充当前用例级别节点,并连接所述当前预置条件节点和所述当前用例级别节点;
将所述任一功能子模块对应的单元测试场景对应的测试参数中包含的测试步骤分解为若干个基础步骤,并获取所述若干个基础步骤对应的预设基础步骤节点;基于所述若干个基础步骤对应的预设基础步骤节点的节点地址,构建并填充当前操作步骤节点,并连接所述当前用例级别节点和所述当前操作步骤节点。
4.根据权利要求3所述的软件测试管理方法,其特征在于,所述执行所述测试脑图对应的多个测试用例,之前还包括:
基于所述测试脑图的任一分支中包含的测试路径层级,确定当前测试对象;
基于所述任一分支中包含的测试参数层级中的用例级别节点和预期结果节点,确定当前测试对象的测试优先级和测试预期结果;
基于所述任一分支中包含的测试参数层级中的预置条件节点指向的预设基础条件节点的节点地址,获取所述预设基础条件节点的节点内容,并拼装所述预设基础条件节点的节点内容,得到所述任一分支中包含的测试参数层级中的预置条件节点的节点内容;
基于所述任一分支中包含的测试参数层级中的操作步骤节点指向的预设基础步骤节点的节点地址,获取所述预设基础步骤节点的节点内容,并拼装所述预设基础步骤节点的节点内容,得到所述任一分支中包含的测试参数层级中的操作步骤节点的节点内容;
基于所述任一分支中包含的测试参数层级中的预置条件节点和操作步骤节点的节点内容,以及当前测试对象的测试优先级和测试预期结果,生成所述任一分支对应的测试用例。
5.根据权利要求1所述的软件测试管理方法,其特征在于,所述测试用例描述模型是基于预训练语言模型构建的,所述测试用例描述模型是基于以下步骤训练得到的:
获取样本项目的样本测试用例以及所述样本测试用例对应的实际测试场景;
将所述样本测试用例对应的执行路径信息输入至所述测试用例描述模型,得到所述测试用例描述模型输出的所述样本测试用例对应的用例描述向量;
基于已训练的场景分类器对所述样本测试用例对应的用例描述向量进行分类,得到所述样本测试用例对应的预测场景;
基于所述样本测试用例对应的预测场景和实际测试场景之间的一致性,对所述测试用例描述模型的参数进行调整。
6.根据权利要求1所述的软件测试管理方法,其特征在于,所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例分别对应的代码覆盖范围;
基于所述多个测试用例分别对应的代码覆盖范围,确定所述待测试项目中未被覆盖的代码段,并基于所述未被覆盖的代码段所在文件路径和所在函数名,确定所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景;
基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,得到更新测试脑图。
7.根据权利要求6所述的软件测试管理方法,其特征在于,所述基于所述未被覆盖的代码段对应的功能子模块以及所述未被覆盖的代码段对应的遗漏测试场景,在所述测试脑图中针对未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支,具体包括:
确定所述未被覆盖的代码段是否为条件分支;
若所述未被覆盖的代码段为条件分支且与所述未被覆盖的代码段相关联的关联条件分支已被覆盖,则确定所述关联条件分支对应的功能子模块以及测试场景;
基于所述关联条件分支对应的功能子模块以及测试场景,确定所述关联条件分支在所述测试脑图中的测试参数层级;
基于所述未被覆盖的代码段对应的遗漏测试场景,以及所述关联条件分支在所述测试脑图中的测试参数层级中包含的预置条件节点、用例级别节点和操作步骤节点,在所述测试脑图中针对所述未被覆盖的代码段对应的功能子模块新增所述未被覆盖的代码段对应的遗漏测试场景的分支。
8.一种软件测试管理装置,其特征在于,包括:
脑图生成单元,用于基于待测试项目中各功能模块包含的功能子模块对应的单元测试场景以及所述单元测试场景对应的测试参数构建所述待测试项目对应的测试脑图;其中,所述测试脑图中包含测试路径层级和测试参数层级,所述测试路径层级包括项目节点、功能模块节点、功能子模块节点和单元测试场景描述节点,所述测试参数层级包括预置条件节点、用例级别节点、操作步骤节点和预期结果节点;
测试用例执行单元,用于执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例的测试结果,且在任一测试用例的测试结果与相应预期结果不一致时,在所述测试脑图中所述任一测试用例对应的测试参数层级最后新增问题描述节点;
问题单创建单元,用于将所述测试脑图导出至excel文件,基于所述excel文件中包含问题描述信息的行创建问题单,并将所述问题单的单号信息填入所述包含问题描述信息的行中;
所述执行所述测试脑图对应的多个测试用例,具体包括:
执行所述测试脑图对应的多个测试用例,并获取所述多个测试用例对应的执行路径信息;其中,任一测试用例对应的执行路径信息中包含所述测试用例执行过程中的调用方法名序列、输入参数和输出参数;
将所述多个测试用例对应的执行路径信息分别输入至测试用例描述模型中,得到所述测试用例描述模型输出的所述多个测试用例对应的用例描述向量;
基于所述多个测试用例对应的用例描述向量之间的相似度,确定所述多个测试用例中的异常测试用例,并在所述测试脑图中将所述异常测试用例对应的分支进行突出显示。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述软件测试管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310166290.6A CN115840715B (zh) | 2023-02-27 | 2023-02-27 | 软件测试管理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310166290.6A CN115840715B (zh) | 2023-02-27 | 2023-02-27 | 软件测试管理方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115840715A CN115840715A (zh) | 2023-03-24 |
CN115840715B true CN115840715B (zh) | 2023-05-05 |
Family
ID=85580210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310166290.6A Active CN115840715B (zh) | 2023-02-27 | 2023-02-27 | 软件测试管理方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115840715B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563051A (zh) * | 2020-07-16 | 2020-08-21 | 平安国际智慧城市科技股份有限公司 | 基于爬虫的数据核验方法、装置、计算机设备及存储介质 |
CN112363920A (zh) * | 2020-11-06 | 2021-02-12 | 广州品唯软件有限公司 | 测试用例的修复方法、装置、计算机设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021997A (en) * | 1986-09-29 | 1991-06-04 | At&T Bell Laboratories | Test automation system |
CN109726125A (zh) * | 2018-12-21 | 2019-05-07 | 郑州云海信息技术有限公司 | 一种思维导图中测试用例的处理方法及装置 |
CN111158656B (zh) * | 2019-12-31 | 2023-05-02 | 中国银行股份有限公司 | 基于因果树法的测试代码生成方法及装置 |
CN111290956B (zh) * | 2020-02-17 | 2023-09-01 | 贵阳货车帮科技有限公司 | 基于脑图的测试方法、装置、电子设备及存储介质 |
CN115391220A (zh) * | 2022-09-13 | 2022-11-25 | 成都爱旗科技有限公司 | 一种测试用例生成方法、装置及设备 |
-
2023
- 2023-02-27 CN CN202310166290.6A patent/CN115840715B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563051A (zh) * | 2020-07-16 | 2020-08-21 | 平安国际智慧城市科技股份有限公司 | 基于爬虫的数据核验方法、装置、计算机设备及存储介质 |
CN112363920A (zh) * | 2020-11-06 | 2021-02-12 | 广州品唯软件有限公司 | 测试用例的修复方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115840715A (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN109189469B (zh) | 基于反射的安卓应用微服务化方法及系统 | |
CN108595342B (zh) | 单元测试方法和装置 | |
CN108829584B (zh) | 业务逻辑接口mock测试方法及系统 | |
Shihab | An exploration of challenges limiting pragmatic software defect prediction | |
US11307975B2 (en) | Machine code analysis for identifying software defects | |
CN108268373A (zh) | 自动化测试用例管理方法、装置、设备及存储介质 | |
CN111158656B (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN110569194A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
US11663113B2 (en) | Real time fault localization using combinatorial test design techniques and test case priority selection | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN114238085A (zh) | 接口测试方法、装置、计算机设备、存储介质 | |
CN115840715B (zh) | 软件测试管理方法、装置和存储介质 | |
CN117290236A (zh) | 软件测试方法、装置、计算机设备及计算机可读存储介质 | |
CN111143228A (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN116028368A (zh) | 一种接口测试方法、装置、计算机设备及计算机可读存储介质 | |
CN110147313A (zh) | 一种日志输出方法及装置 | |
CN113485919B (zh) | 测试方法、测试装置及计算机可读存储介质 | |
US9489284B2 (en) | Debugging method and computer program product | |
CN115576834A (zh) | 支撑故障还原的软件测试复用方法、系统、终端及介质 | |
CN113626342A (zh) | 一种模型在线测试方法及装置 | |
CN110659215A (zh) | 一种开放式工业app快速开发及测试验证方法 | |
CN110765020B (zh) | 基于领域知识的测试用例生成方法 | |
CN109800155B (zh) | 一种基于Probe的QTE联锁应用软件测试方法及装置 |
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 |