CN110377496A - 一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法 - Google Patents

一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法 Download PDF

Info

Publication number
CN110377496A
CN110377496A CN201910351255.5A CN201910351255A CN110377496A CN 110377496 A CN110377496 A CN 110377496A CN 201910351255 A CN201910351255 A CN 201910351255A CN 110377496 A CN110377496 A CN 110377496A
Authority
CN
China
Prior art keywords
test case
test
intelligent water
water drop
path
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
Application number
CN201910351255.5A
Other languages
English (en)
Other versions
CN110377496B (zh
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.)
BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd
Original Assignee
BEIJING SUNWISE INFORMATION TECHNOLOGY 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 BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd
Priority to CN201910351255.5A priority Critical patent/CN110377496B/zh
Publication of CN110377496A publication Critical patent/CN110377496A/zh
Application granted granted Critical
Publication of CN110377496B publication Critical patent/CN110377496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3684Test management for test design, e.g. generating new test cases
    • 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/3688Test management for test execution, e.g. scheduling of test suites

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)
  • Monitoring And Testing Of Exchanges (AREA)
  • Examining Or Testing Airtightness (AREA)

Abstract

本发明公开了一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,该方法包括:确定影响测试用例优先级的因素;根据测试用例发现的缺陷的严重性确定测试用例的重要程度;根据测试用例的重要程度建立测试用例节点选择规则;根据测试用例可以发现的缺陷数量、测试用例的执行时间,建立智能水滴速度更新规则;建立用例选择路径泥土量更新规则;所有智能水滴迭代完成后,确定所有智能水滴中的测试用例优先级排序。本发明充分考虑了影响测试用例优先级的因素,解决了考虑用例因素单一和未将这些因素融入到算法设计的问题,并根据智能水滴算法对回归测试用例执行的优先级进行排序,提高了回归测试的有效性和快速性。

Description

