基于FPGA的递归最小二乘算法的研究与实现(3)

2019-01-19 13:46

基于遗传算法的测试用例生成方法

设计能力。这是一种缺乏指导性方法的、不易制订标准或规范的、需要“技巧”的设计活动。

(2)测试管理

目前缺乏测试管理方面的资料,几乎没有可供参考的、已实现的、完整的测试管理与测试实施模式。

(3)测试的组织

软件测试的有效实施需要开发组织与测试组织充分配合。虽然测试活动看似是对开发人员劳动成果的不断“挑剔”,但测试工作的出发点是:确保开发人员的劳动成果成为可被接收的、更高品质的软件产品。因此,测试人员应向开发人员谦虚求教,在测试工作中真正发挥作用,为保证软件产品的高质量起尽可能大的作用。测试的组织者应在促进上级组织协调各组织工作方面发挥作用。

(4)测试的估计

有效的测试工作需要投入足够的人力和物力,需要对工作的难度和消耗有充分的估计。测试的组织者也应在促进上级组织对资源的统一调度方面发挥作用。

2.3 算法

2.3.1 算法的思想及流程

算法(genetic algorithm)是模拟达尔文的选择和自然淘汰的生物进化过程的计算模型。该算法最先于1975年由美国的J.Holland教授提出。其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。算法作为一种不依赖具体问题的直接搜索方法受到广泛关注,它是现代有关智能计算的关键技术之一。

算法的思想源于生物学和适者生存的自然选择规律,因此是具有“生存+检测”的迭代过程的搜索算法。它以一个群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。算法将问题的解空间映射为空间,对解空间进行编码,即将每个可能的解用一串二进制或十进制数字串表示,

11

基于遗传算法的测试用例生成方法

称为一个染色体,解的每个分量称为一个基因。算法开始时先随机给出一群染色体,即候选解,由预先设定的某个评价指标计算每个染色体的适应值,将适应度低的染色体淘汰掉,而保留适应度高的优良染色体,然后对这些染色体进行选择复制、交叉和变异等操作,从而产生新的一代染色体群体。这样一代一代的“进化”,直至找到算法的最优解,即适应值满足条件的解。由于算法产生的“后代”是由优秀的“父代”和“母代”产生的,因此继承了上代的优良性态而优于上代,从而使算法向着最优解的方向进行,直到满足预先设定的条件。

算法过程包括了编码、产生初始群体、计算适应值、选择、交叉、变异等操作。其一般流程图如图2-1所示:

12

基于遗传算法的测试用例生成方法

开始 Gen:=0 确定字符串长度L 随机产生M个初始群体 满足终止条件? Y 输出结果 终止 N 计算群体中各个体适应度 自左向右执行一次遗传算子 j:=0 Ps j:=0 Pc j:=0 Pm 根据适应度选择 复制个体 执行复制 将复制结果添加到新群体中 j:=j+1 j=PsM? 根据适应度选择 两个交换个体 执行交换 将交换后的两个新个体添加到新群体中 j:=j+1 选择变异个体 执行变异 将变异结果添加到新群体中 j:=j+1 N j=PcM? N j=PmM? N Y Y Gen:=Gen+1 图2-1 算法流程图

Y 2.3.2 算法的特点

算法是一类可用于复杂系统优化计算的搜索算法,与其他一些优化算法相比,它的主要特点有如下几点[27]:

(1)算法以决策变量的编码作为运算对象,而传统优化算法往往直接利用变量的实际值来进行优化计算。这种对决策变量的编码处理方式,使得我们在优化计算过程中可以借鉴生物学中染色体和基因等概念以及和进化机理。特别是对—些无数值概念或很难有数值概念,而只有代码概念的优化问题,编码处理方式

13

基于遗传算法的测试用例生成方法

更显示出了其独待的优越性。

(2)算法直接以目标函数值作为搜索信息,而不需要目标函数的导数值等其他辅助信息。这个特性对很多目标函数难以求导的优化问题,以及组合优化问题等,应用算法时就显得比较方便。而且,直接利用目标函数值或个体适应度,也可使得我们可以把搜索范围集中到适应度较高的部分搜索空间中,从而提高了搜索效率。

(3)算法同时使用多个搜索点的搜索信息,而传统的优化算法往往是从解空间中的一个初始点开始最优解的迭代搜索过程。单个搜索点的搜索效率不高,甚至可能使搜索过程陷于局部最优解而停滞不前。算法通过对个体组成的群体进行操作运算,产生新的群体,其中包含的群体信息可以避免搜索一些不必搜索的点,所以实际上相当于搜索了更多的点,这是算法所特有的一种隐性并行性。

(4)算法使用概率搜索技术,而很多传统的优化算法往往使用的是确定性的搜索方法。确定性的方法由于固定了点与点之间的转移方法和转移关系,往往可能使得搜索永远达不到最优点,因而也限制了算法的应用范围。而算法属于一种自适应的概率搜索技术,其选择、交叉、变异等运算都是以一种概率的方式来进行的,从而增加了算法搜索过程的灵活性和搜索效率。

2.4本章小结

本章首先介绍了软件测试的一些基本概念,对软件测试的知识做了系统的介绍,包括软件测试的目的、原则、过程,介绍了了软件测试的主要技术难点,其中包括了测试用例的设计。本章后半部分介绍了算法的基本概念,包括算法的思想、流程及特点。

14

基于遗传算法的测试用例生成方法

第三章 基于算法的测试用例生成

3.1基于算法的测试用例生成基本内涵 3.1.1 软件测试用例的基本内涵

测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求,包含输入和输出两部分。

构造测试用例的目的是为了检查被测软件的操作结果是否与预期的需求相吻合,确定应用程序的某些特性是否正常的工作等。测试用例的质量可以用以下四个标准来描述:

(1)有效性:是否能够发现缺陷,或者至少可能发现缺陷;

(2)仿效性:可仿效的测试用例能够测试多项内容,从而减少测试用例的数量;

(3)经济性:测试用例的执行、分析和调试是否经济; (4)修改性:软件修改后测试用例的维护成本。

实践中,设计测试用例需遵守一定的原则,这些原则主要有: (1)全面性

包括:应尽可能覆盖程序的各种路径;应考虑存在跨年、跨月的数据;大量数据并发测试的准备等。

(2)正确性

输入界面后的数据应与测试文档所记录的数据一致且预期结果应与测试数据发生的业务吻合。

(3)符合正常业务惯例

测试数据应符合用户实际工作业务流程且兼顾各种业务变化的可能。 (4)仿真性

人名、地名、电话号码等应具有模拟功能,符合一般的命名惯例;不允许出现与知名人士、小说中人物名等雷同情况。

15


基于FPGA的递归最小二乘算法的研究与实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:绿城地产草坪建植工艺工法 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: