CN112199285A - 一种测试案例优选方法、装置及电子设备 - Google Patents
一种测试案例优选方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112199285A CN112199285A CN202011084811.6A CN202011084811A CN112199285A CN 112199285 A CN112199285 A CN 112199285A CN 202011084811 A CN202011084811 A CN 202011084811A CN 112199285 A CN112199285 A CN 112199285A
- Authority
- CN
- China
- Prior art keywords
- target
- interface
- keyword
- vector
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
Abstract
本申请公开了一种测试案例优选方法、装置及电子设备,方法包括:获得目标界面的界面要素集合,界面要素集合中包含的目标界面要素以包含多个矩阵元素的矩阵表示,且矩阵元素的值为目标界面要素对应的界面区域中相应像素点的像素值;将每个目标界面要素分别输入到预先训练完成的神经网络模型中,以得到神经网络模型输出的目标向量;神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,向量标签的每个向量元素对应于一个关键词样本;根据每个目标向量,获得关键词集合,关键词集合中的案例关键词根据目标向量中的向量元素所对应的关键词得到;至少根据关键词集合,在案例库中获得与目标界面相匹配的目标测试案例。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种测试案例优选方法、装置及电子设备。
背景技术
测试案例,又称测试用例,是软件测试的基本要素之一,用来指导软件测试人员执行测试任务。而测试案例的质量与测试人员的技能和经验密切相关。如果测试人员对被测软件不甚了解,很难在短时间内设计出有效的测试案例;即使对于有经验的测试人员,完成高质量的测试案例设计也是一项极为繁重的工作,需要大量时间、人力和物力。
目前,在对于软件界面的测试中,通常是由测试人员根据经验在案例库中选择合适的测试案例,再通过对选择的测试案例进行复用,无需重新编写测试案例,就可以实现软件界面的测试,进而提高软件界面的测试效率。
但是,测试人员选择合适的测试案例仍然存在选择效率低的技术问题,因此,亟需一种能够快速获得到所需要的测试案例的技术方案。
发明内容
有鉴于此,本申请提供一种测试案例优选方法、装置及电子设备,包括:
一种测试案例优选方法,所述方法包括:
获得待测试的目标界面的界面要素集合,所述界面要素集合中包含一个或多个目标界面要素,所述目标界面要素以包含多个矩阵元素的矩阵表示,且所述矩阵元素的值为所述目标界面要素对应的界面区域中相应像素点的像素值;
将所述界面要素集合中的每个所述目标界面要素分别输入到预先训练完成的神经网络模型中,以得到所述神经网络模型输出的每个所述目标界面要素所对应的目标向量;
其中,所述神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,所述向量标签包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值表征其对应的关键词样本是否与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到;
根据每个所述目标界面要素对应的目标向量,获得关键词集合,所述关键词集合中包含一个或多个案例关键词,所述案例关键词根据所述目标向量中的向量元素所对应的关键词得到;
至少根据所述关键词集合,在包含有一个或多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,所述目标测试案例能够至少用于对所述目标界面进行测试。
上述方法,优选的,获得待测试的目标界面的界面要素集合,包括:
获得待测试的目标界面中的一个或多个界面区域;
根据每个所述界面区域中的像素点的像素值,生成每个所述界面区域对应的目标界面要素,所述目标界面要素组成所述目标界面的界面要素集合;
按照预设的矩阵尺寸参数,对每个所述界面区域对应的目标界面要素进行矩阵转换,得到转换后的目标界面要素,以使得所述界面要素集合中的每个所述目标界面要素的矩阵尺寸与所述矩阵尺寸参数相一致。
上述方法,优选的,根据每个所述目标界面要素对应的目标向量,获得关键词集合,包括:
分别获得每个所述目标界面要素对应的目标向量中满足选取条件的目标向量元素;
获得每个所述目标向量元素对应的案例关键词,所述案例关键词组成关键词集合。
上述方法,优选的,至少根据所述关键词集合,在包含有多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,包括:
根据所述关键词集合,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值,所述关联关系值表征所述目标界面与所述测试案例样本之间的关联程度;
根据所述关联关系值,获得与所述目标界面相匹配的目标测试案例。
上述方法,优选的,根据所述关键词集合,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值,包括:
获得案例库对应的目标集合,所述目标集合中包含所述案例库中的每个测试案例所对应的所有关键词;
根据所述目标集合中的每个关键词是否属于所述关键词集合的判断结果和所述目标集合中的每个关键词是否对应于每个所述测试案例样本的判断结果,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值;
其中,所述关键词属于所述关键词集合且对应于目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的所述关联关系值增加,所述关键词不属于所述关键词集合且不对应于所述目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的关联关系值增加,所述关键词属于所述关键词集合且不对应于目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的所述关联关系值减小,所述关键词不属于所述关键词集合且对应于所述目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的关联关系值减小。
上述方法,优选的,所述神经网络模型通过以下方式训练得到:
获得多个界面要素样本,每个所述界面要素样本以包含多个样本元素的矩阵表示,且样本元素为所述界面要素样本对应的界面区域中相应像素点的像素值;
依次以所述界面要素样本为预先构建的神经网络模型的输入样本,以所述界面要素样本的向量标签为所述神经网络模型的输出样本,对所述神经网络模型进行训练;
其中,所述界面要素样本的向量标签中包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值为预设值的情况下表征其对应的关键词样本与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到。
上述方法,优选的,在对所述神经网络模型进行训练之前,所述方法还包括:
对每个所述界面要素样本中的像素值进行归一化处理。
上述方法,优选的,所述神经网络模型包含多个神经元,每个所述神经元的激励函数相同,且所述激励函数为:
在所述神经元的输入数据为大于0或等于0的情况下,所述输入数据不变;
在所述神经元的输入数据为小于0的情况下,至少对所述输入数据取绝对值。
一种测试案例优选装置,包括:
要素获得单元,用于获得待测试的目标界面的界面要素集合,所述界面要素集合中包含一个或多个目标界面要素,所述界面要素以包含多个矩阵元素的矩阵表示,且所述矩阵元素的值为所述目标界面要素对应的界面区域中相应像素点的像素值;
模型运行单元,用于将所述界面要素集合中的每个所述目标界面要素分别输入到预先训练完成的神经网络模型中,以得到所述神经网络模型输出的每个所述目标界面要素所对应的目标向量;
其中,所述神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,所述向量标签包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值表征其对应的关键词样本是否与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到;
关键词获得单元,用于根据每个所述目标界面要素对应的目标向量,获得关键词集合,所述关键词集合中包含一个或多个案例关键词,所述案例关键词根据所述目标向量中的向量元素所对应的关键词得到;
案例获得单元,用于至少根据所述关键词集合,在包含有一个或多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,所述目标测试案例能够至少用于对所述目标界面进行测试。
一种电子设备,包括:
存储器,用于存储应用程序和应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:获得待测试的目标界面的界面要素集合,所述界面要素集合中包含一个或多个目标界面要素,所述目标界面要素以包含多个矩阵元素的矩阵表示,且所述矩阵元素的值为所述目标界面要素对应的界面区域中相应像素点的像素值;将所述界面要素集合中的每个所述目标界面要素分别输入到预先训练完成的神经网络模型中,以得到所述神经网络模型输出的每个所述目标界面要素所对应的目标向量;其中,所述神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,所述向量标签包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值表征其对应的关键词样本是否与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到;根据每个所述目标界面要素对应的目标向量,获得关键词集合,所述关键词集合中包含一个或多个案例关键词,所述案例关键词根据所述目标向量中的向量元素所对应的关键词得到;至少根据所述关键词集合,在包含有一个或多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,所述目标测试案例能够至少用于对所述目标界面进行测试。
从上述技术方案可以看出,本申请公开的一种测试案例优选方法、装置及电子设备,通过对待测试界面的界面要素集合,界面要素集合中包含有目标界面中各个界面区域对应的目标界面要素,即目标界面中各个界面区域中像素点的像素值所组成的矩阵,之后将这些目标界面要素分别输入到训练完成的神经网络模型中,就可以得到每个目标界面要素所对应的目标向量,而目标向量中的各个向量元素的值能够表征其对应的关键词是否与目标界面相对应,基于此,在根据目标向量获得到由多个案例关键词组成的关键词集合之后,就可以根据关键词集合在案例库中获得到与目标界面相匹配的目标测试案例,该目标测试案例就可以复用对目标界面进行测试。可见,本申请中利用界面要素样本与测试案例样本训练出能够得到目标界面中目标界面要素对应的关键词集合的神经网络模型,由此,就可以通过目标界面的各个界面区域的像素值获得到目标界面所对应的案例关键词,进而无需人工进行测试案例的筛选,就可以基于这些案例关键词获得到与目标界面最为匹配的目标测试案例,从而提高获取测试案例的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种测试案例优选方法的流程图;
图2及图3分别为本申请实施例一提供的一种测试案例优选方法的部分流程图;
图4为本申请实施例二提供的一种测试案例优选装置的结构示意图;
图5为本申请实施例二提供的一种测试案例优选装置的另一结构示意图;
图6为本申请实施例三提供的一种电子设备的结构示意图;
图7为本申请实施例中神经网络模型的架构图;
图8为本申请实施例中卷积层的处理示意图;
图9为本申请实施例中池化层的处理示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种测试案例优选方法的实现流程图,该方法适用于能够进行数据处理的电子设备中,如计算机或服务器中,该电子设备中可以配置有需要被测试的软件或应用并展示有软件或应用的界面,或者,该电子设备能够与配置有需要被测试的软件或应用的设备进行数据交互。本申请的技术方案主要用于获得能够对软件或应用进行测试的测试用例。
具体的,本实施例中方法可以包括以下步骤:
步骤101:获得待测试的目标界面的界面要素集合。
其中,界面要素集合中包含一个或多个目标界面要素,每个目标界面要素均以包含多个矩阵元素的矩阵表示,且矩阵元素为目标界面要素对应的界面区域中相应像素点的像素值。
需要说明的是,界面区域为目标界面中的界面区域,如软件界面中的窗体控件或者对话框等区域,本实施例中可以通过对目标界面进行界面划分,以得到目标界面中的各个界面区域,进而得到每个界面区域对应的目标界面要素,而目标界面要素中的矩阵元素的值即为相应界面区域中该矩阵元素对应的像素点的像素值,也就是说,目标界面要素中的每个矩阵元素分别对应于相应界面区域中的一个像素点。
进一步的,本实施例中在得到目标界面的每个界面区域对应的目标界面要素之后,可以通过归一化算法对各个目标界面要素中的像素值进行归一化处理,以便于利用后续的神经网络模型能够在同一量级上对各个目标界面要素中的像素值进行处理。
另外,本实施例中的界面要素集合中的每个目标界面要素之间是关于矩阵尺寸是相同,例如,本实施例中每个目标界面要素均为256*256的矩阵尺寸。
步骤102:将界面要素集合中的每个目标界面要素分别输入到预先训练完成的神经网络模型中,以得到神经网络模型输出的每个目标界面要素所对应的目标向量。
其中,神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,每个界面要素样本均以包含多个样本元素的矩阵表示,且样本元素为界面要素样本对应的界面区域中相应像素点的像素值,而界面要素样本对应的界面区域为样本界面中划分出的界面区域。例如,本实施例中预先获得多个样本界面,并获得每个样本界面中各个界面区域所对应的界面要素样本。
而界面要素样本的向量标签中可以包含一个或多个向量元素,向量标签中的每个向量元素对应于一个关键词样本,由此,每个界面要素样本对应的向量标签分别对应于一个或多个关键词样本,且向量元素的值表征其对应的关键词样本是否与界面要素样本相对应,关键词样本根据测试案例样本得到。
例如,向量元素的值为1的情况下,向量元素对应的关键词样本与界面要素样本相对应,也就是说,关键词样本所对应的测试案例样本是与界面要素样本相对应的,也可以理解成:关键词样本对应的测试案例样本能够用于对界面要素样本对应的样本界面进行测试;而向量元素为0的情况下,向量元素对应的关键词样本与界面要素样本不对应,也就是说,关键词样本所对应的测试案例样本是与界面要素样本不对应的,也可以理解成:关键词样本对应的测试案例样本不能用于对界面要素样本对应的样本界面进行测试。
基于此,神经网络模型是利用样本界面的多个界面要素样本和测试案例样本所得到的关键词样本进行训练得到,而训练出的神经网络模型能够针对输入的目标界面要素输出测试案例样本所得到的各个关键词是否与目标界面要素对应的界面区域相匹配的结果。
具体的,神经网络模型输出的每个目标界面要素所对应的目标向量中包含一个或多个向量元素,目标向量中的每个向量元素分别对应于一个关键词,而目标向量中的每个向量元素的值表征其对应的关键词是否与目标界面要素对应的界面区域相对应。
需要说明的是,本实施例中的关键词或关键词样本可以为三元组,该三元组标识为(Op,In,Out),Op表示动作,In表示输入,Out表示输出,该三元组定义了一系列操作,该操作包含一组确定的输入,并给出一组确定的输出。
步骤103:根据每个目标界面要素对应的目标向量,获得关键词集合。
其中,关键词集合中包含一个或多个案例关键词,案例关键词根据目标向量中的向量元素所对应的关键词得到。
具体的,本实施例中可以对每个目标界面要素对应的目标向量中的向量元素的值进行解析,进而分别获得每个目标界面要素对应的目标向量中满足选取条件的目标向量元素,这里的选取条件可以为目标向量元素的值为预设值,之后,就可以获得每个目标向量元素对应的案例关键词,而这些案例关键词就可以组成关键词集合。
例如,本实施例中对每个目标向量中值为1的目标向量元素进行选取,进而将选取的目标向量元素对应的关键词添加到关键词集合中。
需要说明的是,本实施例中可以在将关键词添加到关键词集合的过程中,对关键词进行去重判断,例如,先判断在关键词集合中是否已经存在与要添加的关键词相同的关键词,如果已经存在,则不再添加,如果不存在,那么将要添加的关键词添加到关键词集合中;
或者,本实施例中可以在关键词集合添加完所有的关键词之后,再对关键词集合进行去重处理,例如,先筛选出关键词集合的重复关键词,再删除重复的关键词。
步骤104:至少根据关键词集合,在包含有一个或多个测试案例的案例库中获得与目标界面相匹配的目标测试案例。
其中,目标测试案例能够至少用于对目标界面进行测试。
具体的,本实施例中可以根据关键词集合在案例库中筛选与目标界面最为匹配的目标测试案例,例如,目标测试案例中具有与所述关键词集合中相同的关键词最多,或者,目标测试案例与关键词集合之间的关联程度最高,等等,由此,所得到的目标测试案例是与目标界面最为匹配的测试案例,进而可以对该目标测试案例进行复用,对目标界面进行测试,进一步的,可以对目标界面对应的软件或应用进行测试。
需要说明的是,目标测试案例可以为一个或多个,本实施例中获得到目标测试案例之后,可以直接使用,以对目标界面对应的软件或应用进行测试,或者可以对目标测试案例进行适当的修改之后,再使用,以对目标界面对应的软件或应用进行测试。
由上述方案可知,本申请实施例一提供的一种测试案例优选方法,通过对待测试界面的界面要素集合,界面要素集合中包含有目标界面中各个界面区域对应的目标界面要素,即目标界面中各个界面区域中像素点的像素值所组成的矩阵,之后将这些目标界面要素分别输入到训练完成的神经网络模型中,就可以得到每个目标界面要素所对应的目标向量,而目标向量中的各个向量元素的值能够表征其对应的关键词是否与目标界面相对应,基于此,在根据目标向量获得到由多个案例关键词组成的关键词集合之后,就可以根据关键词集合在案例库中获得到与目标界面相匹配的目标测试案例,该目标测试案例就可以复用对目标界面进行测试。可见,本申请中利用界面要素样本与测试案例样本训练出能够得到目标界面中目标界面要素对应的关键词集合的神经网络模型,由此,就可以通过目标界面的各个界面区域的像素值获得到目标界面所对应的案例关键词,进而无需人工进行测试案例的筛选,就可以基于这些案例关键词获得到与目标界面最为匹配的目标测试案例,从而提高获取测试案例的效率。
在一种实现方式中,步骤101在获得界面要素集合时,可以通过以下方式实现:
首先,本实施例中先获得待测试的目标界面中的一个或多个界面区域,具体可以先获得待测的目标界面上所有界面区域的区域坐标和尺寸,如窗体控件的屏幕坐标与尺寸,再按照区域坐标和尺寸抓取出相应的界面区域;
之后,在获得到抓取的界面区域中各像素点的像素值之后,就可以根据每个界面区域中的像素点的像素值,生成每个界面区域对应的目标界面要素,例如,在调用系统截图接口抓取屏幕之后,并根据控件窗体的坐标与尺寸获得对应界面要素中的像素值,这些界面要素作为目标界面要素组成目标界面的界面要素集合。
在另一种实现方式中,步骤101在获得界面要素集合时,也可以通过以下方式实现:
首先,截取待测试的目标界面的完整界面图像区域,以便于用户进行手动界面区域的截取操作,例如,用户可以使用图片编辑工具截取目标界面的界面区域对应的子图,比如某个按钮、文本框或者某个列表,进而得到目标界面中的每个界面区域;
之后,在接收到用户所截取的各个界面区域之后,根据界面区域中各像素点的像素值之后,就可以根据每个界面区域中的像素点的像素值,生成每个界面区域对应的目标界面要素。
进一步的,本实施例中还可以按照预设的矩阵尺寸参数,对每个界面区域对应的目标界面要素进行矩阵转换,得到转换后的目标界面要素,以使得界面要素集合中的每个目标界面要素的矩阵尺寸与矩阵尺寸参数相一致。
例如,按照预设的矩阵尺寸参数如256行和256列的参数,对行列不是256的目标界面要素进行矩阵转换,具体可以采用重采样的方式,重新获得到目标界面要素,以使得最终界面要素集合中的每个目标界面要素均为256行和256列。
在一种实现方式中,步骤104在获得与目标界面相匹配的目标测试案例时,具体可以通过以下方式实现,如图2中所示:
步骤201:根据关键词集合,分别获得目标界面与案例库中的每个测试案例样本之间的关联关系值。
其中,关联关系值表征目标界面与测试案例样本之间的关联程度。
具体的,步骤201中可以首先获得案例库对应的目标集合,以Skey表征,在目标集合中包含有案例库中的每个测试案例所对应的所有关键词,案例库中的测试案例中是包含有用于对神经网络模型进行训练的测试案例样本的,而测试案例样本可以以Ci来表征,而关键词集合可以Snew来表征;
之后,根据目标集合中的每个关键词是否属于关键词集合的判断结果和目标集合中的每个关键词是否对应于每个测试案例样本的判断结果,分别获得目标界面与案例库中的每个测试案例样本之间的关联关系值。
其中,关键词属于关键词集合且对应于目标测试案例的情况下使得目标界面与目标测试案例之间的关联关系值增加,关键词不属于关键词集合且不对应于目标测试案例的情况下使得目标界面与目标测试案例之间的关联关系值增加,关键词属于关键词集合且不对应于目标测试案例的情况下使得目标界面与目标测试案例之间的关联关系值减小,关键词不属于关键词集合且对应于目标测试案例的情况下使得目标界面与目标测试案例之间的关联关系值减小。
例如,本实施例中以公式(1)中的R来表示关联关系值:
其中,j表示Skey中第j个关键词,δi(j)表示第j个关键词是否属于关键词集合Snew,δn(j)表示第j个关键词是否对应于测试案例样本Ci,i表示第i个测试案例样本,k为正数值,根据经验设定,n为测试案例样本的数量。j∈Skey-Ci-Snew表示关键词j出现在集合Skey(步骤3.1获得)中,但不在Snew中,也不在Ci所对应的关键词集合中。
上式可以看出,如果某个关键词同时出现在Ci和Snew中,那么将增加目标界面与Ci的关联关系值,如果关键词仅出现在Ci和Snew之一中,会减小目标界面与Ci的关联关系值。如果某个关键词在Ci和Snew中都不出现,将会增加目标界面与Ci的关联关系值R,但是不如同时出现增加的多。
步骤202:根据关联关系值,获得与目标界面相匹配的目标测试案例。
其中,本实施例中可以按照关联关系值的大小对测试案例样本进行排序,进而将排序在第一个或前N个的关联关系值对应的测试案例样本作为与目标界面最为匹配的目标测试案例,N为大于或等于2的正整数。
在一种实现方式中,神经网络模型通过以下方式训练得到,如图3中所示:
步骤301:获得多个界面要素样本。
其中,每个界面要素样本以包含多个样本元素的矩阵表示,且样本元素为界面要素样本对应的界面区域中相应像素点的像素值。
需要说明的是,界面区域为样本界面中的界面区域,如窗体控件或者对话框等区域,本实施例中可以通过对样本界面进行界面划分,以得到样本界面中的各个界面区域,进而得到每个界面区域对应的界面要素样本,而界面要素样本中的样本元素的值即为相应界面区域中该样本元素对应的像素点的像素值,也就是说,界面要素样本中的每个样本元素分别对应于相应界面区域中的一个像素点。
具体的,本实施例中可以对一个或多个样本界面按照前文中获得目标界面要素的方式获得到界面要素样本,此处不再详述。
需要说明的是,本实施例中的界面要素样本之间是关于矩阵尺寸是相同,例如,本实施例中每个界面要素样本均为256*256的矩阵尺寸。
步骤302:依次以界面要素样本为预先构建的神经网络模型的输入样本,以界面要素样本的向量标签为神经网络模型的输出样本,对神经网络模型进行训练。
其中,界面要素样本的向量标签中包含一个或多个向量元素,向量标签中的每个向量元素对应于一个关键词样本,且向量元素的值为预设值的情况下表征其对应的关键词样本与界面要素样本相对应,关键词样本根据测试案例样本得到。
具体的,本实施例中利用预先构建的神经网络模型依次对每个界面要素样本进行学习预测,以得到每个界面要素样本对应的预测向量,预测向量中包含有多个预测元素,每个预测元素的值表征其对应的关键词是否与输入的界面要素样本相对应,例如,预测元素的值为1时,表征其对应的关键词与输入的界面要素样本相对应,预测元素的值为0时,表征其对应的关键词与输入的界面要素样本不对应,基于此,将预测向量与输入的界面要素样本的向量标签进行比对,并根据比对结果所表征的差异值来对神经网络模型的模型参数进行调整,以使得神经网络模型的损失函数减小,以此列推,直到损失函数收敛,训练完成。
可选的,在步骤302之前,本实施例中可以先对每个界面要素样本中的像素值进行归一化处理。例如,本实施例中可以通过归一化算法对各个界面要素样本中的像素值进行归一化处理,以便于对神经网络模型进行训练时能够在同一量级上进行。
在一种实现方式中,本实施例中的神经网络模型中可以包含多个神经元,而每个神经元的激励函数相同,且激励函数为:
在神经元的输入数据为大于0或等于0的情况下,输入数据不变;
在神经元的输入数据为小于0的情况下,至少对输入数据取绝对值,例如,在对输入数据x取绝对值之后缩小100倍。
例如,本实施例中的激励函数可以为公式(2)表示:
σ(x)=max(-0.01x,x),x∈R 公式(2)
上式等价于公式(3):
参考图4,为本申请实施例二提供的一种测试案例优选装置的结构示意图,该装置可以配置在能够进行数据处理的电子设备中,如计算机或服务器中,该电子设备中可以配置有需要被测试的软件或应用并展示有软件或应用的界面,或者,该电子设备能够与配置有需要被测试的软件或应用的设备进行数据交互。本申请的技术方案主要用于获得能够对软件或应用进行测试的测试用例。
具体的,本实施例中装置可以包括以下单元:
要素获得单元401,用于获得待测试的目标界面的界面要素集合,界面要素集合中包含一个或多个目标界面要素,界面要素以包含多个矩阵元素的矩阵表示,且矩阵元素的值为目标界面要素对应的界面区域中相应像素点的像素值;
模型运行单元402,用于将界面要素集合中的每个目标界面要素分别输入到预先训练完成的神经网络模型中,以得到神经网络模型输出的每个目标界面要素所对应的目标向量;
其中,神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,向量标签包含一个或多个向量元素,向量标签中的每个向量元素对应于一个关键词样本,且向量元素的值表征其对应的关键词样本是否与界面要素样本相对应,关键词样本根据测试案例样本得到;
关键词获得单元403,用于根据每个目标界面要素对应的目标向量,获得关键词集合,关键词集合中包含一个或多个案例关键词,案例关键词根据目标向量中的向量元素所对应的关键词得到;
案例获得单元404,用于至少根据关键词集合,在包含有一个或多个测试案例的案例库中获得与目标界面相匹配的目标测试案例,目标测试案例能够至少用于对目标界面进行测试。
由上述方案可知,本申请实施例二提供的一种测试案例优选装置,通过对待测试界面的界面要素集合,界面要素集合中包含有目标界面中各个界面区域对应的目标界面要素,即目标界面中各个界面区域中像素点的像素值所组成的矩阵,之后将这些目标界面要素分别输入到训练完成的神经网络模型中,就可以得到每个目标界面要素所对应的目标向量,而目标向量中的各个向量元素的值能够表征其对应的关键词是否与目标界面相对应,基于此,在根据目标向量获得到由多个案例关键词组成的关键词集合之后,就可以根据关键词集合在案例库中获得到与目标界面相匹配的目标测试案例,该目标测试案例就可以复用对目标界面进行测试。可见,本实施例中利用界面要素样本与测试案例样本训练出能够得到目标界面中目标界面要素对应的关键词集合的神经网络模型,由此,就可以通过目标界面的各个界面区域的像素值获得到目标界面所对应的案例关键词,进而无需人工进行测试案例的筛选,就可以基于这些案例关键词获得到与目标界面最为匹配的目标测试案例,从而提高获取测试案例的效率。
在一种实现方式中,要素获得单元401具体用于:获得待测试的目标界面中的一个或多个界面区域;根据每个所述界面区域中的像素点的像素值,生成每个所述界面区域对应的目标界面要素,所述目标界面要素组成所述目标界面的界面要素集合;按照预设的矩阵尺寸参数,对每个所述界面区域对应的目标界面要素进行矩阵转换,得到转换后的目标界面要素,以使得所述界面要素集合中的每个所述目标界面要素的矩阵尺寸与所述矩阵尺寸参数相一致。
在一种实现方式中,关键词获得单元403具体用于:分别获得每个所述目标界面要素对应的目标向量中满足选取条件的目标向量元素;获得每个所述目标向量元素对应的案例关键词,所述案例关键词组成关键词集合。
在一种实现方式中,案例获得单元404具体用于:根据所述关键词集合,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值,所述关联关系值表征所述目标界面与所述测试案例样本之间的关联程度;根据所述关联关系值,获得与所述目标界面相匹配的目标测试案例。
可选的,案例获得单元404在根据所述关键词集合,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值时,具体用于:获得案例库对应的目标集合,所述目标集合中包含所述案例库中的每个测试案例所对应的所有关键词;根据所述目标集合中的每个关键词是否属于所述关键词集合的判断结果和所述目标集合中的每个关键词是否对应于每个所述测试案例样本的判断结果,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值;其中,所述关键词属于所述关键词集合且对应于目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的所述关联关系值增加,所述关键词不属于所述关键词集合且不对应于所述目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的关联关系值增加,所述关键词属于所述关键词集合且不对应于目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的所述关联关系值减小,所述关键词不属于所述关键词集合且对应于所述目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的关联关系值减小。
在一种实现方式中,本实施例中的装置还可以包括以下结构,如图5中所示:
模型训练单元405,用于:获得多个界面要素样本,每个所述界面要素样本以包含多个样本元素的矩阵表示,且样本元素为所述界面要素样本对应的界面区域中相应像素点的像素值;依次以所述界面要素样本为预先构建的神经网络模型的输入样本,以所述界面要素样本的向量标签为所述神经网络模型的输出样本,对所述神经网络模型进行训练;其中,所述界面要素样本的向量标签中包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值为预设值的情况下表征其对应的关键词样本与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到。
可选的,模型训练单元405还用于:对每个所述界面要素样本中的像素值进行归一化处理。
在一种实现方式中,所述神经网络模型包含多个神经元,每个所述神经元的激励函数相同,且所述激励函数为:
在所述神经元的输入数据为大于0或等于0的情况下,所述输入数据不变;在所述神经元的输入数据为小于0的情况下,至少对所述输入数据取绝对值。
需要说明的是,本实施例中各单元的具体实现可以参考前文中具体实现,此处不再详述。
参考图6,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为能够进行数据处理的电子设备,如计算机或服务器等。该电子设备中可以配置有需要被测试的软件或应用并展示有软件或应用的界面,或者,该电子设备能够与配置有需要被测试的软件或应用的设备进行数据交互。本申请的技术方案主要用于获得能够对软件或应用进行测试的测试用例。
具体的,本实施例中电子设备可以包括以下结构:
存储器601,用于存储应用程序和应用程序运行所产生的数据;
处理器602,用于执行应用程序,以实现:获得待测试的目标界面的界面要素集合,界面要素集合中包含一个或多个目标界面要素,目标界面要素以包含多个矩阵元素的矩阵表示,且矩阵元素的值为目标界面要素对应的界面区域中相应像素点的像素值;将界面要素集合中的每个目标界面要素分别输入到预先训练完成的神经网络模型中,以得到神经网络模型输出的每个目标界面要素所对应的目标向量;其中,神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,向量标签包含一个或多个向量元素,向量标签中的每个向量元素对应于一个关键词样本,且向量元素的值表征其对应的关键词样本是否与界面要素样本相对应,关键词样本根据测试案例样本得到;根据每个目标界面要素对应的目标向量,获得关键词集合,关键词集合中包含一个或多个案例关键词,案例关键词根据目标向量中的向量元素所对应的关键词得到;至少根据关键词集合,在包含有一个或多个测试案例的案例库中获得与目标界面相匹配的目标测试案例,目标测试案例能够至少用于对目标界面进行测试。
由上述方案可知,本申请实施例三提供的一种电子设备,通过对待测试界面的界面要素集合,界面要素集合中包含有目标界面中各个界面区域对应的目标界面要素,即目标界面中各个界面区域中像素点的像素值所组成的矩阵,之后将这些目标界面要素分别输入到训练完成的神经网络模型中,就可以得到每个目标界面要素所对应的目标向量,而目标向量中的各个向量元素的值能够表征其对应的关键词是否与目标界面相对应,基于此,在根据目标向量获得到由多个案例关键词组成的关键词集合之后,就可以根据关键词集合在案例库中获得到与目标界面相匹配的目标测试案例,该目标测试案例就可以复用对目标界面进行测试。可见,本实施例中利用界面要素样本与测试案例样本训练出能够得到目标界面中目标界面要素对应的关键词集合的神经网络模型,由此,就可以通过目标界面的各个界面区域的像素值获得到目标界面所对应的案例关键词,进而无需人工进行测试案例的筛选,就可以基于这些案例关键词获得到与目标界面最为匹配的目标测试案例,从而提高获取测试案例的效率。
以下以具有用户界面的支付应用的测试案例的获取为例,对本申请的技术方案进行详细说明:
首先,本申请提出一种基于用户界面分析的软件测试案例优选方法,是指以已经建设完毕的测试案例数据库为基础,对新开发的软件或者软件模块的用户界面进行智能分析,提取出相应的对界面的抽象描述,再根据描述在已有案例数据库中寻找相关度最高的案例样本,并将这些案例样本反馈的方法。测试执行人员可以在反馈的高度相关的测试样本中提取最合适的案例进行复用,有助于提高测试执行效率。
具体的,本申请所提出的一种基于用户界面分析的软件测试案例优选方法,由下列步骤组成:
S1:对每条测试案例提取测试案例关键词,建立测试案例关键词库,即前文中的各个样本测试案例Ci中的关键词组成的词库;
S2:收集用户界面数据,建立用户界面要素数据库,即前文中的界面要素样本组成的数据库;
S3:建立神经网络训练样本集合,包括用户界面要素样本和测试案例关键词样本,设计神经网络模型并训练获得神经网络模型的参数,实现神经网络模型的训练;
S4:对于新的待测试的用户界面,根据S3步骤获得的神经网络参数,将待测试的用户界面的目标界面要素输入神经网络模型并获得神经网络模型输出的测试案例关键词,即关键词集合;
S5:根据S4获得的关键词集合,利用测试案例关键词库中的关键词,获得用户界面与样本测试案例之间的关系值,以便于优选出能够用于对用户界面进行测试的测试案例。
其中,步骤S1中对每条测试案例提取测试案例关键词,建立测试案例关键词库,由下列步骤组成:
S1.1:对于一条样本测试案例Ci,将其在逻辑上拆分成如下集合SCi,并满足:
(1)集合SCi中每个元素e为一个三元元组,称为关键词,标识为(Op,In,Out),Op表示动作,In表示输入,Out表示输出,该三元元组定义了一系列操作,该操作包含一组确定的输入,并给出一组确定的输出。
(2)集合SCi中每个元素e不重复,“重复”的概念定义为两个元组的Op相同,In相同。
S1.2:建立测试案例关键词库Dw。词库的逻辑形式为一个键值对(key,value),key的取值为S.1.1中定义的三元元组,value的值为某一条测试案例Ci。对于一条测试案例Ci与其对应的集合SCi中的每一个元素eij,将键值对(eij,Ci)插入词库Dw。
需要说明的是,对所有测试案例进行上述操作,建立测试案例关键词库。而对于不同的测试案例,不检查其关键词(即key)的重复性。
其中,步骤S2中收集用户界面数据,建立用户界面要素数据库,由下列步骤组成:
S2.1:对于给定的一个完整的待分析用户界面Ui,将其在逻辑上拆分成若干用户界面要素组成的集合SUi,SUi中每个要素uij表示为一个矩阵,矩阵的取值对应于该要素在用户界面上对应的某个矩阵区域的像素值。
界面要素的获取方法具有多种途径,比如:
(1)一种自动获取方法:以windows系统为例,每一个窗体控件可以看做一个界面要素,通过应用程序接口获得待测界面上所有windows窗体控件的屏幕坐标与尺寸,再调用windows的系统截图接口抓取屏幕,并根据控件窗体的坐标与尺寸获得对应要素的像素值。
(2)一种手动获取方法:截取待测用户界面的完整图像,使用图片编辑工具截取对应界面要素部分的子图,比如某个按钮、文本框或者某个列表。
S2.2建立界面要素数据库DU。定义界面要素的标准尺寸为256×256。对于每一个,如果其尺寸不是标准尺寸,按照下列方法重新采样,并将采样后的矩阵加入界面要素数据库DU。
重采样方法如下:
对于输入矩阵Mi(m行n列)和输出矩阵Mo(256行256列),分为4种情况考虑:
(1)如果m≤256,并且n≤256:
(2)如果m>256,并且n≤256:
(3)如果m≤256,并且n>256:
(4)如果m>256,并且n>256:
其中,步骤S3中建立神经网络训练样本集合,包括用户界面要素样本和测试案例关键词样本,设计神经网络模型并训练获得神经网络模型的参数,训练数据来自于步骤S2获得的界面要素数据库DU和步骤S1所得测试案例关键词库Dw。
神经网络模型也可以称为神经网络分类器,神经网络分类器可以包含若干个节点,即神经元,神经元与神经元之间的连接组成了神经网络,总体上看神经网络由输入层、输出层和隐藏层组成,与输入直接连接的所有神经元构成了输入层,与输出直接连接的所有神经元构成了输出层,其它神经元统称为隐藏层,如图7中所示。步骤S3可以由以下步骤组成:
S3.1准备训练数据
在本申请中,神经网络的输入数据来自界面要素数据库DU,每一个界面要素样本从逻辑上看是一个矩阵。神经网络的输出数据来自测试案例关键词库Dw中的关键词,具体地说,是测试案例关键词库Dw的键(key),是一个三元元组。训练样本中的每一个界面要素样本与若干个关键词样本对应。对于Dw的键(key)去重后(因为建立Dw时并没有保证key不重复),得到一个大小为K的关键词集合Skey。建立一个向量Ck,长度是K,其每一个元素取值为0或1,其中,如果第k个关键词与输入界面要素u相对应,那么Ck为1,否则Ck为0。
可选的,在将界面要素的矩阵按行展开之后,则得到一个256×256维的向量,作为神经网络的输入,并对原始输入进行归一化:
设输入数据为X,则归一化数据X*根据下面公式(4)计算:
其中,μ为原始数据X的均值,σ为原始数据X的标准差。神经网络的输出是K维向量。准备好训练数据后,开始设计神经网络,如下:
S3.2建立神经网络。其中,神经网络包括一个输入层,一个输出层,6个隐藏层,具体如下:
S3.2.1:直接与输入层邻接的,第一隐藏层的连接方式如下:从输入层第1行第1列(未展开的矩阵)的节点开始,按照行列相等的原则选取输入层参考区域,将参考区域的N2个节点映射到隐藏层的一个节点,并以单向步长d向右下方移动选取下一组输入层节点,映射到隐藏层的下一个节点,如果参考区域超出输入层图像边界,则按照步长切换到下一个行列,直至移动到输入层右下方的节点为止,上述步骤将建立一组输出节点;重复前述步骤L次,将建立L组输出节点;建立节点映射时,设置同一组内的每个节点与输入层参考区域对应位置的权重为相同值,这样做的目的是使每个隐藏层节点能够对应某种特定的局部特性。例如,对于第一隐藏层,选取N=3,d=2,L=16,即参考窗口包含3x3个输入层节点,每次移动步长是2,构建16组输出节点。
S3.2.2:与第一隐藏层邻接的,第二隐藏层的连接方式如下:第二隐藏层节点数目为第一隐藏层节点数目的一半,对于每一个第二隐藏层节点(m,n),与第一隐藏层对应位置的四个节点连接,即(2m,2n)(2m-1,2n),(2m,2n-1),(2m-1,2n-1)。第二层隐藏层的每个节点等于与其对应的第一隐藏层四个节点的最大值。
采取与S3.2.1所述的配置方式定义的隐藏层,称为卷积层,如图8中所示;采取与S3.2.2所述的配置方式定义的隐藏层,称为池化层,如图9中所示。
S3.2.3:与第二隐藏层邻接的,第三隐藏层的连接方式如下:第三隐藏层节点数目为第二隐藏层节点数目的一半,对于每一个第三隐藏层节点(m,n),与第二隐藏层对应位置的四个节点连接,即(2m,2n)(2m-1,2n),(2m,2n-1),(2m-1,2n-1)。第三层隐藏层的每个节点等于与其对应的第二隐藏层四个节点的最大值。第三隐藏层是对第二层的再一次池化。
S3.2.4:与第三隐藏层邻接的,第四隐藏层的连接方式如下:按照步骤S3.2.1构建卷积层,例如,选取N=3,d=1,L=16。
S3.2.5:与第四隐藏层邻接的,第五隐藏层的连接方式如下:第五隐藏层节点数目为第四隐藏层节点数目的一半,对于每一个第五隐藏层节点(m,n),与第四隐藏层对应位置的四个节点连接,即(2m,2n)(2m-1,2n),(2m,2n-1),(2m-1,2n-1)。第五层隐藏层的每个节点等于与其对应的第四隐藏层四个节点的最大值。第五隐藏层是对第四层的池化。
S3.2.6:与第五隐藏层邻接的,第六隐藏层设置256个节点,并且对于第五层的每一个节点,第六层的全部节点都与其相连,即全连接方式,如图7中所示。
S3.2.7:第六层隐藏层后连接神经网络的输出层,与输出层同样采取全连接方式,输出层有K个节点,每个节点对应一个关键词。
给定神经网络模型后,输入数据从输入层出发,按照神经网络模型的构建方式向后流动,如图7中箭头所示方向,直到输出层输出数据。数据流经每个神经元时,需要经历一次线性变换和一次非线性变换,其中的非线性变换函数称为神经网络的激励函数σ。不同神经元之间的线性连接权重是不同的,但每个神经元的激励函数都是相同的。以图7为例,如下公式(5)所示:
a1=w1-11x1+w1-21x2+b1-1
a2=w1-12x1+w1-22x2+b1-2
a3=w1-13x1+w1-23x2+b1-3
y1=σ(w2-11σ(a1)+w2-21σ(a2)+w2-31σ(a3))
y2=σ(w2-12σ(a1)+w2-22σ(a2)+w2-32σ(a3))
y3=σ(w2-13σ(a1)+w2-23σ(a2)+w2-33σ(a3)) 公式(5)
其中,w和b为神经网络的线性权重,σ(x)为神经网络的激励函数。
训练神经网络时,选取交叉熵函数作为度量神经网络拟合效果的代价函数,该函数定义如公式(6)中所示:
上式中,x是神经网络的输入,y是神经网络的输出值,a表示样本的真实值,n是样本数量。
其中,步骤S4中对于新的待分析的用户界面Unew,根据S3步骤获得的神经网络参数,将用户界面Unew的目标界面要素输入神经网络模型并获得神经网络输出的测试案例关键词。步骤S4可以由以下步骤组成:
S4.1:给定一个用户界面Unew,按照步骤S2所述获得一组用户界面要素集合。
S4.2:建立一个新的关键词集合Snew,集合中每个元素是一个关键词(由步骤S1.1定义),初始时这个集合为空。
S4.3:对步骤S4.1获得的用户界面要素集合中的每一个界面要素,输入步骤S3训练好的神经网络模型。
S4.4:神经网络模型输出一组向量,对应一组关键词,采用S3.1的归一化方法进行归一化,将输出为1的向量元素对应的关键词ow加入集合Snew,如果该关键词在Snew已存在,则忽略。
S4.5:重复步骤S4.3和步骤S4.4,直到每个用户界面要素都被分析过,得到一个关键词集合Snew。
步骤S5对于给定的一个用户界面Unew,根据步骤S4获得的关键词集合Snew,在测试案例关键词库中搜索,获得与用户界面对应的样本测试案例的关系值。
定义函数δi(j)表示某个关键词j是否出现在样本测试案例Ci所对应的关键词集合中,如果关键词j出现在样本测试案例Ci中,那么δi(j)为1,否则δi(j)为-1;
定义函数δn(j)表示某个关键词j是否出现在关键词集合Snew中,如果关键词j出现在Snew中,那么δn(j)为1,否则δn(j)为-1;
定义与用户界面对应的样本测试案例Ci的关系值R如公式(1)中所示。
公式(1)中可以看出,如果某个关键词同时出现在Ci和Snew中,那么将增加用户界面与Ci的关系值,如果关键词仅出现在Ci和Snew之一中,会减小用户界面与Ci的关系值。如果某个关键词在Ci和Snew中都不出现,将会增加关系值R,但是不如同时出现增加的多。
之后,根据关系值R,可以对样本测试案例进行排序,从而获得与用户界面关系值Unew最大的前若干条案例,作为复用案例的候选值。测试人员可以据此候选值对复用案例加以采纳或者修改。
可见,在软件测试工作中,测试案例复用能够显著提高软件测试执行效率。测试案例复用时,涉及到对已有案例数据库的检索。本申请提供了一种从被测软件用户界面入手优选测试案例的方法,通过测试案例关键词建立测试案例的索引,通过神经网络算法建立用户界面到测试案例关键词的映射模型,从而实现了由用户界面到测试案例的映射关系。通过此映射关系,方法自动计算数据库中的样本案例与用户界面关系,并根据关联程度优选测试案例,测试人员不需要在庞大的案例数据库中逐一检索,提高了案例编写的效率。更进一步的,在某些适用场合,本方法提供了一种不需要需求分析即可提供测试案例的方法,减少了软件需求分析的工作量,总结如下:
步骤S1中,建立测试案例关键词库,提供了测试案例数字化描述,相比于常见的文字描述,有助于测试案例标准化和测试的自动化执行;
步骤S2中,将用户界面拆分成用户界面要素,将用户界面抽象化,为建立用户界面与测试案例的联系打下基础;
步骤S3中,通过设计多层神经网络模型,是神经网络能够对不同类别的用户界面要素进行建模。与常见的图像识别神经网络模型或者文字识别神经网络不同的是,本方法所涉及的界面要素,既包含文字,又包含某些图形,因此需要对神经网络优化,让神经网络的不同层次处理特定类型的界面特征。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种测试案例优选方法,其特征在于,所述方法包括:
获得待测试的目标界面的界面要素集合,所述界面要素集合中包含一个或多个目标界面要素,所述目标界面要素以包含多个矩阵元素的矩阵表示,且所述矩阵元素的值为所述目标界面要素对应的界面区域中相应像素点的像素值;
将所述界面要素集合中的每个所述目标界面要素分别输入到预先训练完成的神经网络模型中,以得到所述神经网络模型输出的每个所述目标界面要素所对应的目标向量;
其中,所述神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,所述向量标签包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值表征其对应的关键词样本是否与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到;
根据每个所述目标界面要素对应的目标向量,获得关键词集合,所述关键词集合中包含一个或多个案例关键词,所述案例关键词根据所述目标向量中的向量元素所对应的关键词得到;
至少根据所述关键词集合,在包含有一个或多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,所述目标测试案例能够至少用于对所述目标界面进行测试。
2.根据权利要求1所述的方法,其特征在于,获得待测试的目标界面的界面要素集合,包括:
获得待测试的目标界面中的一个或多个界面区域;
根据每个所述界面区域中的像素点的像素值,生成每个所述界面区域对应的目标界面要素,所述目标界面要素组成所述目标界面的界面要素集合;
按照预设的矩阵尺寸参数,对每个所述界面区域对应的目标界面要素进行矩阵转换,得到转换后的目标界面要素,以使得所述界面要素集合中的每个所述目标界面要素的矩阵尺寸与所述矩阵尺寸参数相一致。
3.根据权利要求1所述的方法,其特征在于,根据每个所述目标界面要素对应的目标向量,获得关键词集合,包括:
分别获得每个所述目标界面要素对应的目标向量中满足选取条件的目标向量元素;
获得每个所述目标向量元素对应的案例关键词,所述案例关键词组成关键词集合。
4.根据权利要求1所述的方法,其特征在于,至少根据所述关键词集合,在包含有多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,包括:
根据所述关键词集合,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值,所述关联关系值表征所述目标界面与所述测试案例样本之间的关联程度;
根据所述关联关系值,获得与所述目标界面相匹配的目标测试案例。
5.根据权利要求4所述的方法,其特征在于,根据所述关键词集合,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值,包括:
获得案例库对应的目标集合,所述目标集合中包含所述案例库中的每个测试案例所对应的所有关键词;
根据所述目标集合中的每个关键词是否属于所述关键词集合的判断结果和所述目标集合中的每个关键词是否对应于每个所述测试案例样本的判断结果,分别获得所述目标界面与案例库中的每个测试案例样本之间的关联关系值;
其中,所述关键词属于所述关键词集合且对应于目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的所述关联关系值增加,所述关键词不属于所述关键词集合且不对应于所述目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的关联关系值增加,所述关键词属于所述关键词集合且不对应于目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的所述关联关系值减小,所述关键词不属于所述关键词集合且对应于所述目标测试案例的情况下使得所述目标界面与所述目标测试案例之间的关联关系值减小。
6.根据权利要求1所述的方法,其特征在于,所述神经网络模型通过以下方式训练得到:
获得多个界面要素样本,每个所述界面要素样本以包含多个样本元素的矩阵表示,且样本元素为所述界面要素样本对应的界面区域中相应像素点的像素值;
依次以所述界面要素样本为预先构建的神经网络模型的输入样本,以所述界面要素样本的向量标签为所述神经网络模型的输出样本,对所述神经网络模型进行训练;
其中,所述界面要素样本的向量标签中包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值为预设值的情况下表征其对应的关键词样本与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到。
7.根据权利要求6所述的方法,其特征在于,在对所述神经网络模型进行训练之前,所述方法还包括:
对每个所述界面要素样本中的像素值进行归一化处理。
8.根据权利要求1所述的方法,其特征在于,所述神经网络模型包含多个神经元,每个所述神经元的激励函数相同,且所述激励函数为:
在所述神经元的输入数据为大于0或等于0的情况下,所述输入数据不变;
在所述神经元的输入数据为小于0的情况下,至少对所述输入数据取绝对值。
9.一种测试案例优选装置,其特征在于,包括:
要素获得单元,用于获得待测试的目标界面的界面要素集合,所述界面要素集合中包含一个或多个目标界面要素,所述界面要素以包含多个矩阵元素的矩阵表示,且所述矩阵元素的值为所述目标界面要素对应的界面区域中相应像素点的像素值;
模型运行单元,用于将所述界面要素集合中的每个所述目标界面要素分别输入到预先训练完成的神经网络模型中,以得到所述神经网络模型输出的每个所述目标界面要素所对应的目标向量;
其中,所述神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,所述向量标签包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值表征其对应的关键词样本是否与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到;
关键词获得单元,用于根据每个所述目标界面要素对应的目标向量,获得关键词集合,所述关键词集合中包含一个或多个案例关键词,所述案例关键词根据所述目标向量中的向量元素所对应的关键词得到;
案例获得单元,用于至少根据所述关键词集合,在包含有一个或多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,所述目标测试案例能够至少用于对所述目标界面进行测试。
10.一种电子设备,其特征在于,包括:
存储器,用于存储应用程序和应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:获得待测试的目标界面的界面要素集合,所述界面要素集合中包含一个或多个目标界面要素,所述目标界面要素以包含多个矩阵元素的矩阵表示,且所述矩阵元素的值为所述目标界面要素对应的界面区域中相应像素点的像素值;将所述界面要素集合中的每个所述目标界面要素分别输入到预先训练完成的神经网络模型中,以得到所述神经网络模型输出的每个所述目标界面要素所对应的目标向量;其中,所述神经网络模型为利用多个具有向量标签的界面要素样本进行训练得到,所述向量标签包含一个或多个向量元素,所述向量标签中的每个向量元素对应于一个关键词样本,且所述向量元素的值表征其对应的关键词样本是否与所述界面要素样本相对应,所述关键词样本根据测试案例样本得到;根据每个所述目标界面要素对应的目标向量,获得关键词集合,所述关键词集合中包含一个或多个案例关键词,所述案例关键词根据所述目标向量中的向量元素所对应的关键词得到;至少根据所述关键词集合,在包含有一个或多个测试案例的案例库中获得与所述目标界面相匹配的目标测试案例,所述目标测试案例能够至少用于对所述目标界面进行测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011084811.6A CN112199285B (zh) | 2020-10-12 | 2020-10-12 | 一种测试案例优选方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011084811.6A CN112199285B (zh) | 2020-10-12 | 2020-10-12 | 一种测试案例优选方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199285A true CN112199285A (zh) | 2021-01-08 |
CN112199285B CN112199285B (zh) | 2023-08-01 |
Family
ID=74013806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011084811.6A Active CN112199285B (zh) | 2020-10-12 | 2020-10-12 | 一种测试案例优选方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199285B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342683A (zh) * | 2021-06-29 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 一种测试案例处理方法、装置、平台及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070279701A1 (en) * | 2006-05-30 | 2007-12-06 | Microsoft Corporation | Automatic Test Case For Graphics Design Application |
US20130097586A1 (en) * | 2011-10-17 | 2013-04-18 | International Business Machines Corporation | System and Method For Automating Test Automation |
US20160179659A1 (en) * | 2014-12-17 | 2016-06-23 | International Business Machines Corporation | Techniques for automatically generating testcases |
US20170192638A1 (en) * | 2016-01-05 | 2017-07-06 | Sentient Technologies (Barbados) Limited | Machine learning based webinterface production and deployment system |
CN107957957A (zh) * | 2017-12-28 | 2018-04-24 | 网易(杭州)网络有限公司 | 测试用例的获取方法和装置 |
CN110221969A (zh) * | 2019-05-21 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 一种页面功能测试方法及相关装置 |
CN111078564A (zh) * | 2019-12-18 | 2020-04-28 | 广州品唯软件有限公司 | 一种ui测试用例管理方法、装置、计算机设备以及计算机可读存储介质 |
CN111708703A (zh) * | 2020-06-18 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 测试案例集生成方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-10-12 CN CN202011084811.6A patent/CN112199285B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070279701A1 (en) * | 2006-05-30 | 2007-12-06 | Microsoft Corporation | Automatic Test Case For Graphics Design Application |
US20130097586A1 (en) * | 2011-10-17 | 2013-04-18 | International Business Machines Corporation | System and Method For Automating Test Automation |
US20160179659A1 (en) * | 2014-12-17 | 2016-06-23 | International Business Machines Corporation | Techniques for automatically generating testcases |
US20170192638A1 (en) * | 2016-01-05 | 2017-07-06 | Sentient Technologies (Barbados) Limited | Machine learning based webinterface production and deployment system |
CN107957957A (zh) * | 2017-12-28 | 2018-04-24 | 网易(杭州)网络有限公司 | 测试用例的获取方法和装置 |
CN110221969A (zh) * | 2019-05-21 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 一种页面功能测试方法及相关装置 |
CN111078564A (zh) * | 2019-12-18 | 2020-04-28 | 广州品唯软件有限公司 | 一种ui测试用例管理方法、装置、计算机设备以及计算机可读存储介质 |
CN111708703A (zh) * | 2020-06-18 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 测试案例集生成方法、装置、设备及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342683A (zh) * | 2021-06-29 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 一种测试案例处理方法、装置、平台及存储介质 |
CN113342683B (zh) * | 2021-06-29 | 2024-04-09 | 深圳前海微众银行股份有限公司 | 一种测试案例处理方法、装置、平台及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112199285B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109919685B (zh) | 客户流失预测方法、装置、设备及计算机可读存储介质 | |
EP4016375A1 (en) | Video classification method, device and system | |
CN112597038B (zh) | 软件缺陷预测方法及系统 | |
CN110019843A (zh) | 知识图谱的处理方法及装置 | |
CN109766465A (zh) | 一种基于机器学习的图文融合图书推荐方法 | |
CN110442523B (zh) | 一种跨项目软件缺陷预测方法 | |
CN111008693A (zh) | 一种基于数据压缩的网络模型构建方法、系统和介质 | |
CN111275172A (zh) | 一种基于搜索空间优化的前馈神经网络结构搜索方法 | |
CN110046279A (zh) | 视频文件特征的预测方法、介质、装置和计算设备 | |
Mousa et al. | School student’s performance prediction using data mining classification | |
CN110968664A (zh) | 一种文书检索方法、装置、设备及介质 | |
CN112199285B (zh) | 一种测试案例优选方法、装置及电子设备 | |
CN112364852B (zh) | 融合全局信息的动作视频段提取方法 | |
CN113066528B (zh) | 基于主动半监督图神经网络的蛋白质分类方法 | |
CN114494756A (zh) | 一种基于Shape-GIoU改进的聚类算法 | |
CN111666748B (zh) | 一种自动化分类器的构造方法以及识别决策的方法 | |
CN111860601A (zh) | 预测大型真菌种类的方法及装置 | |
CN108830302B (zh) | 一种图像分类方法、训练方法、分类预测方法及相关装置 | |
CN116304155A (zh) | 基于二维图片的三维构件检索方法、装置、设备及介质 | |
CN113010687B (zh) | 一种习题标签预测方法、装置、存储介质以及计算机设备 | |
CN115099344A (zh) | 模型训练方法和装置、用户画像生成方法和装置、设备 | |
CN114254199A (zh) | 基于二分图投影和node2vec的课程推荐方法 | |
CN113987126A (zh) | 基于知识图谱的检索方法及装置 | |
CN113360648A (zh) | 基于相关性图学习的案由分类方法及系统 | |
CN110689158B (zh) | 一种对目的地进行预测的方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |