主权项 |
一种基于聚类分析的回归测试用例选择方法,对于新旧两个版本的被测程序,旧版本已经过测试,采用的测试用例集称为原测试用例集,新版本等待进行回归测试,其特征是记录原测试用例集的各测试用例在旧版本上的执行覆盖信息作为测试历史信息;比较新旧版本被测程序的相关信息,从原测试用例集选择出覆盖修改位置的测试用例构成初始候选测试用例集,根据选择的测试用例在测试历史信息中提取这些测试用例在旧版本上的执行覆盖信息,形成旧版本被测程序函数的函数执行剖面,所述函数执行剖面显示旧版本被测程序中各个函数关于初始候选测试用例集中每个测试用例的覆盖情况;然后对函数执行剖面进行聚类分析,使初始候选测试用例集中的测试用例按照程序行为或执行情况的相似度分配到不同的类簇中;最后,从每个类簇中选择部分测试用例进行抽样检查,根据检查结果选择某个类簇或者丢弃某个类簇,形成最终候选测试用例集;函数执行剖面中,程序中的每个函数都对应一个度量,指示该函数关于测试用例的覆盖情况,如果某个函数在某个测试用例的执行过程中被调用了,那么该度量为1,否则该度量为0,全部的度量构成一条剖面记录,每个测试用例都对应一条这样的记录;聚类分析包括以下步骤:1)获得函数执行剖面后,每个初始候选测试用例集的测试用例都成为一个对象,以向量形式度量表示:X:<x1,x2,...,xn>,向量中每个xi,i=1,2…n对应程序中相应函数的覆盖情况,值为1或0;2)聚类分析计算对象之间的距离,对于以向量形式表示的测试用例,采用欧几里得距离公式计算对象之间的距离,设两个对象分别表示为:X:<x1,x2,...,Xn>和Y:<y1,y2,...,yn>,则它们的距离为: <mrow> <mi>D</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>,</mo> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <munderover> <mi>Σ</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msubsup> <mi>d</mi> <mi>i</mi> <mn>2</mn> </msubsup> </msqrt> </mrow>其中,当xi=yi时,di为0,其它情况di为1;3)计算出所有初始候选测试用例集中测试用例之间的距离后,使用Simple K‑means聚类算法进行聚类。 |