基于遗传算法的测试数据自动生成方法的研究

基于遗传算法的测试数据自动生成方法的研究

论文摘要

软件测试是软件质量保证的关键,是软件开发中不可缺少的环节,也是软件工程的重要组成部分,软件测试的效果直接关系到软件产品的质量。然而,软件测试是一个十分复杂的过程,需要花费巨大的人力,物力,财力和时间,测试人员需要设计,执行,分析大量的测试用例。这在很大程度上还是依靠手工来实现的,效率非常低下,同时也导致了测试费用的居高不下。软件测试自动化是通过自动化测试工具、脚本或其他手段,按照我们预定的计划进行自动测试的活动。测试数据的自动生成技术是软件测试自动化的关键技术之一,可以为所测程序自动生成测试用例。这一技术的实现,将大大改变以往依靠直觉、经验产生测试数据的传统做法,无疑将使软件的测试效率获得显著提高,同时减轻人们在编写大量测试数据过程中付出的劳动。因此开展软件测试数据生成技术的研究和实践,对实现软件测试过程自动化,有着十分重要的意义。遗传算法是模仿生物遗传和进化机制的一种最优化方法,它把类似于遗传基因的一些行为,如交叉重组、变异、选择和淘汰等引入到算法求解的过程中。遗传算法的特点之一是,它既保留若干局部最优个体,又能通过个体的交叉重组或者基因变异得到更好的个体。从上个世纪90年代以来,人们开始尝试将遗传算法等人工智能技术运用于软件测试中,并取得了一定的研究成果。本文根据测试数据自动生成的要求,结合遗传算法的理论与算法特点,把遗传算法进行适当的修改应用到软件测试中,为最常见的几种测试数据类型:数值型,非数值型和类对象类型确定编码方案,选取适应度函数,改进数据的输出方案,实现测试数据的自动化。最后通过实验分析,把本文所采用的一些方法与其他方法进行实验对比,尤其是在输出测试数据的数量上、输出数据的准确性上进行分析,证明本文在这些方面的一些优越性。

论文目录

  • 摘要
  • ABSTRACT
  • 目录
  • 第1章 绪论
  • 1.1 立题背景和选题意义
  • 1.2 国内外研究现状
  • 1.3 论文的组织结构
  • 1.4 本章小结
  • 第2章 软件测试及测试数据自动生成
  • 2.1 软件测试
  • 2.1.1 软件测试的定义
  • 2.1.2 软件测试的方法
  • 2.1.3 软件测试的原则
  • 2.1.4 软件测试的内容与技术
  • 2.2 测试数据自动生成
  • 2.2.1 软件测试自动化概述
  • 2.2.2 测试数据自动生成方法
  • 2.3 本章小结
  • 第3章 遗传算法
  • 3.1 遗传算法的简介
  • 3.1.1 遗传算法的发展史
  • 3.1.2 遗传算法的主要研究领域
  • 3.1.3 遗传算法的应用
  • 3.2 遗传算法的计算
  • 3.2.1 遗传算法的基本概念及操作
  • 3.2.2 遗传算法的关键问题
  • 3.2.3 遗传算法的计算过程
  • 3.3 本章小结
  • 第4章 用遗传算法实现测试数据自动生成
  • 4.1 用遗传算法自动生成测试数据的研究现状
  • 4.2 选择遗传算法的原因
  • 4.2.1 禁忌搜索
  • 4.2.2 模拟退火算法
  • 4.2.3 三种算法的比较
  • 4.3 用遗传算法实现测试数据自动生成
  • 4.3.1 编码策略的确定
  • 4.3.2 适应度函数的选取
  • 4.3.3 遗传算子的选取
  • 4.3.4 终止条件的确定
  • 4.4 算法实现步骤
  • 4.4.1 算法流程
  • 4.4.2 测试数据生成过程
  • 4.5 本章小结
  • 第5章 实验分析
  • 5.1 与随机生成方法的对比
  • 5.2 与文献[3]中类对象测试数据生成的比较
  • 5.3 本章小结
  • 第6章 总结与展望
  • 6.1 本文工作的总结
  • 6.2 本文的创新点
  • 6.3 进一步工作
  • 6.4 本章小结
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].基于云计算的计算机软件测试[J]. 计算机与网络 2019(22)
    • [2].《软件测试》课程教学方法的探索[J]. 武夷学院学报 2019(12)
    • [3].基于职业技能大赛的高职“软件测试”课程实践教学设计[J]. 无线互联科技 2019(24)
    • [4].“以赛促建”的高职“软件测试”课程方案建设[J]. 无线互联科技 2020(05)
    • [5].软件测试中接口测试概述与实践[J]. 数字技术与应用 2020(03)
    • [6].谈软件工程中软件测试的重要性及方法[J]. 时代农机 2020(03)
    • [7].基于探索性测试的软件测试研究与实践[J]. 计算机应用与软件 2020(06)
    • [8].软件测试课程“停课不停学”全线上教学模式探索[J]. 计算机教育 2020(07)
    • [9].基于开源测试工具构建软件测试实践教学[J]. 现代计算机 2020(20)
    • [10].对基于云计算技术的软件测试分析[J]. 电子技术与软件工程 2020(15)
    • [11].建立中国金融业软件测试标准的探索[J]. 金融电子化 2020(04)
    • [12].云计算下的软件测试系统研究[J]. 数字通信世界 2018(11)
    • [13].软件测试关键技术研究——以绩效考核为例[J]. 信息与电脑(理论版) 2018(23)
    • [14].运用稳健六西格玛分析软件测试系统[J]. 电子质量 2018(12)
    • [15].认识软件测试[J]. 科技风 2019(14)
    • [16].探讨如何在软件测试阶段有效的提高软件质量[J]. 中外企业家 2019(19)
    • [17].浅析大数据背景下软件测试的挑战与展望[J]. 中外企业家 2019(21)
    • [18].软件测试标准化国内外现状研究[J]. 中国标准化 2019(11)
    • [19].技能大赛视域下“软件测试”课程教改研究[J]. 中小企业管理与科技(下旬刊) 2019(08)
    • [20].云计算在软件测试中的应用[J]. 电子技术与软件工程 2019(19)
    • [21].众测项目融入到软件测试课程案例库构建研究[J]. 电子世界 2019(22)
    • [22].大数据云计算时代软件测试所面临的挑战[J]. 教育教学论坛 2017(51)
    • [23].浅析软件测试中的心理学应用[J]. 电脑知识与技术 2017(31)
    • [24].浅谈我国软件测试行业人才现状及培养体系[J]. 软件 2017(12)
    • [25].大数据在软件测试中的应用[J]. 电子技术与软件工程 2018(03)
    • [26].常用的自动化软件测试工具评估方法[J]. 电子技术与软件工程 2018(03)
    • [27].软件工程中软件测试的应用研究[J]. 计算机产品与流通 2017(10)
    • [28].大数据背景下软件测试的挑战与展望[J]. 江苏科技信息 2018(19)
    • [29].以职业能力和岗位需求为核心构建软件测试课程教学[J]. 教育现代化 2018(24)
    • [30].大数据背景下软件测试的挑战与展望[J]. 软件 2018(06)

    标签:;  ;  ;  ;  ;  

    基于遗传算法的测试数据自动生成方法的研究
    下载Doc文档

    猜你喜欢