学位论文 > 优秀研究生学位论文题录展示

基于模拟退火遗传算法的测试数据生成研究

作 者: 曹珣
导 师: 李龙澍
学 校: 安徽大学
专 业: 计算机软件与理论
关键词: 软件测试 路径测试 测试数据自动生成 模拟退火算法 遗传算法
分类号: TP311.52
类 型: 硕士论文
年 份: 2011年
下 载: 31次
引 用: 0次
阅 读: 论文下载
 

内容摘要


随着信息技术的快速发展,大量的软件产品已渗透到各行各业。如何保证软件的质量问题成为一个关注焦点。软件测试是确保软件产品质量及可靠性的主要途径,其地位是无可替代的。然而,随着软件行业的发展,软件产品的规模在逐渐扩大,复杂度也越来越高,使得软件测试的困难进一步加剧,如何有效的降低软件测试所需的大量人力、物力资源和耗费的时间,是软件测试需要重点研究的问题,据统计,软件测试耗费的时间约占整个开发周期的1/3,成本上占了近50%。所以,软件测试自动化能力的提升是保证软件产品质量、降低产品开发成本的关键途径。而为了提高软件测试的自动化程度,需要重点研究的就是如何提高测试数据的自动生成,本文重点将对此问题进行研究与分析。本文首先简单介绍了软件测试研究的背景和意义,以及研究的现状,并简要提出了本文研究的内容和本篇论文的结构框架。接着,本文较详细的对软件测试进行了概述,并介绍了测试数据自动生成的相关技术,同时对它们各自优缺点进行了论述。重点分析了面向结构的测试数据自动生成技术,以及已有的一些可用办法。文中对各种方法及相关技术做了系统的总结与比较,而后提出在这一领域,人工智能技术将能发挥很大作用。随后,本文对遗传算法模拟退火算法进行了详细的介绍,重点分析了它们各自的算法原理、构成要素、算法执行步骤以及各自所存在的优缺点。由于普通遗传算法在进化寻找最优解过程中,极易陷入“早熟”收敛,且种群个体存在多样性较差的现象,本文提出了混合模拟退火遗传算法(SAGA),并将其用于测试用例的自动生成,充分发挥二者优势互补的特点,提高算法的整体性能,并将此混合算法作为本文的核心算法。然后,本文介绍了将SAGA算法用于测试数据自动生成的系统结构模型,并且针对实际的应用,对SAGA算法的一些关键技术进行了改进:如编码问题、分支函数的构造和程序插桩方式,构造适应实际问题求解的适应度函数、和遗传操作中的交叉、变异策略的改进等。改进后的模拟退火遗传算法(ISAGA),不仅更有效克服了“早熟”收敛的问题,而且也提高了算法进化求解的收敛速度,大大改善了搜索效率。最后在实验分析部分,先设计实现了基于改进模拟退火遗传算法(ISAGA)的测试数据辅助生成工具,并以一个经典程序作为例子,自动生成相应的测试用例,通过对实验结果的分析,证明了本文核心算法能有效生成满足目标的测试用例,且收敛性高,能克服一般GA算法的“早熟”收敛问题。而后,本文又利用了几个具有数学复杂特征的纯数学函数作为算法的适应度函数,来进化搜索满足问题目标的测试用例,通过实验表明本文的ISAGA算法较一般GA算法和SAGA算法在生成满足要求的测试数据的性能上,有较好的改善。

全文目录


摘要  3-5
Abstract  5-7
目录  7-10
第1章 绪论  10-15
  1.1 研究背景和意义  10-11
  1.2 软件测试研究现状  11-12
  1.3 本文研究内容和论文结构  12-15
    1.3.1 研究内容  12-13
    1.3.2 论文结构  13-15
