发明名称 一种基于动态基本块的缺陷定位测试用例约简方法
摘要 一种基于动态基本块的测试用例约简方法,首先根据执行路径构建语句覆盖矩阵,然后将语句覆盖矩阵转换为动态基本块覆盖矩阵,通过最大划分策略MDS和均匀划分策略EDS两种简约策略约简需要人工检查结果的测试用例集来节约人力,再将约简后的测试用例集用于缺陷定位。本发明可以从初始的测试用例集中选择出一个规模小得多的测试用例子集,极大地降低了开发人员对测试用例输出结果进行判断的负担,并且使用此测试用例集进行缺陷定位的效果与使用约简前的测试用例集相比几乎不下降。
申请公布号 CN102521131B 申请公布日期 2014.10.29
申请号 CN201110413590.7 申请日期 2011.12.13
申请人 南京大学 发明人 陈林;马倩;卢红敏;徐宝文
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 南京天翼专利代理有限责任公司 32112 代理人 黄明哲
主权项 一种基于动态基本块的缺陷定位测试用例约简方法,在基于测试执行的语句覆盖信息的缺陷定位技术中,缺陷定位算法可以识别的最小单元为动态基本块,其特征是根据测试用例的执行路径构建语句覆盖矩阵,由语句覆盖矩阵得到动态基本块集合,根据动态基本块集合将每条测试用例表示成以动态基本块为单位的向量,将语句覆盖矩阵转换为动态基本块覆盖矩阵,对其中需要人工检查结果的测试用例集进行约简:采用最大划分策略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>=&lt;b<sub>1</sub>,b<sub>2</sub>,...,b<sub>n</sub>&gt;<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’。
地址 210093 江苏省南京市鼓楼区汉口路22号