一种软件回归测试过程中基于智能水滴的测试用例优先级确 定方法
技术领域
本发明涉及一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,属于算法优化设计和软件测试技术领域。
背景技术
目前,测试用例优先级确定是软件测试中的一个实际问题,也是研究的一个热点。专利CN201110225316“一种回归测试中基于分布的测试用例优先级划分方法”根据执行剖面的特征以及执行剖面在剖面空间的分布对测试用例进行排序,专利CN201810223250“一种基于覆盖力度增量的组合测试用例优先级排序方法”从用例组合覆盖程度和用例检查缺陷的重要程度方面考虑用例的优先级,一些智能优化算法,如遗传算法、粒子群算法、蚁群算法在测试用例优先级排序方面有所应用,如专利CN201611140362“一种用于白盒测试的测试用例优先级排序方法”利用改进的遗传算法对测试用例优先级排序,但这些方法在实际应用时存在两个问题:1)考虑用例的因素比较单一,如用例检出缺陷的重要程度、或是用例对缺陷的覆盖程度等,只考虑单一因素在实际过程中应用效果不明显,用例的优先级确定应该是这些因素综合影响的结果;2)方法中没有涉及这些影响因素的建模,以及如何将这些影响因素融入到算法设计设计的具体参数中。
发明内容
本发明解决的技术问题是:克服现有技术不足,提供一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,利用自然界水滴群体和其周围环境相互作用而形成河道路径的算法解决测试用例的优先级排序问题。首先确定了影响回归测试用例优先级的综合因素,即先建立影响测试用例优先级的模型,然后将这些因素融入到智能水滴算法参数中,利用智能水滴算法分析测试用例的优先级,最后对测试用例优先级确定结果进行评价,验证智能水滴算法的有效性。通过综合考虑影响测试用例优先级的因素,解决了考虑用例因素单一和未将这些因素融入到算法设计的问题,并根据智能水滴算法对回归测试用例执行的优先级进行排序,提高了回归测试的有效性和快速性。解决了什么问题。
本发明解决的技术方案是:一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,步骤如下:
(1)根据软件回归测试尽量使用少的测试用例和测试时间测出尽量多的各种缺陷的要求,确定影响测试用例优先级的因素;影响测试用例优先级的因素,包括:测试用例发现的缺陷的严重性、测试用例可以发现的缺陷数量、测试用例的执行时间。
(2)根据设定的测试用例发现的缺陷的严重性等级对应的严重性数值,对步骤(1)确定的影响测试用例优先级的因素中测试用例发现的缺陷的严重性赋值,确定出每个缺陷的严重性数值;
(3)根据步骤(2)确定的每个缺陷的严重性数值,确定每个测试用例Ti检出的总缺陷严重性数值;
(4)根据步骤(3)每个测试用例Ti检出的总缺陷严重性数值,确定测试用例Ti在所有测试用例中的重要程度;所有测试用例形成待选择的测试用例列表;
(5)根据智能水滴算法,一个水滴在待选择的测试用例列表中选择重要程度最高的测试用例;
(6)根据重要程度最高的测试用例,建立测试用例节点选择规则,根据测试用例节点选择规则,确定智能水滴算法中的该重要程度最高的测试用例对应的泥土量;
(7)根据步骤(1)的测试用例可以发现的缺陷数量、测试用例的执行时间,建立水滴速度更新规则;
(8)根据步骤(7)建立的水滴速度更新规则,确定智能水滴从测试用例Ti到任意另一个测试用例Td路径上,水滴带走该条路径上的泥土量即为水滴中增加的泥土量;
(9)建立智能水滴从测试用例Ti到任意另一个测试用例Td路径的泥土量更新规则;根据该泥土量更新规则以及步骤(6)确定的智能水滴算法中的该重要程度最高的测试用例对应的泥土量和步骤(8)水滴中增加的泥土量,确定智能水滴从任意一个测试用例Ti到任意另一个测试用例Td路径经过后该路径的泥土量数值;
(10)根据步骤(9)确定的智能水滴从任意一个测试用例Ti到任意另一个测试用例Td路径经过后该路径的泥土量数值,
(11)从步骤(5)待选择的测试用例列表中删除已经选择过的测试用例,形成新的待选择的测试用例列表,更新步骤(5)中的待选择的测试用例列表;判断待选择的测试用例列表是否为空,若不为空,返回步骤(5),若为空,则一个智能水滴完成一次迭代,进行步骤(12);
(12)遍历所有水滴,在每个智能水滴均完成一次迭代后,确定所有智能水滴中的测试用例优先级排序TIWD,通过平均缺陷检出的百分比APFD(Average of the percentageof faults detected)评价回归测试过程中测试用例优先级排序的优劣。
根据测试用例发现的缺陷的严重性确定测试用例的重要程度,具体如下:将缺陷的严重性进行定量化处理,不同等级的缺陷赋予不同的数值;每个测试用例可以发现的缺陷数量和等级计算测试用例检出的总缺陷严重性数值;根据总缺陷严重性数值确定测试用例的重要程度。
测试用例节点选择规则,具体如下:任意一个测试用例节点选择的概率反比于本路径上的泥土量;本路径上的泥土量通过被选择测试用例检出的总缺陷严重性数值确定。
建立智能水滴速度更新规则,具体为:
智能水滴从测试用例节点Ti到任意一个测试用例节点Td的速度增量非线性反比于本路径上的泥土量;
根据缺陷检出效率建立了反向启发函数,表示了智能水滴拒绝从测试用例节点Ti移动到测试用例节点Td的程度。
建立用例选择路径泥土量更新规则,具体如下:
用例选择路径上的泥土减少量等于通过本路径上水滴中增加的泥土量;
本路径上水滴中增加的泥土量,非线性反比于从测试用例节点Ti到任意一个测试用例节点Td的水滴移动的时间。
智能水滴算法,具体为:智能水滴在遇到多条可选路径时,会更倾向于阻力较小的路径,即选择泥土量较少的路径;智能水滴从一个路径点到下一个路径点,智能水滴的速度和含泥量会发生变化;智能水滴从一个路径点到下一个路径点,智能水滴中的含泥量是增加的;智能水滴中增加的含泥量等于路径上减少的泥土量;速度高的智能水滴要比速度低的智能水滴从路径上带走的泥土量要多。
智能水滴的迭代过程,具体为:
Ti表示测试用例集T中的第i个测试用例,Lj表示水滴选择了(j-1)测试用例后待选择的测试用例列表(由剩余的(n-j+1)个测试用例节点组成)。在初始时刻,n个水滴被随机放置在测试用例列表L1中,然后根据一定的测试用例节点选择规则、水滴速度更新规则和路径泥土量更新规则,每个水滴在下一个待选择的测试用例列表L2中选择下一个测试用例节点,以此类推,直至每个水滴选择的测试用例覆盖了m个软件缺陷。当一次迭代完成后,每一个水滴构建了一个测试用例序列,然后重复上述过程。
任意一个测试用例节点选择的概率反比于本路径上的泥土量,具体为:
本路径上的泥土量的值越小,智能水滴越期望选择本路径的下一个待选择的测试用例;
为防止计算出现除零操作,使用小的正数作为调节参数。
智能水滴从测试用例节点Ti到任意一个测试用例节点Td的速度增量非线性反比于本路径上的泥土量,是指:
本路径上的泥土量的值越小,智能水滴通过本路径的速度增量越大;
为防止计算出现除零操作,使用小的正数作为调节参数。
通过平均缺陷检出的百分比APFD(Average of the percentage of faultsdetected)评价回归测试过程中测试用例优先级排序的优劣,具体为:
如果T为包含n个测试用例的集合,m为测试用例集T检测出的软件缺陷数量,T的一个测试用例排序为T',TFi为检测到缺陷i的第一个测试用例在测试用例排序T'中的位置,通过计算针对测试用例排序T'的APFD值,确定测试用例排序T'的优劣。
本发明与现有技术相比的优点在于:
(1)本发明将影响回归测试效果的三个重要因素,测试用例发现的缺陷的严重性、缺陷数量、用例的执行时间综合考虑进行测试用例优先级排序,比只考虑单一因素的方法更加实用和有效,同时将这些因素融入到智能水滴算法中,有效结合了智能水滴算法分析测试用例优先级的最优性和快速性。
(2)本发明将智能水滴算法中水滴更倾向于快速流向阻力较小路径的特性应用于测试用例的选择路径中,选择的测试用例则更倾向于快速发现较多的缺陷,从而提高了回归测试的效率,节省测试时间,较早发现尽可能多的缺陷。
(3)本发明通过测试用例发现的缺陷的严重性确定每个测试用例在所有测试用例中的重要程度,从而建立智能水滴算法中测试用例节点选择规则,使得重要的测试用例优先得到选择。
(4)本发明通过测试用例可以发现的缺陷数量、测试用例的执行时间,建立水滴速度更新规则,使得优先选择的测试用例缺陷检出效率高。
附图说明
图1是技术方案流程图;
图2是测试用例优先级确定的智能水滴算法建模示意图;
图3是不同测试用例执行排序下的APFD示意图。
具体实施方式
下面结合附图对本发明做进一步详细描述。
本发明公开了一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,该方法包括:确定影响测试用例优先级的因素;根据测试用例发现的缺陷的严重性确定测试用例的重要程度;根据测试用例的重要程度建立测试用例节点选择规则;根据测试用例可以发现的缺陷数量、测试用例的执行时间,建立智能水滴速度更新规则;建立用例选择路径泥土量更新规则;所有智能水滴迭代完成后,确定所有智能水滴中的测试用例优先级排序。本发明充分考虑了影响测试用例优先级的因素,解决了考虑用例因素单一和未将这些因素融入到算法设计的问题,并根据智能水滴算法对回归测试用例执行的优先级进行排序,提高了回归测试的有效性和快速性。
本发明利用智能水滴算法设计了一种回归测试中测试用例优先级确定方法,具体实施流程如图1所示,应用本方法的主要步骤包括:(1)确定影响测试用例优先级的因素;(2)根据测试用例发现的缺陷的严重性确定测试用例的重要程度;(3)根据测试用例的重要程度建立测试用例节点选择规则;(4)根据测试用例可以发现的缺陷数量、测试用例的执行时间,建立智能水滴速度更新规则;(5)建立用例选择路径泥土量更新规则;(6)所有智能水滴迭代完成后,确定所有智能水滴中的测试用例优先级排序。
本发明解决了测试用例优先级排序中考虑用例因素单一和未将这些因素融入到算法设计的问题,并根据智能水滴算法对回归测试用例执行的优先级进行排序,提高了回归测试的有效性和快速性。
为了达到上述目的,本发明的技术流程如图1所示,方案如下:
(1)确定影响测试用例优先级的因素。
对于回归测试而言,目的是尽量使用少的测试用例和测试时间测出尽量多的各种缺陷,测试用例的选择和排序受多种因素的影响,考虑到回归测试的目的,主要影响测试用例的选择因素有三个:
1)测试用例发现的缺陷e的严重性s(e)
测试用例发现的缺陷的严重性反映了该测试用例检测出缺陷的重要程度,软件对不同程度的软件缺陷的可接受程度不同,为了在测试过程中及早的发现严重的软件缺陷,测试用例发现的缺陷的严重性越高,在测试过程中我们赋予较高的优先级。
2)测试用例可以发现的缺陷数量r
测试用例可以发现的缺陷数量反映了该测试用例对软件缺陷检测的覆盖能力,一个测试用例在执行过程中可能发现一个或多个软件缺陷,发现的软件缺陷越多,说明该测试用例对软件缺陷的覆盖能力越强,在测试过程中我们赋予较高的优先级。
3)测试用例的执行时间
测试用例的执行时间反映了该测试用例的测试效率,在回归测试中,由于测试过程的时间约束,测试用例集通常不能全部执行,测试用例的执行时间越短,越容易满足测试的时间约束,因此,在测试过程中我们赋予较高的优先级。
(2)根据测试用例发现的缺陷的严重性确定测试用例的重要程度。
其中测试用例可以发现的缺陷数量和测试用例的执行时间是定量数值,但测试用例发现的缺陷的严重性通常为定性等级,如5个等级,为了方便算法分析,本发明中将每个缺陷的严重性进行定量化处理,不同等级的缺陷赋予不同的数值,处理为:
缺陷严重性等级 1级 2级 3级 4级 5级
严重性数值s(e) 0.2 0.4 0.6 0.8 1.0
(3)每个测试用例可以发现的缺陷数量r和量化的缺陷严重性计算测试用例检出缺陷的严重性,不失一般性,每个测试用例Ti检出的缺陷数量r可能是0个,也可能是多个,可能包含不同严重等级的缺陷,测试用例Ti检出的总缺陷严重性数值为:
(4)其中s(e)表示缺陷e的严重性数值,r是测试用例Ti可以检出的缺陷数量。在检出缺陷严重性方面,测试用例Ti在所有测试用例中的重要程度可以计算为:
其中max(sf)为所有测试用例中总的缺陷严重性数值的最大值。
(5)根据测试用例的重要程度建立测试用例节点选择规则。
智能水滴算法基本原则为:
1)水滴在遇到多条可选路径时,会更倾向于阻力较小的路径,即选择泥土量较少的路径;
2)水滴从一个路径点到下一个路径点,水滴的速度和含泥量会发生变化;
3)水滴从一个路径点到下一个路径点,水滴中的含泥量是增加的;
4)水滴中增加的含泥量等于路径上减少的泥土量;
5)速度高的水滴要比速度低的水滴从路径上带走的泥土量要多。
智能水滴算法在分析测试用例的优先级时将基于上述基本原则。
利用智能水滴算法解决测试用例优先级问题,首先需要构建该问题的智能水滴模型。智能水滴模型中每个水滴通过搜索规则构建一条路径,这条路径上的一个节点表示一个测试用例,因此,水滴的一条完整路径对应测试用例的一条序列,n个水滴就构建出测试用例的n条序列,这n条序列中存在一条最优的序列,对最优序列(最优路径)的权重进行加强,重复上述操作,经过多次迭代后,即可找到全局最优的测试用例序列。
模型的示意图如图2所示。在回归测试中,假设初始的测试用例集T中包含n个测试用例,T中测试用例的初始序列为{T1,T2,…,Ti,…,Tn},这些测试用例总共可以检测出m个软件缺陷,在智能水滴模型中,水滴的个数为n个。
在图2中,Ti表示测试用例集T中的第i个测试用例,Lj表示水滴选择了(j-1)测试用例后待选择的测试用例列表(由剩余的(n-j+1)个测试用例节点组成)。在初始时刻,n个水滴被随机放置在测试用例列表L1中,然后根据一定的测试用例节点选择规则、水滴速度更新规则和路径泥土量更新规则,每个水滴在下一个待选择的测试用例列表L2中选择下一个测试用例节点,以此类推,直至每个水滴选择的测试用例覆盖了m个软件缺陷。当一次迭代完成后,每一个水滴构建了一个测试用例序列,然后重复上述过程。
上述过程中,水滴每选择一个测试用例节点后,要对待选择的测试用例列表Lj进行更新操作,而且每个水滴拥有独立的待选择测试用例列表。测试用例节点选择规则、水滴速度更新规则、路径泥土量更新规则在下面详细给出。
建立测试用例节点选择规则
测试用例节点选择规则决定了选择下一个测试用例的概率,不失一般性,假设水滴k在第j个待选择的测试用例列表Lj中选择了测试用例节点Ti,则在下一个,即第(j+1)个待选择的测试用例列表L(j+1)中选择测试用例节点Td的概率按下述规则给出:
其中:
εs=00001
其中水滴从测试用例节点Ti到测试用例节点Td的概率p(i,d;IWD)反比于本路径上的泥土量g(soil(i,d)),g(soil(i,d))的值越小,说明在下一个待选择的测试用例列表L(j+1)中越期望选择测试用例Td,L(IWD)为水滴k的第(j+1)个待选择的测试用例列表。εs为调节参数,防止f(soil(i,d))出现除零操作,通常为小的正数。
g(soil(i,d))的值由下一个测试用例Td发现的软件缺陷的严重性程度而决定,一个水滴在待选择的测试用例列表中选择重要程度最高的测试用例,然后确定该重要程度最高的测试用例对应的泥土量。
(6)根据测试用例可以发现的缺陷数量、测试用例的执行时间,建立智能水滴速度更新规则。
根据测试用例可以发现的缺陷数量、测试用例的执行时间计算测试用例的缺陷检出效率,缺陷检出效率是测试用例单位执行时间内发现的缺陷数量r,反映了测试用例检测缺陷的快速性,测试用例Ti的缺陷检出效率具体计算方法如下:
rfi=测试用例Ti可以发现的缺陷数量r/测试用例Ti的执行时间
智能水滴从测试用例节点Ti到测试用例节点Td,速度的更新为:
velIWD(t+1)=velIWD(t)+ΔvelIWD(t)
velIWD(t)为智能水滴在测试用例节点Ti时的速度,智能水滴从测试用例节点Ti到测试用例节点Td的速度增量ΔvelIWD(t)非线性反比于本路径上的泥土量Soil(i,d),其中av,bv,cv,α为非线性反比函数的调节参数。
智能水滴从测试用例节点Ti到测试用例节点Td,带走本条路径上的泥土量即为水滴中增加的泥土量,非线性反比于从Ti到Td的水滴移动的时间,为:
其中as,bs,cs,θ为非线性反比函数的调节参数。
从Ti到Td的水滴移动的时间,可以按匀速直线运动模型计算:
其中HUD(i,d)为反向启发函数,表示了智能水滴拒绝从节点Ti移动到节点Td的程度,在实际的优化问题中代表了优化依据条件,HUD(i,d)的值由下一个测试用例Td的缺陷检出效率而决定,即关于缺陷检出效率的函数,由于缺陷检出效率是检出的缺陷数量与执行时间之比,因此,函数HUD(i,d)中考虑了影响测试用例优先级的后两个因素。
(7)建立用例选择路径泥土量更新规则。
智能水滴从测试用例节点Ti到测试用例节点Td,本条路径上的泥土量更新为:
Soil(i,d)=ρ×Soil(i,d)-(1-ρ)×ΔSoil(i,d)
SoilIWD(d)=SoilIWD(i)+ΔSoil(i,d)
其中Soil(i,d)和SoilIWD(d)分别为智能水滴从用例Ti到用例Td后,路径上的泥土量和水滴中的总泥土量。
(8)所有智能水滴迭代完成后,确定所有智能水滴中的测试用例优先级排序。
当每个智能水滴均完成一次迭代后,确定本次迭代所有智能水滴中的测试用例优先级排序TIWD,其中最大值作为本次迭代的解TIB
TIB=maxq(TIWD),对所有的TIWD
同时,针对本次迭代中的解TIB,更新解所对应的用例选择路径上的泥土量
NIB为本次TIB所对应的测试用例序列中用例的个数。
本次迭代中的解TIB与历史迭代解TTB进行比较,选择两者中的较大值。
为了评价本发明方法对测试用例优先级排序的效果,这里用检测软件缺陷效率来衡量。APFD(Average of the percentage of faults detected)作为度量标准。
如果T为包含n个测试用例的集合,m为测试用例集T检测出的软件缺陷数量,T的一个测试用例排序为T′,TFi为检测到缺陷i的第一个测试用例在测试用例排序T′中的位置,则针对测试用例排序T′的APFD计算如下:
APFD的取值范围为0%到100%,APFD的值越大,说明对应测试用例排序方法检测到软件缺陷的速率越快。
以下实例应用本发明的方法完成了回归测试中测试用例的优先级排序,具体如下:
步骤(1):确定影响测试用例优先级的因素。
测试用例影响回归测试效果的三个主要因素为:测试用例可以发现的缺陷数量r、测试用例的执行时间和测试用例发现的缺陷e的严重性s(e)。
其中测试用例可以发现的缺陷数量和测试用例的执行时间是定量数值,但测试用例发现的缺陷的严重性通常为定性等级,如5个等级,为了方便算法分析,本发明中将缺陷的严重性进行定量化处理,不同等级的缺陷赋予不同的数值,处理为:
缺陷严重性等级 1级 2级 3级 4级 5级
严重性数值s(e) 0.2 0.4 0.6 0.8 1.0
步骤(2):根据测试用例发现的缺陷的严重性确定测试用例的重要程度
每个测试用例可以发现的缺陷数量r和量化的缺陷严重性计算测试用例检出缺陷的严重性,不失一般性,每个测试用例Ti检出的缺陷数量r可能是0个,也可能是多个,可能包含不同严重等级的缺陷,测试用例Ti检出的总缺陷严重性数值为:
其中s(e)表示缺陷e的严重性数值,r是测试用例Ti可以检出的缺陷数量。在检出缺陷严重性方面,测试用例Ti在所有测试用例中的重要程度可以计算为:
其中max(sf)为所有测试用例中总的缺陷严重性数值的最大值。
步骤(3):根据测试用例的重要程度建立测试用例节点选择规则
初始化智能水滴算法参数
初始化智能水滴速度更新规则的参数:av=1,bv=0.01,cv=1,α=1;
初始化用例选择路径泥土量更新规则的参数:as=1,bs=0.01,cs=1,θ=1,ρ=0.1,ρIWD=0.9;
初始化每条用例选择路径泥土量:Soil(i,j)=InitSoil;
初始化每个智能水滴速度:velIWD(0)=InitVelIWD
回归测试的测试用例集T中包含n个测试用例,T中测试用例的初始序列为{T1,T2,…,Ti,…,Tn},这些测试用例总共可以检测出m个软件缺陷,在智能水滴模型中,水滴的个数为n个,每个水滴随机选择第一个测试用例。
测试用例节点选择规则决定了选择下一个测试用例的概率,不失一般性,假设水滴k在第j个待选择的测试用例列表Lj中选择了测试用例节点Ti,则在下一个,即第(j+1)个待选择的测试用例列表L(j+1)中选择测试用例节点Td的概率按下述规则给出:
其中:
εs=0.0001
其中水滴从测试用例节点Ti到测试用例节点Td的概率p(i,d;IWD)反比于本路径上的泥土量g(soil(i,d)),g(soil(i,d))的值越小,说明在下一个待选择的测试用例列表L(j+1)中越期望选择测试用例Td,L(IWD)为水滴k的第(j+1)个待选择的测试用例列表。εs为调节参数,防止f(soil(i,d))出现除零操作,通常为小的正数。
g(soil(i,d))的值由下一个测试用例Td发现的软件缺陷的严重性程度而决定,一个水滴在待选择的测试用例列表中选择重要程度最高的测试用例,然后确定该重要程度最高的测试用例对应的泥土量。
步骤(4):根据测试用例可以发现的缺陷数量、测试用例的执行时间,建立智能水滴速度更新规则
根据测试用例可以发现的缺陷数量、测试用例的执行时间计算测试用例的缺陷检出效率,缺陷检出效率是测试用例单位执行时间内发现的缺陷数量r,反映了测试用例检测缺陷的快速性,测试用例Ti的缺陷检出效率具体计算方法如下:
rfi=测试用例Ti可以发现的缺陷数量r/测试用例Ti的执行时间智能水滴从测试用例节点Ti到测试用例节点Td,速度的更新为:
velIWD(t+1)=velIWD(t)+ΔvelIWD(t)
velIWD(t)为智能水滴在测试用例节点Ti时的速度,智能水滴从测试用例节点Ti到测试用例节点Td的速度增量ΔvelIWD(t)非线性反比于本路径上的泥土量Soil(i,d),其中av,bv,cv,α为非线性反比函数的调节参数。
智能水滴从测试用例节点Ti到测试用例节点Td,带走本条路径上的泥土量即为水滴中增加的泥土量,非线性反比于从Ti到Td的水滴移动的时间,为:
其中as,bs,cs,θ为非线性反比函数的调节参数。
从Ti到Td的水滴移动的时间,可以按匀速直线运动模型计算:
其中HUD(i,d)为反向启发函数,表示了智能水滴拒绝从节点Ti移动到节点Td的程度,在实际的优化问题中代表了优化依据条件,HUD(i,d)的值由下一个测试用例Td的缺陷检出效率而决定,即关于缺陷检出效率rfi的函数,由于缺陷检出效率是检出的缺陷数量与执行时间之比,因此,函数HUD(i,d)中考虑了影响测试用例优先级的后两个因素。
步骤(5):建立用例选择路径泥土量更新规则
智能水滴从测试用例节点Ti到测试用例节点Td,本条路径上的泥土量更新为:
Soil(i,d)=ρ×Soil(i,d)-(1-ρ)×ΔSoil(i,d)
SoilIWD(d)=SoilIWD(i)+ΔSoil(i,d)
其中Soil(i,d)和SoilIWD(d)分别为智能水滴从用例Ti到用例Td后,路径上的泥土量和水滴中的总泥土量。
步骤(6):所有智能水滴迭代完成后,确定所有智能水滴中的测试用例优先级排序
当每个智能水滴均完成一次迭代后,确定本次迭代所有智能水滴中的测试用例优先级排序TIWD,作为本次迭代的解TIB
TIB=maxq(TIWD),对所有的TIWD
同时,针对本次迭代中的解TIB,更新解所对应的用例选择路径上的泥土量
NIB为本次TIB所对应的测试用例序列中用例的个数。
本次迭代中的解TIB与历史迭代解TTB进行比较,选择两者中的较大值。
为了评价本发明方法对测试用例优先级确定的效果,这里用检测软件缺陷效率来衡量。APFD(Average of the percentage of faults detected)作为度量标准。
如果T为包含n个测试用例的集合,m为测试用例集T检测出的软件缺陷数量,T的一个测试用例排序为T′,TFi为检测到缺陷i的第一个测试用例在测试用例排序T′中的位置,则针对测试用例排序T′的APFD计算如下:
APFD的取值范围为0%到100%,APFD的值越大,说明对应测试用例排序方法检测到软件缺陷的速率越快。
我们对本发明提出的技术方法进行了实验验证,回归测试的测试用例集中包含10个测试用例,这10个测试用例的初始排序为{T1,T2,T3,T4,T5,T6,T7,T8,T9,T10},这些测试用例总共覆盖12个软件缺陷{F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12},12个缺陷的严重性数值分别为{0.4,0.2,0.2,0.8,1.0,0.8,1.0,0.4,0.6,0.6,0.8,0.6},每个测试用例可以发现的缺陷数量,执行时间和检出缺陷的严重性可以通过历史数据计算得到,下表中详细给出了这些参数,这些参数是智能水滴算法的输入参数。
测试用例 检出缺陷项 缺陷数量 执行时间 检查缺陷严重性
T1 F3,F4,F5,F9,F11 5 8 3.4
T2 F3,F8,F12 3 6 1.2
T3 F1,F5,F7,F8 4 5 2.8
T4 F2,F4,F9,F12 4 6 2.2
T5 F3,F4,F10 3 5 1.6
T6 F1,F2,F3,F10,F11 5 7 2.2
T7 F2,F4,F8,F9 4 5 2.0
T8 F1,F8 2 2 0.8
T9 F1,F8,F11 3 3 1.6
T10 F1,F5,F12 3 4 2.0
我们比较了三种测试用例执行排序的检出缺陷的性能,这三种测试用例执行排序分别为:
初始排序{T1→T2→T3→T4→T5→T6→T7→T8→T9→T8}
IWD排序{T6→T4→T1→T3→T10→T2→T9→T7→T8→T5}
随机排序{T8→T3→T7→T1→T10→T4→T9→T5→T6→T2}
如图3所示,我们从评价指标APFD比较三种排序的性能,当执行完前4个用例后,初始排序对应的APFD值为81%,IWD排序对应的APFD值为89%,随机排序对应的APFD值为73%,也就是IWD排序后可以通过最少的用例达到取值较大的APFD,效果最好。
按照上述步骤,即可实现基于智能水滴的测试用例优先级确定方法,该方法综合考虑了测试用例发现的缺陷数量、测试用例的执行时间和测试用例发现的缺陷严重性三个方面对测试用例执行的优先级进行分析,解决了考虑用例因素单一和未将这些因素融入到算法设计的问题,分析后的测试用例执行顺序可以使得回归测试在选取较少的测试用例和较短的时间内尽可能检测出较多的软件缺陷,为软件的回归测试提供了一种高效的实用方法。
本发明将影响回归测试效果的三个重要因素,测试用例发现的缺陷的严重性、缺陷数量、用例的执行时间综合考虑进行测试用例优先级排序,比只考虑单一因素的方法更加实用和有效,同时将这些因素融入到智能水滴算法中,有效结合了智能水滴算法分析测试用例优先级的最优性和快速性。将智能水滴算法中水滴更倾向于快速流向阻力较小路径的特性应用于测试用例的选择路径中,选择的测试用例则更倾向于快速发现较多的缺陷,从而提高了回归测试的效率,节省测试时间,较早发现尽可能多的缺陷。
本发明通过测试用例发现的缺陷的严重性确定每个测试用例在所有测试用例中的重要程度,从而建立智能水滴算法中测试用例节点选择规则,使得重要的测试用例优先得到选择。通过测试用例可以发现的缺陷数量、测试用例的执行时间,建立水滴速度更新规则,使得优先选择的测试用例缺陷检出效率高。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (10)

