CN116719714A - 一种测试用例的筛选模型的训练方法及相应的装置 - Google Patents

一种测试用例的筛选模型的训练方法及相应的装置 Download PDF

Info

Publication number
CN116719714A
CN116719714A CN202310514967.0A CN202310514967A CN116719714A CN 116719714 A CN116719714 A CN 116719714A CN 202310514967 A CN202310514967 A CN 202310514967A CN 116719714 A CN116719714 A CN 116719714A
Authority
CN
China
Prior art keywords
value
test case
test
training
weight
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
Application number
CN202310514967.0A
Other languages
English (en)
Inventor
吴振威
丁翔峰
余军
董少校
王舟
万国
邓鹏�
董强
徐乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Fiberhome Technical Services Co Ltd
Original Assignee
Wuhan Fiberhome Technical Services Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Fiberhome Technical Services Co Ltd filed Critical Wuhan Fiberhome Technical Services Co Ltd
Priority to CN202310514967.0A priority Critical patent/CN116719714A/zh
Publication of CN116719714A publication Critical patent/CN116719714A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及软件测试技术领域,提供了一种测试用例的筛选模型的训练方法及相应的装置。其中,训练方法包括获取多个测试用例以及相应测试用例的权重影响因素,将所述测试用例的有效信息以及权重影响因素进行特征编码,得到相应测试用例的原始特征向量;再根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量;最后根据所述目标特征向量对筛选模型进行训练。本发明通过对测试用例的权重影响因素动态调整测试用例,逐步优化从而得到更优的测试用例集合,提高训练的筛选模型的训练效果;通过对测试用例进行筛选后使用更高质量的测试用例作为训练数据,减少训练数据的规模,缩短训练时间,降低训练成本。

Description

