发明名称 一种并行的基于蚁群算法的测试用例序列生成方法
摘要 一种并行的基于蚁群算法的测试用例序列生成方法,首先确定了影响测试用例优先级的因素,然后利用蚁群优化算法分析测试用例的优先级,接着将设计的算法进行多核并行处理,最后对测试用例优先级分析结果进行评价,得到最优测试用例序列。本发明方法将测试用例可以发现的缺陷数量、测试用例的执行时间和测试用例发现的缺陷的严重性作为信息素更新规则和测试用例节点选择规则的参数,与现有技术相比,可以在回归测试过程更快的检测出比较重要的缺陷,而且实现简单,便于操作,适用于回归测试中的大规模测试用例的优先级排序,提高了回归测试过程的有效性和快速性。
申请公布号 CN104820636A 申请公布日期 2015.08.05
申请号 CN201510163174.4 申请日期 2015.04.09
申请人 北京轩宇信息技术有限公司 发明人 高栋栋;郑小萌;冀会芳;虞砺崐;黄晨;胡智琦
分类号 G06F11/36(2006.01)I;G06N3/00(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 一种并行的基于蚁群算法的测试用例序列生成方法,其特征在于包括如下步骤:(1)基于蚁群算法分别使用n只蚂蚁从初始待选择测试用例列表中选择测试用例,然后分别更新蚂蚁的待选择测试用例列表,继续选择下一测试用例且更新蚂蚁的待选择测试用例列表,重复上述过程直至n只蚂蚁选择的测试用例序列长度均为n,得到第1次迭代n只蚂蚁的测试用例序列,其中n只蚂蚁并行选择测试用例或更新其待选择测试用例列表;所述初始待选择测试用例列表包括测试用例Ti,i=1,2,3,,,n;所述更新蚂蚁的测试用例列表方法为将该蚂蚁选择过的测试用例从初始待选择测试用例列表中剔除;(2)对缺陷的严重性进行划分后得到其严重性数值,并记为S(l),然后计算测试用例Ti可以发现的缺陷数目、测试用例Ti的执行时间得到测试用例Ti的缺陷检出效率Rf<sub>i</sub>,并计算测试用例Ti在所有测试用例中的重要程度IS<sub>i</sub>,其中<img file="FDA0000695848320000011.GIF" wi="861" he="157" /><maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>IS</mi><mi>i</mi></msub><mo>=</mo><mfrac><msub><mi>Sf</mi><mi>i</mi></msub><mrow><mi>max</mi><mrow><mo>(</mo><mi>Sf</mi><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000695848320000012.GIF" wi="345" he="148" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>Sf</mi><mi>i</mi></msub><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow><mi>r</mi></msubsup><mi>S</mi><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000695848320000013.GIF" wi="360" he="137" /></maths>l=1,2,3,,,q,q为缺陷的数目,max(Sf)为测试用例中缺陷严重性数值的最大值,r是测试用例Ti可以检出的缺陷数量;(3)对测试用例Ti与测试用例Td构成的路径上的信息素进行更新,τ<sub>id</sub>(t+1)=(1‑ρ)·τ<sub>id</sub>(t)+Δτ<sub>id</sub><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>&Delta;</mi><msub><mi>&tau;</mi><mi>id</mi></msub><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mi>&Delta;</mi><msubsup><mi>&tau;</mi><mi>id</mi><mi>k</mi></msubsup></mrow>]]></math><img file="FDA0000695848320000014.GIF" wi="400" he="133" /></maths><img file="FDA0000695848320000015.GIF" wi="1732" he="156" /><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>h</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>M</mi><mi>k</mi></msub></msubsup><msubsup><mi>Rf</mi><mi>i</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><msub><mi>M</mi><mi>k</mi></msub></mfrac></mrow>]]></math><img file="FDA0000695848320000021.GIF" wi="441" he="157" /></maths>其中,d=1,2,3,,,n,t为迭代次数且初值为1,τ<sub>id</sub>(1)为0.5,ρ为信息素的消散速率,τ<sub>id</sub>(t+1)是在(t+1)次迭代过程中从测试用例节点Ti到测试用例节点Td之间的路径上的信息素更新量,τ<sub>id</sub>(t)为第t次迭代过程中Ti到Td之间的路径上的信息素,(1‑ρ)·τ<sub>id</sub>(t)为第t次迭代过程中Ti到Td之间的路径上残留的信息素,Δτ<sub>id</sub>为第t次迭代过程中Ti到Td之间的路径上总的信息素增量,<img file="FDA0000695848320000024.GIF" wi="101" he="81" />为第t次迭代过程中蚂蚁k在Ti到Td之间的路径上留下的信息素,Q为常量,表示蚂蚁拥有的信息素总量,h(k)是第t次迭代过程中蚂蚁k在t次迭代中关于缺陷检出效率的函数,M<sub>k</sub>是第t次迭代过程中蚂蚁k检出所有缺陷时选择的测试用例数,<img file="FDA0000695848320000025.GIF" wi="153" he="64" />为第t次迭代过程中蚂蚁k选择的测试用例Ti的缺陷检出效率Rf<sub>i</sub>;(4)分别使用n只蚂蚁分别从初始待选择测试用例列表中选择测试用例,分别更新蚂蚁的待选择测试用例列表,然后分别从其待选择测试用例列表中选择转移概率最大的测试用例并更新蚂蚁的待选择测试用例列表,重复上述过程直至n只蚂蚁选择的测试用例序列长度均为n,得到第t+1次迭代n只蚂蚁的测试用例序列;所述转移概率为当前测试用例情况下跳转至另一测试用例的概率,其中,测试用例Ti跳转至测试用例Td的转移概率为<img file="FDA0000695848320000022.GIF" wi="1131" he="260" />其中,η<sub>id</sub>(t)=IS<sub>d</sub>(t),α,β为调节参数,s为正整数,<img file="FDA0000695848320000023.GIF" wi="135" he="91" />为蚂蚁k在选择测试用例Ti后的待选择测试用例列表,n只蚂蚁并行选择测试用例或更新其待选择测试用例列表;(5)t=t+1,并重复步骤(3)至步骤(4)直至第a次迭代得到的n只蚂蚁的测试用例序列与第a‑1次迭代得到的n只蚂蚁的测试用例序列相同,其中a不小于2;(6)使用APFD度量标准计算第1到a次迭代得到的n只蚂蚁的测试用例序列的APFD值,并选择APFD值最大的测试用例序列作为最优化的测试用例序列输出。
地址 100190 北京市海淀区科学院南路2号融科资讯中心C座南楼1101-1102