论文部分内容阅读
随着计算机软件深入到生活的方方面面,人们对计算机软件质量的要求不断提高。软件测试技术作为一种有效的软件质量保证手段,已成为软件开发过程中必不可少的环节。在软件开发过程中,软件测试经常耗费整个开发过程中30%~50%的资源。为了提高测试效率,降低测试成本,研究者们针对自动化测试技术进行了大量研究。
演化测试是一种非常有前景的自动化测试技术。它采用遗传算法智能搜索测试数据空间,自动生成高质量的测试用例。目前,演化测试技术已被广泛应用于多种测试领域,包括结构测试、功能测试、安全测试、性能测试、面向对象测试、回归测试等。
本文针对结构性演化测试,深入研究了演化测试的静态和动态优化方法。论文的主要工作包括:(1)研究了演化测试过程中出现早熟与退化现象的本质原因,并针对性的对演化测试过程进行动态优化。(2)通过大量实验,考察了该方法的有效性,并结合已有研究成果给出相关参数的最佳配置方案。(3)研究了演化测试中,flag变量问题导致的测试性能下降,并针对结构性演化测试中三种覆盖率标准提出了相应的解决方案。(4)扩展了演化测试框架ETF,实现了自适应演化测试框架SA-ETF。
论文取得的主要成果包括:
(1)提出了自适应演化测试框架SA-ETF,动态检测早熟与退化现象并自适应地调整存活策略。出现早熟与退化现象时,应用位翻转法DABR调整退化的种群,并应用PCC存活策略使调整后的种群参加到演化过程中。实验结果表明,SA-ETF有效消除了种群的早熟与退化现象,提高了演化测试的性能,减少了演化过程中的资源消耗。
(2)在先前研究的基础上,通过本文的进一步实验,提供了DABR相关配置参数的最佳取值方案,给出了针对结构性演化测试的参数配置规则与建议,为SA-ETF的应用提供了指导原则。这些建议分别针对不同类型的程序和测试目标,有助于提高演化测试的效率,也为进一步的研究奠定了基础。
(3)提出了基于PC的适应值函数构造方法和基于符号执行的flag变量问题解决方案,该方案通过符号执行被测试程序,利用获得的信息构造适应值函数,指导测试数据向测试目标的转化。该方案可用于覆盖指定语句、指定语句序列和指定路径。通过实验检验了该方法的有效性,并提出了演化测试参数配置的建议。
(4)扩展了现有的演化测试框架ETF,在ETF中添加了位翻转法DABR和PCC存活策略的实现模块,形成SA-ETF。扩展后的ETF能够在传统的演化测试框架与SA-ETF之间灵活地切换,提供对比分析以验证SA-ETF的有效性。SA-ETF为以后的研究者对早熟与退化现象及相关问题的研究提供了便利,为演化测试的研究提供了支持。