1.一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于步骤如下:
(1)根据软件回归测试尽量使用少的测试用例和测试时间测出尽量多的各种缺陷的要求,确定影响测试用例优先级的因素;影响测试用例优先级的因素,包括:测试用例发现的缺陷的严重性、测试用例可以发现的缺陷数量、测试用例的执行时间;
(2)根据设定的测试用例发现的缺陷的严重性等级对应的严重性数值,对步骤(1)确定的影响测试用例优先级的因素中测试用例发现的缺陷的严重性赋值,确定出每个缺陷的严重性数值;
(3)根据步骤(2)确定的每个缺陷的严重性数值,确定每个测试用例Ti检出的总缺陷严重性数值;
(4)根据步骤(3)每个测试用例Ti检出的总缺陷严重性数值,确定测试用例Ti在所有测试用例中的重要程度;所有测试用例形成待选择的测试用例列表;
(5)根据智能水滴算法,一个水滴在待选择的测试用例列表中选择重要程度最高的测试用例;
(6)根据重要程度最高的测试用例,建立测试用例节点选择规则,根据测试用例节点选择规则,确定智能水滴算法中的该重要程度最高的测试用例对应的泥土量;
(7)根据步骤(1)的测试用例可以发现的缺陷数量、测试用例的执行时间,建立水滴速度更新规则;
(8)根据步骤(7)建立的水滴速度更新规则,确定智能水滴从测试用例Ti到任意另一个测试用例Td路径上,水滴带走该条路径上的泥土量即为水滴中增加的泥土量;
(9)建立智能水滴从测试用例Ti到任意另一个测试用例Td路径的泥土量更新规则;根据该泥土量更新规则以及步骤(6)确定的智能水滴算法中的该重要程度最高的测试用例对应的泥土量和步骤(8)水滴中增加的泥土量,确定智能水滴从任意一个测试用例Ti到任意另一个测试用例Td路径经过后该路径的泥土量数值;
(10)根据步骤(9)确定的智能水滴从任意一个测试用例Ti到任意另一个测试用例Td路径经过后该路径的泥土量数值,
(11)从步骤(5)待选择的测试用例列表中删除已经选择过的测试用例,形成新的待选择的测试用例列表,更新步骤(5)中的待选择的测试用例列表;判断待选择的测试用例列表是否为空,若不为空,返回步骤(5),若为空,则一个智能水滴完成一次迭代,进行步骤(12);
(12)遍历所有水滴,在每个智能水滴均完成一次迭代后,确定所有智能水滴中的测试用例优先级排序TIWD,通过平均缺陷检出的百分比APFD评价回归测试过程中测试用例优先级排序的优劣。
2.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:根据测试用例发现的缺陷的严重性确定测试用例的重要程度,具体如下:将缺陷的严重性进行定量化处理,不同等级的缺陷赋予不同的数值;每个测试用例能够发现的缺陷数量和等级计算测试用例检出的总缺陷严重性数值;根据总缺陷严重性数值确定测试用例的重要程度。
3.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:测试用例节点选择规则,具体如下:任意一个测试用例节点选择的概率反比于本路径上的泥土量;本路径上的泥土量通过被选择测试用例检出的总缺陷严重性数值确定。
4.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:建立智能水滴速度更新规则,具体为:智能水滴从测试用例节点Ti到任意一个测试用例节点Td的速度增量非线性反比于本路径上的泥土量;根据缺陷检出效率建立了反向启发函数,表示了智能水滴拒绝从测试用例节点Ti移动到测试用例节点Td的程度。
5.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:建立用例选择路径泥土量更新规则,具体如下:用例选择路径上的泥土减少量等于通过本路径上水滴中增加的泥土量;本路径上水滴中增加的泥土量,非线性反比于从测试用例节点Ti到任意一个测试用例节点Td的水滴移动的时间。
6.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:智能水滴算法,具体为:智能水滴在遇到多条可选路径时,会更倾向于阻力较小的路径,即选择泥土量较少的路径;智能水滴从一个路径点到下一个路径点,智能水滴的速度和含泥量会发生变化;智能水滴从一个路径点到下一个路径点,智能水滴中的含泥量是增加的;智能水滴中增加的含泥量等于路径上减少的泥土量;速度高的智能水滴要比速度低的智能水滴从路径上带走的泥土量要多。
7.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于智能水滴的迭代过程,具体为:Ti表示测试用例集T中的第i个测试用例,Lj表示水滴选择了(j-1)测试用例后待选择的测试用例列表,在初始时刻,n个水滴被随机放置在测试用例列表L1中,然后根据一定的测试用例节点选择规则、水滴速度更新规则和路径泥土量更新规则,每个水滴在下一个待选择的测试用例列表L2中选择下一个测试用例节点,以此类推,直至每个水滴选择的测试用例覆盖了m个软件缺陷。当一次迭代完成后,每一个水滴构建了一个测试用例序列,然后重复上述过程。
8.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:任意一个测试用例节点选择的概率反比于本路径上的泥土量,具体为:本路径上的泥土量的值越小,智能水滴越期望选择本路径的下一个待选择的测试用例;为防止计算出现除零操作,使用小的正数作为调节参数。
9.根据权利要求1所述的一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:智能水滴从测试用例节点Ti到任意一个测试用例节点Td的速度增量非线性反比于本路径上的泥土量,具体为:本路径上的泥土量的值越小,智能水滴通过本路径的速度增量越大;为防止计算出现除零操作,使用小的正数作为调节参数。
10.根据权利要求1所述一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法,其特征在于:通过平均缺陷检出的百分比APFD评价回归测试过程中测试用例优先级排序的优劣,具体为:如果T为包含n个测试用例的集合,m为测试用例集T检测出的软件缺陷数量,T的一个测试用例排序为T′,TFi为检测到缺陷i的第一个测试用例在测试用例排序T′中的位置,通过计算针对测试用例排序T′的APFD值,确定测试用例排序T′的优劣。
CN201910351255.5A 2019-04-28 2019-04-28 一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法 Active CN110377496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910351255.5A CN110377496B (zh) 2019-04-28 2019-04-28 一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910351255.5A CN110377496B (zh) 2019-04-28 2019-04-28 一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法

