Page 86 - 《软件学报》2021年第9期
P. 86
2710 Journal of Software 软件学报 Vol.32, No.9, September 2021
1) 若待测程序的测试用例长度小于相似程序测试用例的长度,减小相似程序测试用例的长度,使待测程
序与相似程序的测试用例长度相同,根据关键字流图最大公共子图,删减不属于最大公共子图节点对
应测试用例的部分;
2) 若待测程序的测试用例长度大于相似程序测试用例的长度,增加相似程序测试用例的长度,使待测程
序与相似程序的测试用例长度相同.找出相似程序关键字流图不存在关键字的节点所对应的位置,随
机增添最大公共子图对应相似程序的测试数据,至待测程序与相似程序测试用例的长度相同.
4 总结及进一步研究
本文提出了一种面向关键字流图判断相似程序,并重用已知的测试用例来完成相似程序测试的方法.其主
要贡献如下.
1) 提出一种面向关键字流图的程序相似性的比较方法.通过构建的关键字流图求关键字流图最大公共
子图,利用最大公共子图距离算法计算程序的相似度.该方法兼顾比较程序的序列和功能结构的相似
性.通过关键字流图判定相似的程序,程序规模相近,程序功能结构相似;
2) 提出一种基于相似程序程度间测试用例重用的方法.将程序已经生成的测试用例重用到相似程序的
测试用例生成中,在遗传算法进化时,引入相似程序适应度较高的测试用例,种群个体以一定概率与
引入的测试用例进行交叉变异,有利于加快种群的进化速度,提高测试用例的生成效率;
3) 开发了一个判定程序相似性的插件,该插件根据本文所提出的方法对程序相似性进行判定,用户选择
放在两个待测程序的文件(每个文件内只放待测程序的代码),点击测试按钮运行插件.执行结束返回
两个程序的相似度,并根据设定的阈值判定它们是否相似.
在第 3.6 节中分析了本文存在的不足,就测试待测程序需要输入测试数据受到个数限制而无法重用的问
题,设想了初步的解决方案.在未来的工作中,进一步研究相似程序间测试用例重用的局限性,特别针对相似程
序因测试数据数量受限而不能重用的问题,深入分析前面假设的可行性,以提高相似程序间测试用例重用的通
用性与准确性.
References:
[1] Towey D, Dong Y, Sun CA, Chen TY. Metamorphic testing as a test case selection strategy. Science China Information Sciences,
2016,59(5):050108.
[2] Wu C, Gong DW, Yao XJ. Selection of paths for regression testing based on branch coverage. Ruan Jian Xue Bao/Journal of
Software, 2016,27(4):839−854 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4975.htm [doi: 10.13328/j.cnki.
jos.004975]
[3] Li YY, Huang S, Hui ZW, Li LY. Test case retrieval method for different data model. Computer Science, 2017,44(11):221−225 (in
Chinese with English abstract).
[4] Qiu XK, Li XD. A path-oriented tool supporting for testing. Chinese Journal of Electronics, 2004,32(S1):235−237 (in Chinese with
English abstract).
[5] Beizer B. Software Testing Techniques. New York: Van No Strand Reinhold, 1990.
[6] Mu YM, Gao XX, Shen M. Research of reuse technology of test case based on function calling path. Chinese Journal of Electronics,
2018,27(4):768−775.
[7] Chen X, Chen JH, Ju XL, Gu Q. Survey of test case prioritization techniques for regression testing. Ruan Jian Xue Bao/Journal of
Software, 2013,24(8):1695−1712 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4420.htm [doi: 10.3724/SP.
J.1001.2013.004420]
[8] Shan JH, Jiang Y, Sun P. Research progress in software testing. Acta Scientiarum Naturalium Universitatis Pekinensis, 2005,41(1):
134−145 (in Chinese with English abstract).
[9] Zhang J. Research on teat case reuse in software testing [Ph.D. Thesis]. Shanghai: Shanghai University, 2012 (in Chinese with
English abstract).
[10] Chen H, Wang GN. Research for measuring softw are similarity based on graphs [MS. Thesis]. Changsha: Hunan University, 2009
(in Chinese with English abstract).