一种测试用例的筛选模型的训练方法及相应的装置
技术领域
本发明涉及软件测试技术领域,特别是涉及一种测试用例的筛选模型的训练方法及相应的装置。
背景技术
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验待检测软件系统是否满足规定的需求或确定预期运行结果与实际运行结果之间的差别。测试用例筛选是软件测试中的重要研究课题之一,随着软件系统的需求不断增加,经过不同项目产品开发过程积累,通用测试用例库的数量往往非常庞大,测试人员需要通过对测试用例进行筛选,从而确定最具代表性的测试用例,以保证测试效率、测试覆盖率和效果。现有的测试用例筛选方法往往依赖人工经验和大量时间,存在主观性和局限性且效率较低。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是提供一种测试用例的筛选模型的训练方法及相应的装置,能够利用测试用例的权重影响因素和有效信息筛选测试用例实现构建测试用例的筛选模型,自动识别筛选出最具代表性的测试用例,用于减少测试用例集的规模,缩短测试时间,降低测试人力物力成本,保证并提高测试质量和测试覆盖度。
本发明采用如下技术方案:
第一方面,本发明提供了一种测试用例的筛选模型的训练方法,包括:
获取多个测试用例以及相应测试用例的权重影响因素,将所述测试用例的有效信息以及权重影响因素进行特征编码,得到相应测试用例的原始特征向量;
根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量;
根据所述目标特征向量对筛选模型进行训练。
进一步地,所述权重影响因素包括所述测试用例的历史执行结果、重要程度和执行频率中的一种或者多种;
所述根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量包括:
如果所述历史执行结果为通过,调小所述历史执行结果的特征值;如果所述历史执行结果为失败,调大所述历史执行结果的特征值;和/或,
如果所述重要程度低于设定阈值,调小所述重要程度的特征值;如果所述测试用例的重要程度不低于设定阈值,调大所述重要程度的特征值;和/或,
如果所述执行频率低于设定阈值,调小所述测试用例的执行频率的特征值;如果所述测试用例的执行频率不低于设定阈值,调大所述测试用例的执行频率的特征值。
进一步地,所述权重影响因素包括历史执行结果、测试用例的重要程度和测试用例的执行频率;
所述根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量包括:
为所述历史执行结果设置第一权重值、为所述重要程度设置第二权重值,为所述执行频率设置第三权重值;
根据所述重要程度所对应的等级对该重要程度设定重要性等效值,根据所述执行频率所对应的次数为该执行频率设定频率等效值;
当所述历史执行结果为通过时,所述历史执行结果的结果等效值为0;当所述历史执行结果为失败时,所述历史执行结果的结果等效值为1;
根据所述历史执行结果等效值与第一权重值、所述重要性等效值与所述第二权重值以及所述执行频率等效值与所述第三权重值进行加权求和计算,得到调节等效值;
如果所述调节等效值大于设定阈值,获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调大所述权重影响因素的特征值;
如果所述调节等效值不大于设定阈值,获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调小所述权重影响因素的特征值。
进一步地,所述有效信息包括:输入数据、期望输出、测试目的、执行时间、异常情况、代码覆盖率、测试场景中的一种或者多种;
所述将所述测试用例的有效信息以及权重影响因素进行特征编码,得到相应测试用例的原始特征向量包括:
根据所述有效信息的类型,将所述有效信息转换成数值化的特征;
将所述权重影响因素转换成数值化的特征;
将每个特征作为特征向量的一个维度,得到一个n维的原始特征向量,其中,n为特征数量。
进一步地,所述根据所述有效信息的类型,将所述有效信息转换成数值化的特征包括:
对于离散型的特征,将特征转化为0或1的形式;
对于连续型的特征,使用数值型编码,将其转化为输入中所有元素的平均值。
进一步地,所述训练方法还包括:
根据所述目标特征向量,对测试用例进行聚类得到多个类簇;
从每个类簇选择代表性的测试用例作为训练数据,以通过该训练数据所对应的目标特征向量对所述筛选模型进行训练。
进一步地,所述根据所述目标特征向量,对测试用例进行聚类得到多个类簇包括:
根据目标特征向量和各类簇的划分前中心点,将各测试用例划分至各类簇;
每进行一次划分,根据上一次划分的结果,重新计算各类簇的划分后中心点,若存在至少一个类簇的划分后中心点与划分前中心点之间的变化大于预设值,则进行下一次划分,直至每一类簇的划分后中心点与对应划分前中心点之间的变化不大于预设值;
其中,以上一次的划分后中心点作为下一次的划分前中心点,在进行第一次划分时,按照预设规则,建立预设数量的类簇,并确定各类簇的划分前中心点。
进一步地,所述从每个类簇选择代表性的测试用例作为训练数据包括:
选取距离该簇中心最近的测试用例作为训练数据;或,
选取该簇中的平均测试用例作为训练数据。
进一步地,所述根据所述目标特征向量对筛选模型进行训练包括:
对于目标特征向量的每个特征,统计在每个类别下它出现的次数,得到条件概率P(xj|yi),通过训练集数据统计每个类别出现的次数,得到先验概率P(yi);
根据所述条件概率P(xj|yi)和所述先验概率P(yi),得到测试用例属于不同类别y1,y2…,ym的后验概率P(yi|x1,x2…,xd);
其中,P(xj)为固定值,x1,x2,…,xd为d个测试用例,yi为类别。
第二方面,本发明还提供了一种测试用例的筛选模型筛选模型的训练装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的筛选模型的训练方法。
第三方面,本发明还提供了一种测试用例筛选装置,用于实现第一方面所述的测试用例筛选方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的测试用例筛选方法。
第四方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的测试用例筛选方法。
区别于现有技术,本发明实施例至少具有以下有益效果:
本发明通过对测试用例的权重影响因素动态调整测试用例的特征向量,逐步优化权重影响因素的特征值和测试用例的选择过程,从而得到更优的测试用例集合,提高训练的筛选模型的训练效果;通过对测试用例进行筛选,以使用更高质量的测试用例作为训练数据,减少筛选模型的训练数据的规模,缩短训练时间,降低训练成本。可以筛选出最具代表性的测试用例,排除不重要的测试用例,使测试用例的筛选不再需要人工经验和大量时间,提高了软件测试的测试效率和测试质量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提出的一种测试用例的筛选模型的训练方法的流程示意图;
图2a是本发明实施例提出的第一种根据权重影响因素对权重调节的流程示意图;
图2b是本发明实施例提出的第二种根据权重影响因素对权重调节的流程示意图;
图2c是本发明实施例提出的第三种根据权重影响因素对权重调节的流程示意图;
图3是本发明实施例步骤10的具体流程示意图;
图4是本发明实施例的聚类方法的流程示意图;
图5是本发明实施例步骤30的具体流程示意图;
图6是本发明实施例提出的另一种根据权重影响因素对权重调节的流程示意图;
图7是本发明实施例提供的一种测试用例的筛选模型的训练模型的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
本发明中术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例的方法是利用测试用例的有效信息和权重影响因素对测试用例进行筛选,实现构建并训练筛选模型的目的,然后用训练好的筛选模型对测试用例进行筛选,本实施例主要阐述如何进行训练以得到所需要的模型。
本发明实施例能够从大量测试用例中筛选出最具代表性的测试用例,以保证测试效率、测试覆盖率和效果,通过筛选模型自动识别,无需人工经验和大量时间,解决了软件测试用例筛选中存在主观性和局限性且效率较低的问题。
如图1所示,本实施例提供了一种测试用例的筛选模型的训练方法,所述训练方法包括:
步骤10:获取多个测试用例以及相应测试用例的权重影响因素,将所述测试用例的有效信息以及权重影响因素进行特征编码,得到相应测试用例的原始特征向量。
收集与给定问题相关的多个测试用例及测试用例的权重影响因素,选择其中能够围绕给定问题进行软件测试的测试用例的有效信息作为特征,并对有效信息中的各类型数据和权重影响因素进行数据处理,转化为数值型的特征向量,得到与给定问题相关的相应多个测试用例的原始特征向量。
其中,所述权重影响因素包括所述测试用例的历史执行结果、重要程度和执行频率中的一种或者多种。所述有效信息包括:输入数据、期望输出、测试目的、执行时间、异常情况、代码覆盖率、测试场景中的一种或者多种。
关于如何将权重影响因素和有效信息转换成向量,如何根据权重影响因素调节相应的特征值,详见下文描述。
步骤20:根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量。
对测试用例的原始特征向量进行调节,在本实施例中,单独考虑每个权重影响因素对特征值的调节,分别设计调节方案,得到调节后的目标特征向量。再对测试用例进行聚类得到多个类簇后,选择每个类簇中代表性的测试用例作为筛选模型的训练数据,使用优选的测试用例作为训练数据用于后续筛选模型的训练,能够得到效果更好的筛选模型、提高筛选模型训练的效率。
其中,权重影响因素不同时,调节的方式存在差异,具体详见下文描述。
在本实施例中,将更改特征值后的特征向量与其它特征向量集合在一起,重新训练朴素贝叶斯分类器,重新获取测试用例出现的概率,以更准确地预测测试用例的分类。
步骤30:根据所述目标特征向量对筛选模型进行训练。
对于每个目标特征向量,通过计算条件概率和先验概率得到后验概率,从而确定目标特征向量的测试用例所属的类别。
为了更好的阐述本发明的训练方法,接下来对本发明实施例的筛选模型的训练方法的步骤20做进一步的细化,具体而言,本发明的所述权重影响因素包括所述测试用例的历史执行结果、重要程度和执行频率中的一种或者多种。
所述根据所述权重影响因素,单独考虑每个权重影响因素对权重的调节,分别设计调节方案,如图2所示,调节所述原始特征向量中相应的特征值,以得到目标特征向量包括:
调节方式一:当权重影响因素为历史执行结果时,如果所述历史执行结果为通过,调小所述历史执行结果的特征值;如果所述历史执行结果为失败,调大所述历史执行结果的特征值。
将测试用例的历史执行结果作为特征,对于执行结果为通过的测试用例,调小该测试用例的原始特征向量中相应的历史执行结果的特征值,以降低该测试用例的历史执行结果特征值在筛选模型中的权重,减小该测试用例对筛选模型训练的影响;对于执行结果为失败的测试用例,调大该测试用例的原始特征向量中相应的历史执行结果的特征值,以提高该测试用例的历史执行结果特征值在筛选模型中的权重,放大该测试用例对筛选模型训练的影响。通过对原始特征向量中历史执行结果这个权重影响因素的特征值的数值大小进行调节,得到该测试用例的目标特征向量,使得筛选模型能够更加准确地识别出根据历史执行结果得到的最具代表性的测试用例。
例如,在待测试场景为登录功能的测试用例集中包含了20个测试用例。在训练时,10个测试用例执行通过,另外10个测试用例执行失败。则根据历史执行结果将执行通过的测试用例的原始特征向量中历史执行结果这一特征值调节为0.5,将执行失败的测试用例的原始特征向量中历史执行结果这一特征值调节为1.5。
在实际应用中,需要根据具体情况进行调节,确定每个权重影响因素对各个权重的调节策略,例如,一组测试用例的原始特征向量为:测试用例1:[1,0,1,1],每个数值型特征向量的最后一个特征值表示历史测试结果是通过还是失败,测试结果是通过则该特征向量的最后一个特征值为1,测试结果是失败则该特征向量的最后一个特征值为0,则测试用例1的所述历史执行结果为通过,把表示所述历史执行结果的特征值调小至0.5,也就是测试用例1的目标特征向量为[1,0,1,0.5],再重新作为训练集数据训练本发明实施例的筛选模型。权重调节的幅度需要适度,过度调节会影响本发明实施例筛选模型的性能和稳定性。
调节方式二:当权重影响因素为重要程度时,如果所述重要程度低于设定阈值,调小所述重要程度的特征值;如果所述测试用例的重要程度不低于设定阈值,调大所述重要程度的特征值。
将测试用例的重要程度作为特征,对于重要程度低于设定阈值的测试用例,调小该测试用例的原始特征向量中相应的重要程度的特征值,以降低该测试用例的重要程度的特征值在筛选模型中的权重,减小该测试用例对筛选模型训练的影响;对于重要程度不低于设定阈值的测试用例,调大该测试用例的原始特征向量中相应的重要程度的特征值,以提高该测试用例的重要程度的特征值在筛选模型中的权重,放大该测试用例对筛选模型训练的影响。通过对原始特征向量中重要程度这个权重影响因素的特征值的数值大小进行调节,得到该测试用例的目标特征向量,使得筛选模型能够更加准确地识别出根据重要程度得到的最具代表性的测试用例。
当权重影响因素为重要程度时,对原始特征向量的调节方式与权重影响因素为与历史执行结果时一样,差别仅在于特征值对应的特征不一样,都是调整原始特征向量中对应的特征值的数值大小,即调整原始特征向量中重要程度对应的特征值的大小。
调节方式三:当权重影响因素为执行频率时,如果所述执行频率低于设定阈值,调小所述测试用例的执行频率的特征值;如果所述测试用例的执行频率不低于设定阈值,调大所述测试用例的执行频率的特征值。
将测试用例的执行频率作为特征,对于执行频率低于设定阈值的测试用例,调小该测试用例的原始特征向量中相应的执行频率的特征值,以降低该测试用例的执行频率的特征值在筛选模型中的权重,减小该测试用例对筛选模型训练的影响;对于执行频率不低于设定阈值的测试用例,调大该测试用例的原始特征向量中相应的执行频率的特征值,以提高该测试用例的执行频率的特征值在筛选模型中的权重,放大该测试用例对筛选模型训练的影响。通过对原始特征向量中执行频率这个权重影响因素的特征值的数值大小进行调节,得到该测试用例的目标特征向量,使得筛选模型能够更加准确地识别出根据执行频率得到的最具代表性的测试用例。
当权重影响因素为执行频率时,对原始特征向量的调节方式与权重影响因素为与历史执行结果时一样,差别仅在于特征值对应的特征不一样,都是调整原始特征向量中对应的特征值的数值大小,即调整原始特征向量中执行频率对应的特征值的大小。
根据各权重影响因素调节权重对应的特征值时,使用不同的特征值执行测试用例,根据测试用例的执行情况,修正权重对应的特征值并创建新的测试用例权重列表,反复执行上述操作,迭代优化权重对应的特征值和测试用例的选择过程,从而得到质量更高的训练数据,使得训练出的筛选模型效果更好。
调节权重后重新训练分类器,将调节权重后的测试用例加入筛选模型的训练数据进行增量训练,重新获取测试用例出现的概率,以更准确地预测测试用例的分类。
在本实施例中,由于所述权重影响因素包括历史执行结果、测试用例的重要程度和测试用例的执行频率中的一种或者多种,可以单独考虑每个权重影响因素对相应的特征值进行调节,分别设计调节方案,便于增减根据给定问题选择权重影响因素,提高本实施例的筛选模型的训练方法在实际软件测试场景中对不同给定问题的普适性。或者,也可以根据需要综合考虑至少两种因素进行调节,即,可以同时结合前述的调节方式一、调节方式二和/或调节方式三。
为了更好的阐述本发明的训练方法,接下来对本发明实施例的训练方法的步骤10做进一步的细化,如图3所示,具体如下:
为构建本发明实施例的筛选模型,首先需要进行数据收集,再将测试用例格式化,根据给定问题选择有效信息,即对所述多个测试用例做特征选择,本发明实施例中所述多个测试用例的所述有效信息包括:输入数据、期望输出、测试目的、执行时间、异常情况、代码覆盖率、测试场景中的一种或者多种。
例如,选将执行时间表示为一个数值,表示该测试用例的执行时间;将异常情况表示为一个0-1值,表示该测试用例是否触发了特定异常;将代码覆盖率表示为一个0-1值,表示该测试用例是否覆盖了特定代码块,1代表覆盖,0代表没有覆盖。
步骤10具体包括如下步骤:
步骤101:根据所述有效信息的类型,将所述有效信息转换成数值化的特征。
对每个有效信息的特征进行编码,即对特征进行数据化描述,以便后续将特征转化为特征向量。
例如,一组测试用例集合,选择有效信息特征为输入数据、期望输出和测试目的,选择权重影响因素为历史执行结果,其中包含了两个测试用例:
测试用例1:输入为[1,3,5],期望输出为true,测试目的为验证输入为奇数的情况下程序的正确性。历史执行结果为通过。
测试用例2:输入为[2,4,6],期望输出为false,测试目的为验证输入为偶数的情况下程序的正确性。历史执行结果为失败。
在可选的实施例中,对于离散型的特征,将特征转化为0或1的形式。例如,对于测试目的这个特征,可以定义两个类别:奇数和偶数,然后将其编码为[1,0]或[0,1]的形式。
在可选的实施例中,对于连续型的特征,使用数值型编码,将其转化为输入中所有元素的平均值。例如,对于测试用例1的输入数据这个有效信息,将其转化为输入数据中所有元素的平均值即(1+3+5)/3=3,然后使用3作为该特征的数值型编码。
在可选的实施例中,可以基于数据的属性,将其转化为0或1的形式。例如,测试用例1的输入数据为奇数,可以转换成1,测试用例2的输入数据为偶数,可以转换成0。
对测试用例的所述有效信息进行筛选和标注等数据预处理,对测试用例的有效信息进行特征化,得到所述有效信息为数值型数据或其他可处理的形式。
再将所述有效信息转化为数值型数据。例如,选择输入数据作为有效信息的特征,当输入数据本身就是数值型数据时,则可以直接使用这些数值型数据作为数值化的特征;当输入数据是文本型数据时,则需要对其进行分词、文本预处理等操作,将文本转换为数值化的特征。
对得到的所述有效信息的特征进行缩放,使特征值处于相同的尺度范围。便于在本发明实施例的筛选模型的训练中对特征值进行计算,提高后续训练出的筛选模型的性能和鲁棒性。
步骤102:将所述权重影响因素转换成数值化的特征。
对权重影响因素的特征进行编码,再进行特征提取得到数值型特征,例如,将历史执行结果表示为一个0-1值,表示该测试用例运行后是否与预期一致,1表示与预期结果一致,0表示与预期结果不一致。
步骤103:将每个特征作为特征向量的一个维度,得到一个n维的原始特征向量,其中,n为特征数量。
将每个测试用例的有效信息和权重影响因素的数值型特征转化为该测试用例的特征向量表示,其中,将每个特征作为特征向量的一个维度,将n个特征的编码组合成一个n维的特征向量,得到每个测试用例的原始特征向量。特征向量的表示方式也包括使用稀疏向量、二进制向量等。
例如,一组测试用例集合,选择有效信息特征为输入数据、期望输出和测试目的,选择权重影响因素为历史执行结果,其中包含了两个测试用例:
测试用例1:输入为[1,3,5],期望输出为true,测试目的为验证输入为奇数的情况下程序的正确性。历史执行结果为通过。
测试用例2:输入为[2,4,6],期望输出为false,测试目的为验证输入为偶数的情况下程序的正确性。历史执行结果为失败。
将四个特征的编码组合成一个4维的特征向量:
测试用例1:[1,0,1,1]
测试用例2:[0,1,0,0]
在这个特征向量中,第一个元素表示输入为奇数(1)还是偶数(0),第二个元素表示期望输出为true(0)还是false(1),第三个元素表示测试目的是验证输入为奇数(1)还是偶数(0)的情况下程序的正确性;第四个元素表示历史测试结果是通过(1)还是失败(0)。
为了减少训练筛选模型的测试用例量和提高用于训练的测试用例的质量,同时保留测试的有效信息中用例对于给定问题领域的重要特征,获得效果更好的筛选模型,对已得到的测试用例的原始特征向量进行优选,具体如下:
步骤104:根据所述目标特征向量,对测试用例进行聚类得到多个类簇。
将多个测试用例的原始特征向量划分为多个类簇,每个簇代表一组相似的测试用例,使得簇内的数据点相似度尽可能高,而不同簇之间的相似度尽可能低,聚类方法的流程图如图4所示,具体如下:
根据目标特征向量和各类簇的划分前中心点,循环迭代将各测试用例划分至各类簇;
每进行一次划分,根据上一次划分的结果,重新计算各类簇的划分后中心点,若存在至少一个类簇的划分后中心点与划分前中心点之间的变化大于预设值,则进行下一次划分,直至每一类簇的划分后中心点与对应划分前中心点之间的变化不大于预设值;
其中,以上一次的划分后中心点作为下一次的划分前中心点,在进行第一次划分时,按照预设规则,建立预设数量的类簇,并确定各类簇的划分前中心点。
在一个类簇的划分后中心点与划分前中心点之间的变化大于预设值时,该聚类的筛选效果不在预设值的稳定区间,对测试用例的筛选精度较低,聚类效果较差,无法筛选出具有代表性的测试用例用于本实施的筛选模型的训练;在一个类簇的划分后中心点与划分前中心点之间的变化不大于预设值时,聚类效果较稳定。
聚类的结果可以通过可视化工具进行展示和分析,用散点图展示每个测试用例在二维空间中的分布情况,或者用簇热图展示每个簇中测试用例的特征权重情况。
步骤105:从每个类簇选择代表性的测试用例作为训练数据,以通过该训练数据所对应的目标特征向量对所述筛选模型进行训练。
在本实施例中,选择代表性的测试用例的方式为:选取距离该簇中心最近的测试用例作为训练数据;或,选取该簇中的平均测试用例作为训练数据。
其中,平均测试用例的选取方式是:计算每簇中每个测试用例与该簇中心的距离,计算每簇中所有距离的平均值,选取距离与该平均值最近的测试用例作为训练数据。
本发明实施例使用上述训练方法,使用所述目标特征向量对筛选模型进行训练,流程图如图5所示,与给定问题相关的多个测试用例的训练集D包含数量为n的测试用例D={d1,d2…,dn},对应测试用例的特征集为X={x1,x2,…,xd},分属于数量为Y={y1,y2…,ym}的m个不同类别(类变量),即D可以分为ym类别,其中,x1,x2,…,xd相互独立且随机。
所述根据所述目标特征向量对筛选模型进行训练包括:
步骤301:对于目标特征向量的每个特征,统计在每个类别下它出现的次数,得到条件概率P(xj|yi)。
在计算目标特征向量的每个特征在每个类别下出现的概率时,如果某个特征在目标特征向量中没有出现过,会导致该概率结果是0。这是不合理的,不能因为测试用例的一个特征没有被观察到,就认为该特征的概率一定为0。为避免概率为0的情况,为每个特征加1,估计该测试用例没有出现过的特征的概率,测试用例集较大时,每个分量X的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。例如,假设在文本分类中,有3个类:C1、C2、C3
在指定的训练样本中,某个词语K1,在各个类中观测计数分别为0,990,10,共有0+990+10=1000类,则对应K1的概率为0,0.99,0.01,显然C1类中概率为0,不符合实际。于是对这三个量加1,同时对类别次数的先验概率加上取值范围的大小,在这个例子中是3,则条件概率的计算方法如下:
(0+1)/(1000+3)=0.001,
(990+1)/(1000+3)=0.988,
(10+1)/(1000+3)=0.011;
步骤302:通过训练集数据统计每个类别出现的次数,得到先验概率P(yi)。
步骤303:根据所述条件概率P(xj|yi)和所述先验概率P(yi),得到测试用例属于不同类别y1,y2…,ym的后验概率P(yi|x1,x2…,xd)。
其中,P(xj)为固定值,x1,x2,…,xd为d个测试用例,yi为类别。
对于一个测试用例,计算其属于m个不同类别y1,y2…,ym的后验概率,即P(Y|X),类变量Y的先验概率为P(Y),Y的后验概率为P(Y|X),由朴素贝叶斯算法可得,后验概率可以由先验概率P(Y),归一化常量P(X)、类条件概率P(X|Y)计算出:
朴素贝叶斯基于各特征之间相互独立,在给定类别为y的情况下,上式可以进一步表示为下式:
其中,i表示测试用例的个数d;
由以上两式可以计算出后验概率为:
由于P(X)的大小是固定不变的,因此在比较后验概率时,只比较上式的分子部分即可。因此可以得到一个测试用例样本数据属于类别yi的朴素贝叶斯计算:
其中,i表示测试用例的个数d,j表示测试用例的类别m;
取后验概率最高的类别Ym作为结果,即测试用例被分类为Ym
较好地优化测试用例的选择,提高测试效率和质量,减少测试成本,从而节省了时间和精力,并同时保证了测试准确性。
本实施例利用单独考虑每个权重影响因素对权重调节的方法,对与给定问题相关的测试用例的原始特征向量进行调节得到目标特征向量,提高了筛选模型对于软件测试给定问题的敏感度和筛选效果;通过对不同类型的测试用例进行优选,选择每个类别的高质量训练数据用于训练本实施例的筛选模型,解决了后续筛选模型的训练中对训练数据要求较高的问题,在缩小筛选模型的训练数据的规模以达到缩短训练时间和降低训练成本的同时,提高了训练效果。
实施例2:
本发明实施例2的一种测试用例的筛选模型的训练方法与实施例1的筛选模型的训练方法基本相同,不同之处在于所述根据所述权重影响因素,综合考虑所有权重影响因素对权重的调节,设计整体调节方案。所述权重影响因素包括历史执行结果、测试用例的重要程度和测试用例的执行频率,具体的整体调节方案如图6所示,调节所述原始特征向量中相应的特征值,以得到目标特征向量包括:
步骤201:为所述历史执行结果设置第一权重值、为所述重要程度设置第二权重值,为所述执行频率设置第三权重值。
对各权重影响因素设置权重值,便于设计对测试用例的权重的整体调节方案。
步骤202:根据所述重要程度所对应的等级对该重要程度设定重要性等效值,根据所述执行频率所对应的次数为该执行频率设定频率等效值;当所述历史执行结果为通过时,所述历史执行结果的结果等效值为0,当所述历史执行结果为失败时,所述历史执行结果的结果等效值为1。
对重要程度、执行频率和历史执行结果对应的等效值进行编码,利用数值化特征表示对应情况便于处理特征。
当所述历史执行结果为通过时,所述历史执行结果的结果为1,则其结果等效值为0;当所述历史执行结果为失败时,所述历史执行结果的结果0,则其等效值为1。
所述重要程度所对应的等级分为:非重要的测试用例对应重要程度的等效值为1,较重要的测试用例对应重要程度的等效值为2,非常重要的测试用例对应重要程度的等效值为3。
所述执行频率,执行频率所对应的次数为该执行频率的等效值。
对得到的历史执行结果、重要程度和执行频率的等效值的特征进行缩放,使特征值处于相同的尺度范围,便于在本发明实施例的筛选模型的训练中对特征值进行计算,提高后续训练出的筛选模型的性能和鲁棒性。
步骤203:根据所述历史执行结果等效值与第一权重值、所述重要性等效值与所述第二权重值以及所述执行频率等效值与所述第三权重值进行加权求和计算,得到调节等效值。
通过对各个权重影响因素相应的权重值和等效值进行综合考虑,进行加权求和计算得到调节等效值。实际软件测试场景中,权重影响因素之间往往存在联系,且存在无法忽略的对权重的共同作用,本发明实施例综合考虑权重影响因素对权重的调节方案提高筛选模型的筛选效果。
步骤204:如果所述调节等效值大于设定阈值,获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调大所述权重影响因素的特征值;如果所述调节等效值不大于设定阈值,获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调小所述权重影响因素的特征值。
所述调节等效值大于设定阈值时,说明权重影响因素的共同作用对该测试用例的影响大于筛选模型的可接受范围,影响筛选模型的效果,超出范围则需要重新计算权重,通过获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调大所述权重影响因素的特征值,以提高该测试用例的历史执行结果特征值在筛选模型中的权重,放大该测试用例对筛选模型训练的影响;所述调节等效值不大于设定阈值时,说明权重影响因素的共同作用对该测试用例的影响在筛选模型的可接受范围之内,对筛选模型的效果影响较小,则需要重新计算权重,降低对该测试用例的权重的影响,即通过获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调小所述权重影响因素的特征值。
通过加权求和计算综合考虑各权重影响因素相应的权重值和等效值对权重的影响后,得到该测试用例对应的调节等效值,利用调节等效值与测试用例设定的阈值作差,按照差值所对应的比例系数调节该测试用例的权重影响因素的特征值。
本实施例通过设置各个权重影响因素的权重值、等效值和调节等效值,将多个权重影响因素对测试用例的影响结合,提高筛选模型的筛选效果
实施例3:
在上述实施例1提供的筛选模型的训练方法的基础上,本发明还提供了一种可用于实现上述方法的筛选模型的训练装置,如图7所示,是本发明实施例的架构示意图。本实施例的装置包括一个或多个处理器21以及存储器22。其中,图7中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的筛选模型的训练方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行筛选模型的训练方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的基于筛选模型的训练方法,例如,执行以上实施例描述的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种测试用例的筛选模型的训练方法,其特征在于,所述训练方法包括:
获取多个测试用例以及相应测试用例的权重影响因素,将所述测试用例的有效信息以及权重影响因素进行特征编码,得到相应测试用例的原始特征向量;
根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量;
根据所述目标特征向量对筛选模型进行训练。
2.根据权利要求1所述的训练方法,其特征在于,所述权重影响因素包括所述测试用例的历史执行结果、重要程度和执行频率中的一种或者多种;
所述根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量包括:
如果所述历史执行结果为通过,调小所述历史执行结果的特征值;如果所述历史执行结果为失败,调大所述历史执行结果的特征值;和/或,
如果所述重要程度低于设定阈值,调小所述重要程度的特征值;如果所述测试用例的重要程度不低于设定阈值,调大所述重要程度的特征值;和/或,
如果所述执行频率低于设定阈值,调小所述测试用例的执行频率的特征值;如果所述测试用例的执行频率不低于设定阈值,调大所述测试用例的执行频率的特征值。
3.根据权利要求1所述的训练方法,其特征在于,所述权重影响因素包括历史执行结果、测试用例的重要程度和测试用例的执行频率;
所述根据所述权重影响因素,调节所述原始特征向量中相应的特征值,以得到目标特征向量包括:
为所述历史执行结果设置第一权重值、为所述重要程度设置第二权重值,为所述执行频率设置第三权重值;
根据所述重要程度所对应的等级对该重要程度设定重要性等效值,根据所述执行频率所对应的次数为该执行频率设定频率等效值;
当所述历史执行结果为通过时,所述历史执行结果的结果等效值为0;当所述历史执行结果为失败时,所述历史执行结果的结果等效值为1;
根据所述历史执行结果等效值与第一权重值、所述重要性等效值与所述第二权重值以及所述执行频率等效值与所述第三权重值进行加权求和计算,得到调节等效值;
如果所述调节等效值大于设定阈值,获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调大所述权重影响因素的特征值;
如果所述调节等效值不大于设定阈值,获取所述调节等效值与设定阈值之间的差值,按照该差值所对应的比例系数调小所述权重影响因素的特征值。
4.根据权利要求1-3任一项所述的训练方法,其特征在于,所述有效信息包括:输入数据、期望输出、测试目的、执行时间、异常情况、代码覆盖率、测试场景中的一种或者多种;
所述将所述测试用例的有效信息以及权重影响因素进行特征编码,得到相应测试用例的原始特征向量包括:
根据所述有效信息的类型,将所述有效信息转换成数值化的特征;
将所述权重影响因素转换成数值化的特征;
将每个特征作为特征向量的一个维度,得到一个n维的原始特征向量,其中,n为特征数量。
5.根据权利要求4所述的训练方法,其特征在于,所述根据所述有效信息的类型,将所述有效信息转换成数值化的特征包括:
对于离散型的特征,将特征转化为0或1的形式;
对于连续型的特征,使用数值型编码,将其转化为输入中所有元素的平均值。
6.根据权利要求1-3任一项所述的训练方法,其特征在于,所述训练方法还包括:
根据所述目标特征向量,对测试用例进行聚类得到多个类簇;
从每个类簇选择代表性的测试用例作为训练数据,以通过该训练数据所对应的目标特征向量对所述筛选模型进行训练。
7.根据权利要求6所述的训练方法,其特征在于,所述根据所述目标特征向量,对测试用例进行聚类得到多个类簇包括:
根据目标特征向量和各类簇的划分前中心点,将各测试用例划分至各类簇;
每进行一次划分,根据上一次划分的结果,重新计算各类簇的划分后中心点,若存在至少一个类簇的划分后中心点与划分前中心点之间的变化大于预设值,则进行下一次划分,直至每一类簇的划分后中心点与对应划分前中心点之间的变化不大于预设值;
其中,以上一次的划分后中心点作为下一次的划分前中心点,在进行第一次划分时,按照预设规则,建立预设数量的类簇,并确定各类簇的划分前中心点。
8.根据权利要求6所述的训练方法,其特征在于,所述从每个类簇选择代表性的测试用例作为训练数据包括:
选取距离该簇中心最近的测试用例作为训练数据;或,
选取该簇中的平均测试用例作为训练数据。
9.根据权利要求1-3任一项所述的训练方法,其特征在于,所述根据所述目标特征向量对筛选模型进行训练包括:
对于目标特征向量的每个特征,统计在每个类别下它出现的次数,得到条件概率P(xj|yi),通过训练集数据统计每个类别出现的次数,得到先验概率P(yi);
根据所述条件概率P(xj|yi)和所述先验概率P(yi),得到测试用例属于不同类别y1,y2…,ym的后验概率P(yi|x1,x2…,xd);
其中,P(xj)为固定值,x1,x2,…,xd为d个测试用例,yi为类别。
10.一种测试用例的筛选模型的训练装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9任一所述的筛选模型的训练方法。
CN202310514967.0A 2023-05-04 2023-05-04 一种测试用例的筛选模型的训练方法及相应的装置 Pending CN116719714A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310514967.0A CN116719714A (zh) 2023-05-04 2023-05-04 一种测试用例的筛选模型的训练方法及相应的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310514967.0A CN116719714A (zh) 2023-05-04 2023-05-04 一种测试用例的筛选模型的训练方法及相应的装置