第2章 软件测试及测试数据生成技术  15-27
  2.1 软件测试概述  15-17
    2.1.1 软件测试定义  15
    2.1.2 软件测试目的和原则  15-17
  2.2 软件测试分类  17-23
    2.2.1 静态测试  18
    2.2.2 动态测试  18-23
    2.2.3 软件测试的步骤  23
  2.3 软件测试数据生成技术  23-26
    2.3.1 面向功能的测试数据自动生成  24
    2.3.2 面向结构的测试数据自动生成  24-26
  2.4 本章小结  26-27
第3章 测试数据搜索算法的研究与分析  27-37
  3.1 遗传算法  27-32
    3.1.1 遗传算法的原理  27-28
    3.1.2 遗传算法的构成要素  28-31
    3.1.3 遗传算法的基本流程  31-32
  3.2 模拟退火算法  32-34
    3.2.1 模拟退火算法的原理  33
    3.2.2 模拟退火算法的基本流程  33-34
    3.2.3 算法参数控制问题  34
  3.3 混合算法  34-35
  3.4 本章小结  35-37
第4章 模拟退火遗传算法的测试数据生成  37-52
  4.1 系统框架  37-38
  4.2 参数的编码  38-39
    4.2.1 参数的选取  38
    4.2.2 参数的编码  38-39
  4.3 插桩及适应度函数构造  39-45
    4.3.1 程序插桩理论  40
    4.3.2 适应度函数构造  40-43
    4.3.3 程序插桩改进  43-44
    4.3.4 分支函数插桩过程  44-45
  4.4 遗传算子的改进  45-48
    4.4.1 采用多点均分交叉  45-46
    4.4.2 采用自适应变异概率  46-48
  4.5 模拟退火遗传算法的设计  48-51
  4.6 本章小结  51-52
第5章 实验和分析  52-66
  5.1 工具总体设计  52-54
    5.1.1 被测程序分析模块  53
    5.1.2 程序插桩模块  53
    5.1.3 SAGA数据生成模块  53-54
  5.2 实验结果分析  54-65
    5.2.1 测试数据生成分析  54-61
    5.2.2 算法性能比较  61-65
  5.3 本章小结  65-66
第6章 总结与展望  66-68
参考文献  68-72
附录A 图索引  72-73
附录B 表索引  73-74
Appendix A. Figure Index  74-75
Appendix B. Table Index  75-76
致谢  76-77
攻读学位期间的科研成果  77

相似论文

  1. 天然气脱酸性气体过程中物性研究及数据处理,TE644
  2. 压气机优化平台建立与跨音速压气机气动优化设计,TH45
  3. 基于遗传算法的模糊层次综合评判在高职教学评价中的应用,G712
  4. 部队人员网上训练与考核系统的开发,TP311.52
  5. 基于并行算法的模糊综合评价模型的设计与应用,TP18
  6. 基于神经网络的牡蛎呈味肽制备及呈味特性研究,TS254.4
  7. 基于遗传算法的中短波磁天线的设计及实现,TN820
  8. 面向对象分层测试的方法研究,TP311.53
  9. 基于遗传算法的柑橘图像分割,TP391.41
  10. 基于混合自适应遗传算法的动态网格调度问题研究,TP393.09
  11. 基于遗传—牛顿算法的公交优化调度,TP18
  12. 基于遗传算法优化的BP网络对生物柴油制备工艺的优化,TE667
  13. 基于形式化UML测试序列生成方法研究,TP311.53
  14. 基于程序切片的电子海图系统软件测试技术研究,TP311.53
  15. 用户权限管理系统可靠性测试的研究与应用,TP311.53
  16. 基于云理论和蜜蜂进化型遗传算法的纹理合成研究,TP391.41
  17. 基于遗传算法和粗糙集的聚类算法研究,TP18
  18. 高职院校教学案例库的创建探究,TP311.53-4
  19. 基于遗传算法的淠史杭灌区渠系配水优化编组模型的研究,S274
  20. 遗传算法在物流仓储优化中的应用研究,F259.2
  21. 基于遗传算法的矿山资源优化调度模型的研究,O224

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com