论文: 基于智能优化算法的测试数据生成综述

缘由:

      最近一直在看智能算法,然后进行了在测试函数上的实验,遇到问题。

(1)测试函数 不是现实的问题,单纯的在测试函数 上进行一遍遍的比较,看不到具体的用途, 他的结果在我看来反应的 只是一个指标值。 这些测试函数只是一种评价的 指标(自己虽测试函数理解的可能不是太好),综合就是在智能算法的“多样性”以及“收敛性”做一个评测, 就只是一个单纯的评测指标。

(2)指标 不能代表问题得到了应用, 怎样才能一步步 的去接近问题,就登陆CCF然后看了最近发表的论文。“基于智能优化算法的测试数据生成综述”。  智能算法生成测试函数, 在通过对软件设计的一些学习我知道在软件设计中,测试有一个十分重要的角色,对于V模型的设计方法,会在不同的阶段反复的进行测试,若是能够在一开始的时候测试 出问题,就可以在很大程度上保证项目的顺利进行。

(3)我自身还是很了解智能算法的,数据懂一点,所以就想多了解,然后看看能不能做出具体的实验,虽然这个可能已经不是热点了,但是我觉得对于一直在bechmark的我,还是会推进我慢慢的去应用 智能算法。

通过这篇论文我希望获得

(1)具体的智能算法生成测试数据的历史,证明有人在用,以及有使用的价值

(2)具体的有没有某个算法的具体的 应用流程,看懂

(3)具体的实验部分是通过什么语言编写以及使用什么软件等=--实验基础

(4)有没有完备的一个算法进行测试数据生成的伪代码,可以进行思路疏导

阅读论文了解到的:

1.引言

(1)美国国家标准技术研究所(NIST)2002年的统计报告指出:通过软件测试能够减少由于软件失效引起经济损失
三分之一。(具体的数据性的文字,表述数据软件测试的重要性)

(2)基于搜索的软件工程(Search-Based Software Engineering,SBSE)于 2001由 Harman和 Jones首次提出,其基本思想是采用智能优化算法,以合理的计算代价求解一类能够转化为组合优化问题的软件工程问题[2],于 2007 年被 IEEE 国际软件工程大会(ICSE)确立为软件工程未来发展的新方向.(专有名词以及官文)

2. 基于GA的测试数据生成

(1)最早的:1992 年首次成功将 GA 应用于软件测试数据生成中后,出现了大量的研究成果。1996年 Sthamer的博
士学位论文《The Automatic Generation of SoftwareTest Data Using Genetic Algorithms》是首篇将GA应用于测试数据生成的博士论文。(先应用然后研究的趋势------>    博士论文在baidu以及IEEE Explore 没有查到)

(2)田甜[14]在并行程序的测试数据生成中使用了 GA,较为详细地研究了路径覆盖测试数据生成问题。

        GA还被用于面向对象的测试数据生成[16]、软件功能测试数据生成[17]及压力测试数据生成[18]等方面
基于GA的面向路径覆盖测试数据生成

Ahmed等人[19]提出了一种基于GA的面向多路径覆盖测试数据生成方法,在该方法中将软件测试数据生成问题转化成多目标优化问题,利用 GA分别计算个体对不同目标的满足程度,达到运行一次GA(达到什么??达到每个目标的满足程度吗?人为设置满足的阈值?),同时生成覆盖多个目标路径的测试数据的目的。姚香娟等人[20]认为Ahmed 等人将多路径覆盖测试数据生成问题转化成单纯的多目标优化问题是不合适的。因此,他们首先建立了多路径覆盖测试数据生成问题的数学模型,把多路径覆盖测试数据生成问题建模为包含多个目标函数的优化问题,使用多种群 GA求解,通过个体间信息共享,提高了每个子种群的求解效率。

[14] 田甜 . 消息传递并行程序测试数据进化生成理论与应用[D].江苏徐州:中国矿业大学,2014.
[15] 戚荣志,王志坚,黄宜华,等.基于 Spark的并行化组合测试用例集生成方法[J].计算机学报,2018(6):1064-1079.
[16] Arcuri A,Yao X.Search based software testing of objectoriented containers[J].Information Sciences,2008,178(15):
3075-3095.
[17] Bühler O,Wegener J.Evolutionary functional testing[J].Computers & Operations Research,2008,35(10):3144-
3160.
[18] Briand L C,Labiche Y,Shousha M.Stress testing realtime systems with genetic algorithms[C]//Proceedings of
the 2005 Conference Genetic and Evolutionary Computation,GECCO2005,Washington DC,USA,2005:1021-1028.
[19] Ahmed M A,Hermadi I.GA-based multiple paths testdata generator[J].Computers & Operations Research,2008,
35(10):3107-3124.
[20] Yao X J,Gong D W.Genetic algorithm-based test datageneration for multiple paths via individual sharing[J].Computational Intelligence & Neuroscience,2014,38(6):1-12.
3. 基于PSO的测试数据生成

