主权项 |
一种基于动态基本块的缺陷定位测试用例约简方法,在基于测试执行的语句覆盖信息的缺陷定位技术中,缺陷定位算法可以识别的最小单元为动态基本块,其特征是根据测试用例的执行路径构建语句覆盖矩阵,由语句覆盖矩阵得到动态基本块集合,根据动态基本块集合将每条测试用例表示成以动态基本块为单位的向量,将语句覆盖矩阵转换为动态基本块覆盖矩阵,对其中需要人工检查结果的测试用例集进行约简:采用最大划分策略MDS或均匀划分策略EDS挑选测试用例,并判断所挑选的测试用例是否能继续对当前已划分出的动态基本块做划分,如果能,则保留已挑选的测试用例,继续挑选余下的测试用例,如果不能,则将已经挑选的所有测试用例构成约简后的测试用例集,约简后的测试用例集用于缺陷定位;包括以下步骤:1)对待测试程序P执行测试用例集TS,TS为待约简的初始测试用例集,根据测试用例执行路径收集语句覆盖信息,构建语句覆盖矩阵;2)由语句覆盖矩阵得到动态基本块集合B(TS),设动态基本块集合B(TS)包含n个元素B<sub>1</sub>,B2<sub>,</sub>…,B<sub>n</sub>,则TS中每条测试用例t<sub>i</sub>都被表示成一个n维的向量:t<sub>i</sub>=<b<sub>1</sub>,b<sub>2</sub>,...,b<sub>n</sub>><img file="FDA0000519382640000011.GIF" wi="661" he="166" />b<sub>j</sub>表示动态基本块,j=1,2,…,n,将语句覆盖矩阵转化为动态基本块覆盖矩阵;3)设约简后的测试用例集为TS’,初始时TS’为空集,从TS中选择任意一条出现错误的测试用例加入到测试用例集TS’中;4)使用划分策略MDS或EDS挑选测试用例加入到TS’中,并判断所挑选的测试用例是否能继续对当前所挑选出的测试用例集所划分出的动态基本块做划分;5)如果能,则转步骤4)继续挑选测试用例,不能则转步骤6);6)将挑选的所有测试用例构成约简后的测试用例集TS’,用于缺陷定位;其中最大划分策略MDS首先将步骤3)任意选择的那条错误测试用例t<sub>1</sub>作为它选择的第一条用例,对于初始测试用例集TS,用N(B(TS))表示TS划分出的动态基本块的数量,N(B<sub>t1</sub>(TS))表示TS对错误测试用例t<sub>1</sub>覆盖的部分能够划分出的动态基本块数量,设当前已经选择的测试用例的集合为T<sub>0</sub>,MDS在TS中选择使N(B<sub>t1</sub>(T<sub>0</sub>∪{t}))达到最大值的测试用例t,将测试用例t加入T<sub>0</sub>,继续下一轮迭代选择,其中,当有不止一个t满足条件时,任意选择一个用例;直到对于所有未选择的测试用例t’,N(B<sub>t1</sub>(T<sub>0</sub>∪{t’}))都与N(B<sub>t1</sub>(T<sub>0</sub>))相同而不再增加,由所选择的测试用例得到最终的约简后的测试用例集为TS’。 |