Publications (2)

Publication Number Publication Date
CN110377496A true CN110377496A (zh) 2019-10-25
CN110377496B CN110377496B (zh) 2023-06-06

Family

ID=68248493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910351255.5A Active CN110377496B (zh) 2019-04-28 2019-04-28 一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法

Country Status (1)

Country Link
CN (1) CN110377496B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112069059A (zh) * 2020-08-13 2020-12-11 武汉大学 基于极大似然估计最大期望的测试用例生成方法及系统
CN112380132A (zh) * 2020-11-20 2021-02-19 北京轩宇信息技术有限公司 基于航天软件缺陷数据集类不平衡的对抗验证方法及装置
CN112463636A (zh) * 2020-12-11 2021-03-09 苏州浪潮智能科技有限公司 一种测试用例排序管理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880545A (zh) * 2012-08-30 2013-01-16 中国人民解放军63928部队 一种测试用例优先级排序动态调整方法
CN104820636A (zh) * 2015-04-09 2015-08-05 北京轩宇信息技术有限公司 一种并行的基于蚁群算法的测试用例序列生成方法
US20150261657A1 (en) * 2014-03-13 2015-09-17 Infosys Limited Methods for generating test suites and devices thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880545A (zh) * 2012-08-30 2013-01-16 中国人民解放军63928部队 一种测试用例优先级排序动态调整方法
US20150261657A1 (en) * 2014-03-13 2015-09-17 Infosys Limited Methods for generating test suites and devices thereof
CN104820636A (zh) * 2015-04-09 2015-08-05 北京轩宇信息技术有限公司 一种并行的基于蚁群算法的测试用例序列生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马竹根: "基于智能水滴算法的软件路径测试用例生成方法", 《计算机时代》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112069059A (zh) * 2020-08-13 2020-12-11 武汉大学 基于极大似然估计最大期望的测试用例生成方法及系统
CN112380132A (zh) * 2020-11-20 2021-02-19 北京轩宇信息技术有限公司 基于航天软件缺陷数据集类不平衡的对抗验证方法及装置
CN112380132B (zh) * 2020-11-20 2024-03-29 北京轩宇信息技术有限公司 基于航天软件缺陷数据集类不平衡的对抗验证方法及装置
CN112463636A (zh) * 2020-12-11 2021-03-09 苏州浪潮智能科技有限公司 一种测试用例排序管理方法及系统
CN112463636B (zh) * 2020-12-11 2023-01-06 苏州浪潮智能科技有限公司 一种测试用例排序管理方法及系统