(1) 引述PSO公式,

(2)文章: 2007 年 Windisch 等人[27]运用完全学习PSO(Comprehensive Learning Particle Swarm Optimization,CL-PSO)算法来代替 GA,进行分支覆盖测试数据生成,实验比较了两种算法在 13 个工业程序上的测试数据生成效率(好奇)
(3)Jia等人[31]开发了一个基于 PSO 的测试数据生成工具:PSODGT(没找到),用于条件/判定覆盖测试数据生成
(4)王令赛等人[36]为保持粒子的多样性,增强算法的全局搜索能力,利用奇异值分解预测种群进化方向,在其正交方向上生
成新的种群,并使用交替变量法 AVM(Alternating Variable Method)增强算法的局部搜索能力,
使全局和局部搜索能力相协调
(怎么做到的? 依据?? 这样就可以了吗? )

4.基于其他智能优化算法的测试数据生成

简要的概述了一下HC,SA,ACO等

5. 基于智能优化算法的测试数据生成工具


 

7. 总结:

(1)适应函数作为智能算法结果评测的标准,和测试数据生成的品质优劣有直接的关系。适应度函数是基于智能优化算法的测试数据生成方法的核心和关键 

(2)基于智能优化算法测试数据生成效率不高的另一个原因是:智能优化算法在搜索过程存在随机性,产生了大量冗余的测试用例。如果能有效减少冗余测试用例,将有利于测试数据生成效率的提高

 本文的感觉:

(1) 并没有足够的说明为什么会使用智能算法进行测试数据生成,没有对比原来的传统的方法,感觉yi一窍不通

(2)没有的流程说明,所以即使自己看完了,仍然不是太清楚是是怎么样的过程

(3) 目前现在的研究现状是shen什么样子的?? 没有ju具体的数据说明,比方说体现在: 每年you'有关论文发表的统计deng等等,以及那些智能方法是比较多的??

所以说自己觉的不清楚是没有看懂还是怎样,并没有一个思路框架在脑袋里。 而且没有对其进行相关的分类,只是单纯de的将其按什么智能方法顺序捋了一下。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当我们编写 SQL 查询语句时,我们通常需要测试数据来确保查询结果的正确性。测试数据生成的过程是将原始数据转换为测试数据的过程,它旨在创建一组数据,这些数据能够涵盖我们需要测试的所有情况。本文将综述 SQL 测试数据生成的常见方法和工具。 1. 手动创建测试数据 手动创建测试数据是最简单的方法。我们可以通过手动插入数据来创建一个小规模的数据集,并在查询中使用它。但是,手动创建数据不仅费时费力,而且在大规模数据集的情况下也很难保证覆盖所有可能的情况。 2. 生成器工具 SQL 测试数据生成器是一种较为高效的方法。这些工具可以生成大规模数据集,覆盖更多的情况。常见的 SQL 测试数据生成器包括: - DataFactory:一个开源的、基于 .NET 的数据生成器,可以生成各种类型的数据,包括日期、数字、字符串、布尔值等。 - Mockaroo:一个在线数据生成器,可以生成各种数据类型,包括自定义数据集和随机数据集。 - SqlDataGenerator:一个商业工具,可以生成大规模的测试数据。 3. 数据库备份和还原 我们可以使用现有的数据库备份来作为测试数据。这种方法可以确保测试数据的准确性和完整性。但是,这种方法只适用于已有备份的情况,而且备份和还原的过程比较繁琐。 4. 假数据生成器 假数据生成器是一种可以生成大量假数据的工具,可以用于测试和开发。这些工具可以生成各种类型的数据,包括姓名、地址、电子邮件、电话号码等。常见的假数据生成器包括: - Faker:一个基于 Python 的数据生成器,可以生成各种类型的数据,包括姓名、地址、电子邮件、电话号码等。 - Mockaroo:一个在线数据生成器,可以生成各种数据类型,包括自定义数据集和随机数据集。 综上所述,SQL 测试数据生成的方法和工具有很多,我们可以根据具体情况选择合适的方法。无论采用哪种方法,都应该确保测试数据的准确性和完整性,并尽可能地覆盖所有可能的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值