论文部分内容阅读
随着当今信息化程度的加强,软件的规模也越来越大。但是软件的质量问题一直都是人们关注的焦点问题。而随着对软件测试的投入越来越大,软件测试的成本也越来越高。如何高效地自动化测试是软件测试者必须要考虑的问题。随机测试是一种在自动化测试中应用广泛的方法。但随机测试也有着相当的不足,近年来很多学者都不断的对随机测试进行研究并进行改进,T.Y.Chen等人提出了自适应随机测试方法(Adaptive Random Testing,ART)并取得较好的效果。自适应随机测试方法的主要思想是将生成的测试用例动态的均匀分布在输入域之中。本文分析了基于概率密度函数的自适应随机测试,该类自适应随机测试算法是目前效果最好的自适应随机测试算法之一。基于概率密度函数的自适应随机测试首先根据已有测试用例生成概率密度函数,然后通过该概率密度函数生成下一个测试用例。本文分析了两种概率密度函数的自适应随机测试。一种是限制性选择的ART算法(Restricted Random Testing,RRT),另一种是基于剖面的ART算法(Adaptive Random Testing through Test Profile,ARTTP)。本文在分析了两种基于概率密度函数的自适应随机测试方法之后,针对这两种算法的缺点和不足进行改进并在对提出的改进算法进行了实验。最后实现了一个测试原型系统来对本文中所提方法进行验证。本文主要完成的工作阐述如下:1.针对RRT算法时间消耗过大的问题,提出了改进的限制性变概率选择随机测试算法(Restricted Random Testing by Largest Available Zone,RRTLAZ)。RRTLAZ的主要思想是在已执行测试用例周围生成排除区域和可选区域,然后通过算法计算出所有可选区域,最后寻找最大的可选区域进行测试用例的生成。同时算法考虑了多维输入域的情况并给出两种具体的解决方案。最后通过对模拟程序和真实程序进行测试,测试结果表明,本文提出的RRTLAZ算法能够有效地减少RRT的时间开销并且能够使用较少的测试用例发现较多的错误。2.分析了ARTTP算法的执行过程并对ARTTP算法中用于生成测试用例的概率密度函数进行改进。相比于原概率密度函数,利用改进后的概率密度函数可以使用更少的测试用例发现错误。同时针对自适应随机测试算法没有结合程序的动态信息进行改进的缺点,提出了基于覆盖率和基于路径的变概率ART算法(Probability Adaptive Random Testing with Dynamic Program Information,PART-DPI)。通过对覆盖率和路径信息的整合,使得变概率的ART在选择测试用例时更有针对性,能够满足更高的覆盖率和覆盖更多的路径。实验结果也表明,基于程序动态信息的变概率ART能够比原有的变概率ART算法要更有效。3.设计并实现了一个变概率ART测试原型系统(Probability ART Prototype Testing System,PARTPTS)。该原型系统包含了参数分析模块、模拟数据模块、插桩模块、变异模块、执行模块以及结果分析模块。通过实验可以发现该系统有较好的可行性以及较高的扩展性。