Also Published As

Publication number Publication date
CN110377496B (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
CN112069567B (zh) 基于随机森林和智能算法预测混凝土抗压强度的方法
CN110377496A (zh) 一种软件回归测试过程中基于智能水滴的测试用例优先级确定方法
CN104820636B (zh) 一种并行的基于蚁群算法的测试用例序列生成方法
CN103810104B (zh) 一种软件测试用例优化方法及系统
CN101493857B (zh) 基于Petri网与免疫算法的半导体生产线建模与优化调度方法
CN106528433B (zh) 一种用于白盒测试的测试用例优先级排序方法
CN105808426A (zh) 一种用于弱变异测试的路径覆盖测试数据生成方法
CN112540849B (zh) 一种分布式计算作业的参数配置优化方法及系统
CN104914835A (zh) 一种柔性作业车间调度多目标的方法
CN106845642B (zh) 一种带约束云工作流调度的自适应多目标进化方法
CN111222776B (zh) 基于卷积神经网络的卫星网络协调态势评估方法及系统
CN109947652A (zh) 一种软件缺陷预测的改进排序学习方法
CN104899459A (zh) 基于层次分析法的电池性能评价方法
CN108363876B (zh) 一种考虑关键故障的测试优化选择方法
CN112668802A (zh) 一种基于设计参数的施工碳排放预测方法
CN105550393A (zh) 一种支持方案快速生成的枪械变型设计方法
CN108508745A (zh) 一种多目标测试序列集优化生成方法
CN109615115B (zh) 一种面向任务可靠性的集成生产任务调度方法
CN104484548A (zh) 一种改进的序贯故障诊断策略优化方法
CN109636006A (zh) 一种多行设施布局方法
CN114004008A (zh) 一种基于神经网络和遗传算法的飞机装配线资源配置优化方法
CN111930476B (zh) 一种任务调度方法、装置及电子设备
CN104866932A (zh) 基于预测模型适用性判断的时间序列预测方法
KR101827124B1 (ko) 운전자의 주행 패턴 인식 시스템 및 방법
CN104915730A (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