Publications (1)

Publication Number Publication Date
CN116719714A true CN116719714A (zh) 2023-09-08

Family

ID=87868722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310514967.0A Pending CN116719714A (zh) 2023-05-04 2023-05-04 一种测试用例的筛选模型的训练方法及相应的装置

Country Status (1)

Country Link
CN (1) CN116719714A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472787A (zh) * 2023-12-27 2024-01-30 山东泽鹿安全技术有限公司 车机模糊测试的测试用例生成方法、装置、介质和设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472787A (zh) * 2023-12-27 2024-01-30 山东泽鹿安全技术有限公司 车机模糊测试的测试用例生成方法、装置、介质和设备
CN117472787B (zh) * 2023-12-27 2024-03-15 山东泽鹿安全技术有限公司 车机模糊测试的测试用例生成方法、装置、介质和设备

Similar Documents

Publication Publication Date Title
WO2018014610A1 (zh) 基于c4.5决策树算法的特定用户挖掘系统及其方法
CN111860982A (zh) 一种基于vmd-fcm-gru的风电场短期风电功率预测方法
CN111199016A (zh) 一种基于DTW的改进K-means的日负荷曲线聚类方法
CN116719714A (zh) 一种测试用例的筛选模型的训练方法及相应的装置
CN110634060A (zh) 一种用户信用风险的评估方法、系统、装置及存储介质
CN110796159A (zh) 基于k-means算法的电力数据分类方法及系统
CN116467141A (zh) 日志识别模型训练、日志聚类方法和相关系统、设备
CN116187835A (zh) 一种基于数据驱动的台区理论线损区间估算方法及系统
CN110659724B (zh) 基于目标尺度的目标检测深度卷积神经网络构建方法
CN107908807A (zh) 一种基于贝叶斯理论的小子样可靠性评定方法
CN114357870A (zh) 基于局部加权偏最小二乘的计量设备运行性能预测分析方法
JP3956581B2 (ja) 事例の類似性に基づいた推論システム
CN111783883A (zh) 一种异常数据的检测方法及装置
CN104462215B (zh) 一种基于时间序列的科技文献被引用数目预测方法
CN110837853A (zh) 一种快速分类模型构建方法
CN111654853B (zh) 一种基于用户信息的数据分析方法
CN113255810B (zh) 基于关键决策逻辑设计测试覆盖率的网络模型测试方法
CN113657106B (zh) 基于归一化词频权重的特征选择方法
CN111459838B (zh) 一种基于流形对齐的软件缺陷预测方法及系统
CN115481803A (zh) 基于行业拥挤度的金融时间序列预测方法、装置及设备
CN110929849B (zh) 一种基于神经网络模型压缩的视频检测方法和装置
CN113177642A (zh) 一种针对数据不平衡的自动建模系统
CN113535527A (zh) 一种面向实时流数据预测性分析的降载方法及系统
CN118037137B (zh) 一种基于卷积神经网络的产品质量事故数量的确定方法
CN113723835B (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