本科毕业论文-基于遗传算法的测试用例生成方法【精品毕业设计】(完整版)
基于遗传算法的测试用例生成技术

Ab s t r a c t : I n t h e a c t u a l l i f e c y c l e o f s o f t wa r e , d u e t o v a r i o u s r e a s o n s , t h e t i me ha t t s p e n d i n g o n s o f t wa re t e s t i n g i s o f t e n c y , h a s n o t c a u s e d e n o u g h a t t e n t i o n .Th i s p a p e r p r e s e n t s a t e s t c a s e g e n e r a t i o n t e c h n o l o g y b a s e d o n g e n e t i c a l g o r i t h m,wh i c h c o n s i de r i n g Co v e r a g e at r i o,t h e n u mb e r o f t e s t c a s e s a n d t he e x e c u t i o n o r d e n Te s t i n g p e r s o n n e l c a n e x e c u t e t e s t c a s e i n t h e e s t a b l i s h e d or d e r nd a a c c o mp l i s h t h e mo s t i mp o r t a n t s o f t wa r e f u n c t i o n t e s t i n t h e t i me a s s h o r t e r s a p o s s i b l e a c c o r d i n g t o t h e me ho t d r e f e r r e d i n t h i s pa p e r . Ke y wo r d s : s o twa f r e t e s t i n g ;c o v e r a g e ; ge n e t i c a l go it r h m;e x e c t i o n s e q u e n c e o f t e s t c a s e ;c a s e g e n e r a t i o n t e c h no l o g y
软件测试中基于遗传算法的测试用例生成研究

软件测试中基于遗传算法的测试用例生成研究在软件开发过程中,测试是确保软件质量的重要环节之一。
在测试过程中,测试用例的生成是关键步骤之一,且在测试用例的生成过程中,覆盖率是评估测试用例质量的重要指标之一。
然而,在软件复杂度不断提高的背景下,传统的手工测试用例生成方法已经难以满足迅猛发展的软件行业对测试效率和测试质量的需求。
因此,基于遗传算法的测试用例生成方法应运而生。
遗传算法是模拟生物进化过程的一种优化算法,其核心思想是通过模拟自然选择和遗传机制,不断迭代生成更优解。
在测试用例生成中,可以将测试用例看作遗传算法中的个体,目标函数可以是代码的覆盖率等指标。
基于遗传算法的测试用例生成方法可以根据具体的测试目标和抽象的遗传算法的框架,生成更加高效和优质的测试用例。
基于遗传算法的测试用例生成方法主要包含以下几个步骤。
第一步是测试用例的表达和编码。
将测试用例表示为遗传算法中的个体,通常采用一种编码方式,如二进制编码。
根据具体测试任务和被测系统的特点,将测试用例的输入和操作转化为遗传算法可以处理的编码形式。
第二步是适应度函数的定义。
适应度函数是遗传算法中非常重要的一个概念,用于评价个体的适应程度。
在测试用例生成中,适应度函数可以根据测试目标来定义。
例如,在代码覆盖率的角度考虑,可以定义适应度函数为被测系统中被测试到的代码行数的比例。
第三步是选择操作。
在遗传算法中,选择操作是根据适应度函数的值来选择优秀个体的过程。
在测试用例生成中,选择操作旨在选择那些具有较高适应度值的测试用例,以保留其优秀性状。
第四步是交叉操作。
交叉操作是遗传算法中的进化过程,通过交换个体的某些部分以产生新的个体。
在测试用例生成中,交叉操作可以根据测试用例的编码方式来定义。
例如,对于二进制编码的测试用例,可以通过交换部分二进制位来生成新的测试用例。
第五步是变异操作。
变异操作是遗传算法中的一种随机变动操作,用于保持种群的多样性。
在测试用例生成中,变异操作可以根据具体的测试需求来定义。
【精品】基于遗传算法的TSP问题研究本科生毕业论文设计

设计题目:_____基于遗传算法的TSP问题研究_ 学院:_______计算机与信息学院 __ _____毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日目录摘要 (I)Abstract (II)第1章绪论 ............................................................. - 1 -1.1旅行商问题........................................................ - 1 -1.2研究意义 ......................................................... - 1 -1.3 论文的组织结构................................................... - 1 - 第2章遗传算法理论概述.................................................. - 2 -2.1遗传算法的起源和发展.............................................. - 2 -2.2遗传算法基本原理.................................................. - 3 -2.3遗传算法的基本步骤................................................ - 4 -2.4 遗传算法的流程图................................................. - 4 -2.5遗传算法的特点.................................................... - 5 -2.6遗传算法的应用.................................................... - 6 - 第3章 TSP问题及研究的基本方法.......................................... - 8 -3.1 TSP问题概述...................................................... - 8 -3.2 TSP的应用与价值.................................................. - 8 -3.3 TSP问题的数学模型................................................ - 9 -3.4 TSP 问题的分类................................................... - 9 -3.5 现有的求解TSP问题的几种算法 .....................................- 10 - 第4章遗传算法在TSP的应用..............................................- 12 -4.1遗传算法在TSP上的应用............................................- 12 -4.2算法的实现........................................................- 12 -4.3编码 .............................................................- 12 -4.4初始化种群........................................................- 13 -4.5适应度函数........................................................- 13 -4.6选择操作 .........................................................- 13 -4.7交叉操作 .........................................................- 15 -4.8变异操作 .........................................................- 17 -4.9实验结果 .........................................................- 18 - 结论 ..................................................................- 20 - 展望 ....................................................................- 20 - 参考文献 .............................................................- 21 - 致谢 ..................................................................- 22 - 附录程序 ................................................................- 23 -摘要TSP问题(Traveling Salesman Problem)是已知有n个城市,现有一推销员必须遍访这n 个城市,且每个城市只能访问一次,最后又必须返回出发城市。
基本遗传算法【精品毕业设计】(完整版)

基本遗传算法【精品毕业设计】(完整版)遗传算法1、遗传算法⽣物学基础和基本理论达尔⽂⾃然选择学说认为,⽣物要⽣存下去,就必须进⾏⽣存⽃争。
⽣存⽃争包括种内⽃争、种间⽃争以及⽣物跟⽆机环境之间的⽃争三个⽅⾯。
在⽣存⽃争中,具有有利变异(mutation)的个体容易存活下来,并且有更多的机会将有利变异传给后代;具有不利变异的个体就容易被淘汰,产⽣后代的机会也少得多。
因此,凡是在⽣存⽃争中获胜的个体都是对环境适应性⽐较强的。
达尔⽂把这种在⽣存⽃争中适者⽣存,不适者淘汰的过程叫做⾃然选择。
达尔⽂的⾃然选择学说表明,遗传和变异是决定⽣物进化的内在因素。
遗传是指⽗代与⼦代之间,在性状上存在的相似现象。
变异是指⽗代与⼦代之间,以及⼦代的个体之间,在性状上或多或少地存在的差异现象。
在⽣物体内,遗传和变异的关系⼗分密切。
⼀个⽣物体的遗传性状往往会发⽣变异,⽽变异的性状有的可以遗传。
遗传能使⽣物的性状不断地传送给后代,因此保持了物种的特性,变异能够使⽣物的性状发⽣改变,从⽽适应新的环境⽽不断地向前发展。
⽣物的各项⽣命活动都有它的物质基础,⽣物的遗传与变异也是这样。
根据现代细胞学和遗传学的研究得知,遗传物质的主要载体是染⾊体(chromsome),染⾊体主要是由DNA(脱氧核糖核酸)和蛋⽩质组成,其中DNA⼜是最主要的遗传物质。
现代分⼦⽔平的遗传学的研究⼜进⼀步证明,基因(gene)是有遗传效应的⽚段,它储存着遗传信息,可以准确地复制,也能够发⽣突变,并可通过控制蛋⽩质的合成⽽控制⽣物的性状。
⽣物体⾃⾝通过对基因的复制(reproduction)和交叉(crossover),即基因分离、基因⾃由组合和基因连锁互换)的操作使其性状的遗传得到选择和控制。
同时,通过基因重组、基因变异和染⾊体在结构和数⽬上的变异产⽣丰富多采的变异现象。
需要指出的是,根据达尔⽂进化论,多种多样的⽣物之所以能够适应环境⽽得以⽣存进化,是和上述的遗传和变异⽣命现象分不开的。
基于遗传算法的优化设计论文[5篇]
![基于遗传算法的优化设计论文[5篇]](https://img.taocdn.com/s3/m/cad20e2c974bcf84b9d528ea81c758f5f61f2985.png)
基于遗传算法的优化设计论文[5篇]第一篇:基于遗传算法的优化设计论文1数学模型的建立影响抄板落料特性的主要因素有:抄板的几何尺寸a和b、圆筒半径R、圆筒的转速n、抄板安装角β以及折弯抄板间的夹角θ等[4,9]。
在不同的参数a、β、θ下,抄板的安装会出现如图1所示的情况。
图1描述了不同参数组合下抄板的落料特性横截面示意图。
其中,图1(a)与图1(b)、图1(c)、图1(d)的区别在于其安装角为钝角。
当安装角不为钝角且OB与OC的夹角σ不小于OD与OC夹角ψ时(即σ≥ψ),会出现图1(b)所示的安装情况;当σ<ψ时,又会出现图1(c)与图1(d)所示的情况,而两者区别在于,η+θ是否超过180°,若不超过,则为图1(c)情况,反之则为图1(d)情况。
其中,点A为抄板上物料表面与筒壁的接触点或为物料表面与抄板横向长度b边的交点;点B为抄板的顶点;点C为抄板折弯点;点D为抄板边与筒壁的交点;点E为OB连线与圆筒内壁面的交点;点F为OC连线与圆筒内壁面的交点。
1.1动力学休止角(γ)[4,10]抄板上的物料表面在初始状态时保持稳定,直到物料表面与水平面的夹角大于物料的休止角(最大稳定角)时才发生落料情况。
随着转筒的转动,抄板上物料的坡度会一直发生改变。
当物料的坡度大于最大稳定角时,物料开始掉落。
此时,由于物料的下落,物料表面重新达到最大稳定角开始停止掉落。
然而,抄板一直随着转筒转动,使得抄板内物料的坡度一直发生改变,物料坡度又超过最大休止角。
这个过程一直持续到抄板转动到一定位置(即抄板位置处于最大落料角δL时),此时抄板内的物料落空。
通常,在计算抄板持有量时,会采用动力学休止角来作为物料发生掉落的依据,即抄板内的物料坡度超过γ时,物料开始掉落。
该角主要与抄板在滚筒中的位置δ、动摩擦因数μ和弗劳德数Fr等有关。
1.2抄板持有量的计算随着抄板的转动,一般可以将落料过程划分为3部分(R-1,R-2,R-3),如图1(a)所示。
利用遗传算法进行测试用例自动生成

利用遗传算法进行数据流分析下的测试用例自动生成摘要:软件测试越来越受到重视,但是软件测试是一个复杂、工作量很大的过程。
测试用例的自动生成在一定程度上能够减小软件测试的工作量,但是测试用例自动生成技术是一个难点。
本文通过借鉴遗传算法,基于数据流分析,在def-use路径覆盖的测试准则上,提出了一个测试用例自动生成的算法。
并通过实验比较了遗传算法和随机选择法在测试用例自动生成上的优劣。
关键词:软件测试;数据流测试;遗传算法;GA;测试用例自动生成中图分类号:TP311Automatic Test Data Generation for Data Flow Testing Usinga Genetic AlgorithmAbstract: Software testing is more and more important, but the software testing is plex and has heavy workload. The automatic generation of test cases can reduce the workload of software testing, but the automatic generation of test cases is a difficult problem. This paper introduces an automatic test case generation algorithm which uses genetic algorithm and is based on data flow analysis and is under the test criterion of the def-use path coverage. And pares the advantages and disadvantages between genetic algorithm and random selection method in the automatic generation of test cases.Key words:software testing; data flow testing; genetic algorithms;automatic test data generation1 引言软件测试描述一种用来促进鉴定软件的正确性、完整性和质量的过程,是一种实际输出与预期输出间的比较过程。
基于遗传算法的测试用例生成技术

基于遗传算法的测试用例生成技术宋倩【摘要】在计算机软件的生命周期中,由于各种各样的原因,留给软件测试的时间往往不够执行全面而充分的测试。
覆盖率和数量作为测试用例质量的主要影响因子,一直受到人们的关注。
然而测试用例的执行顺序作为影响测试效率的重要因素,却一直未引起足够的重视。
提出了一种基于遗传算法的测试用例生成技术,综合考虑覆盖率、数量和用例的执行顺序三个因子,生成高效的测试用例集。
使测试人员能够按照既定的顺序执行用例集,在最短的时间内,完成最重要的软件功能测试。
%In the actual life cycle of software, due to various reasons, the time that spending on software testing is often not enough to perform the comprehensive test. Coverage ratio and the number of test cases as the main quality factors, have been payed more attention to. However, the execution order of test case as one of the important factors that affect test efficiency, has not caused enough attention. This paper presents a test case generation technology based on genetic algorithm, which considering Coverage ratio, the number of test cases and the execution order. Testing personnel can execute test case in the established order and accomplish the most important software function test in the time as shorter as possible according to the method referred in this paper.【期刊名称】《计算机系统应用》【年(卷),期】2014(000)011【总页数】4页(P264-267)【关键词】软件测试;覆盖率;遗传算法;用例执行顺序;用例生成技术【作者】宋倩【作者单位】江苏自动化研究所,连云港 222006【正文语种】中文随着计算机技术的普及以及在一些重要领域的应用,软件测试逐渐受到重视,但在实际的产品生命周期中,由于各种各样的原因,留给软件测试的时间往往不够执行全面而充分的测试. 高覆盖率和低数量的测试用例可以有效地减少测试时间,提高测试效率,如何设计高效的测试用例,使得软件测试工作在有限的时间内执行最充分的测试是现阶段软件测试工作的难点[1]. 本文综合考虑了测试用例的覆盖率、数量以及执行顺序三方面的因素,采用遗传算法,对相关算子和运行参数进行改进,利用遗传算法的特点设计了一种新的测试用例生成模型,以达到进一步提高测试效率的目的.1 基于遗传算法的测试用例生成1.1 测试用例生成模型本文将遗传算法用作核心算法来进行测试用例自动生成的研究,首先要建立测试用例自动生成模型,并对影响求解效率的相关算子进行研究设计. 围绕遗传算法的主要设计思想为: 根据相关被测软件的文档确定被测软件的运行状态因素的初始化状态可用编码;对各状态之间的转换所需时间进行代价估算; 种群规模确定; 适应度函数选择.具体应用到测试用例的自动生成按照以下步骤进行:1) 分析被测软件的需求规格说明,提取其所有的输入数据和工作条件;2) 将输入数据按照等价类划分的方法进行分类,并将工作条件按照枚举的方法列出;3) 根据输入和工作条件确定软件的初始工作状态;4) 计算初始种群中每一条染色的适应度值,从而确定种群的优劣度;运用初始的测试用例集合执行遗传操作,获得相应的适应度值,如果遗传代数达到要求,则转向步骤7),否则转向步骤6);的评价、运算,引导种群向目标值靠近,找到最终合适的解或者达到预期限定的迭代次数; 测试仿真运行环境,对种群的优劣进行评价,返回一个适应度值供核心算法包使用[2].1.2 模型算子设计1.2.1 染色体编码方案和初始种群构造根据种群的优劣度,执行改进后的遗传算法包,生成新的测试用例集合,并转向步骤5);运行结束,输出合适的测试用例.根据上述步骤,将遗传算法的测试用例自动生成模型分为三部分: 测试环境的构造,根据对软件相关文档和具体软件执行情况的分析,确定一个稳定的被测试软件的初始运行状态; 遗传算法包,按照前面步骤生成初始的种群,通过对种群中的染色体进行反复遗传算法的编码方法可以分为三大类: 最小字符集编码方法、浮点数编码方法、符号编码方法. 本文选择用最小字符集编码方法[3].1.2.2 适应度函数设计假设某系统软件各状态之间的切换代价表如表2所示. 一条染色体基因序列为 i 的编码为(0,0,0,0,0,0,0,0),基因序列为 i+1 的编码为(1,1,1,1,1,1,1,1),按照表1 中所列时间代价值i 和i+1之间进行切换的时间值为:Ti=t1+ t2+ t31+ t4+ t5+ t6+t71+ t81. 则该染色体的适度函数值为:表1 时间代价表工作模式系统时间运行状态系统当前坐标当前方位目标距离目标属性目标种类时间代价t1 t2 0-1 0-2 1-2 0-1 0-2 0-3 1-2 1-3 2-3 0-1 0-2 1-2 t4 t5 t6 t31 t32 t33 t71 t72 t73 t74 t75 t76 t81 t82 t83其中n 为一条染色体的基因数量.1.2.3 遗传操作算子设计1)选择采用适应度比例和最佳个体保存相结合的方法进行选择: ①根据式(1)计算各个个体的适应度比例值将适应度比例值最高的个体保存到缓冲区中; ②根据选择概率Ps 选择的个体进入交配池作为待交叉的个体. 其中, Ps 为种群规模N 的倒数; ③设P(t+1)为经过交叉和变异操作形成的新种群,用缓冲区中的个体和子代种群P(t+1)中的个体一一进行比较. 若存在相同的,则选择操作结束. 若不存在则转入下一步.④用缓冲区中的个体去替代种群P(t+1)中适应度函数值最低的个体,构成新的规模为N 的群体P(t+1).2)交叉为了保证交叉操作的正确性,对染色体中存在互为逆序基因的个体进行交叉,把互为逆序的基因对在进行交叉的个体中进行互换. 假设染色体i 的基因数量为6,父体P1 和P2 中存在互为逆序的基因. P1 和P2 的交叉过程如图1 所示.3)变异图1 交叉操作示意图依据个体编码表示方法的不同,采用逆转变异算子. 具体操作步骤如下: ①产生一组随机数,随机数的数目为种群规模的0.1 倍,随机数的范围为[0, N-1](N 为种群规模),随机数的值即为产生变异的个体编号. ②对于每一个被选中的个体,随机地选取两个基因座的位置i, j 然后将i, j 之间的基因进行逆转. 变异的操作过程如图2 所示.图2 变异过程示意图1.2.4 运行参数设计1)种群大小N将群体规模设计成一个公式(2)所示的分段函数, n为全部软件状态的逻辑组合数. 文中软件的n=2*2*3*2*2*2*4*3=1152,其中N<n!.2)选择概率选择概率为适应度比例的平均值,高于平均值的个体进入交配池,保证每次都有个体被选中,同时被选中的个体不至于很多[4].3)交叉概率本文摒弃交叉概率的概念,设计一种符合具体情况的交叉规则,将交配池中的个体放入一个二维数组中,设此二维数组一共有n 行,则行下标之和等于n 的两行进行交叉操作.4)变异概率本文的变异概率Pm 也是由一组随机数决定的,首先根据种群的规模N 产生个范围在闭区间[0,N-1]中的随机数置于数组a 中,组范围在[0, n-1]中的随机数置于数组b 中. 其中a[0]=k, b[0]={i,j},且i<j,表示要进行变异的第一条染色体为当前群体中下标为k 的染色体,变异部分为编号为i 和j 之间的所有基因,随后将基因编号i 和j 之间的所有基因逆序排列.1.2.5 算法终止条件由于实际应用遗传算法时不允许让其无停止地进行搜索,同时问题的最优解也通常未知,因此必须设计一些近似收敛准则来终止算法进程[4]. 即给定一个最大进化步数为终止条件,如公式(3)所示,这里最大进化步数和种群的初始规模是相等的.2 实验与分析本文采用算法模型生成测试用例,在覆盖率相同的情况下,对比传统测试过程的时间代价和基于遗传算法生成的测试用例的时间代价,验证生成的测试用例是否提高了测试效率.传统测试过程的时间代价取经验值的平均值,单位为人分,即当1 人执行该测试过程时,执行完该测试所需的分钟数. 为兼顾实验的普遍性,分别选取了软件状态因素为6、10、20、50、100 和1000 时进行实验分析. 两者的时间代价对比结果如表2 所示,当软件状态因素越多时,基于遗传算法生成的测试用例在执行过程中节省的时间代价越明显.表2 时间代价对比表6 10 20 50 100 1000传统测试 8134 42144 90678 114689 389076 5876442基于遗传算法生成的用例 7818 39848 80074 98769 289048 3979889时间代价缩减 316(3.9%) 2296(5.4%) 10604(11.7%) 15920(13.9%) 100028(25.7%) 1896553(32.3%)3 结语本文从提高测试效率的角度提出一种基于遗传算法的测试用例生成模型,并对相关算子和算法运行参数进行设计. 与传统的测试用例生成算法相比,本文的算法不仅在保证覆盖率的前提下使生成的测试用例数量尽可能地少,而且兼顾到优化测试用例的执行顺序,从而进一步缩短测试执行过程的时间,提高测试效率.参考文献【相关文献】1 李欣.基于贝叶斯网络和遗传算法的测试用例生成模型[硕士学位论文].重庆:重庆交通大学,2012.2 刘瑞. 基于改进PSO 算法的测试用例生成方法研究[硕士学位论文].郑州:河南大学,2011.3 费雯悦.基于改进遗传算法的测试用例自动生成及质量评价研究[硕士学位论文].北京:北京化工大学,2012.4 李柱.用于测试用例生成的遗传算法改进[硕士学位论文].成都:西南大学,2011.。
遗传算法新论文【精品毕业设计】(完整版)

学校代码 10126 学号 00708037 分类号密级本科毕业论文基于遗传算法的图像阈值分割学院、系数学科学学院计算数学系专业名称信息与计算科学年级 2007级学生姓名刘家祥指导教师曹军2011年 5月 20 日内容摘要图像分割就是指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。
图像的分割是以灰度值作为分割的依据,通过各个像素的灰度值和事先确定的阈值的比较来分割图像。
如何确定最合适的阈值是处理好图像分割的关键,这自然成为一直以来分割算法研究的焦点。
遗传算法是对生物进化论中自然选择和遗传学机理中生物进化过程的模拟来计算最优解的方法。
遗传算法具有众多的优点,如鲁棒性、并行性、自适应性和快速收敛,可以应用在图像处理技术领域中图像分割技术来确定分割阈值。
本文主要介绍基于遗传算法的最小误差阈值法、最大类间方差法(Otsu法)以及最佳直方图熵法(KSW熵法)等三种方法分割图像。
关键词:图像分割,遗传算法,阈值分割AbstractImage segmentation refers to the image into regions each with characteristics and goals of the technology to extract and process of interest. Segmentation is a segmentation based on gray value, gray value of each pixel through the predetermined threshold value and comparing the image segmentation. How to determine the most appropriate threshold is the key to handling image segmentation, which has naturally become the focus of segmentation algorithms.Genetic algorithm is a biological theory of evolution and genetic mechanism of natural selection in biological evolution simulation method to calculate the optimal solution. Genetic algorithm has many advantages, such as robustness, parallel, adaptive, and fast convergence, can be used in the field of image processing image segmentation technique to determine the split threshold.In this paper, genetic algorithm based on minimum error threshold, the largest class variance (Otsu method) and the best histogram entropy (KSW entropy method) are three ways to split the image.Keywords : Image segmentation, genetic algorithms, threshold目录第一章绪论 .................................................. - 1 - 第二章遗传算法概述 ........................................ . - 2 -2.1遗传算法的研究历史....................................... - 2 -2.2生物背景................................................. - 2 -2.3遗传算法的基本思想....................................... - 3 -2.4遗传算法的几个概念....................................... - 4 -2.4.1适应度函数......................................... - 4 -2.4.2遗传算法最常用的算子............................... - 4 -2.5遗传算法运算的基本流程................................... - 5 - 第三章图像分割的现状 ........................................ - 7 -3.1图像分割简介............................................. - 7 -3.2图像分割方法............................................. - 8 -3.2.1基于边缘检测的分割................................. - 8 -3.2.2基于区域的分割..................................... - 8 -3.2.3边缘与区域相结合的分割............................. - 9 -3.3阈值选取................................................. - 9 - 第四章基于遗传算法的图像阈值分割 ........................... - 10 -4.1图像阈值................................................ - 10 -4.2阈值分割的原理.......................................... - 10 -4.3最小误差阈值法.......................................... - 11 -4.3.1最小误差法图像阈值分割............................ - 11 -4.3.2 利用遗传算法来改进最小误差法...................... - 12 -4.4 最大类间方差法(Otsu法)............................... - 13 -4.4.1最大类间方差法(Otsu法)阈值分割.................. - 13 -4.4.2 Otsu阈值分割的遗传算法设计........................ - 15 -4.5 KSW熵法................................................ - 17 -4.5.1 KSW熵阈值分割................................... - 17 -4.5.2 KSW单阈值分割的遗传算法设计..................... - 18 -4.5.3 KSW双阈值分割的遗传算法设计..................... - 19 - 第五章基于新的遗传算法的图像分割 ........................... - 25 -5.1混沌遗传算法............................................ - 25 -5.2量子遗传算法............................................ - 25 -5.3免疫遗传算法............................................ - 25 - 结论 .......................................................... - 26 - 致谢 .......................................................... - 27 - 参考文献: ..................................................... - 28 -内蒙古大学本科学年论文第- 1 - 页基于遗传算法的图像阈值分割第一章绪论图像分割是图像处理与计算机视觉的基本问题之一,是图像处理到图像分析的关键步骤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要软件测试是保证软件质量和可靠性重要手段,在这方面发挥着其它方法不可替代的作用。
然而,软件测试是一个复杂的过程,需要耗费巨大的人力、物力和时间,约占整个软件开发成本的40%~50%。
因此,提高软件测试工具的自动化程度对于确保软件开发质量、降低软件开发成本非常重要。
而提高测试用例生成的自动化程度又是提高测试工具乃至整个测试过程自动化程度的关键所在,本文主要针对这一问题进行了研究和设计。
本文在分析软件测试和遗传算法基本概念的基础上,提出软件测试用例的设计是软件测试的难点之一。
论文提出了基于遗传算法的测试用例生成的内含是应用遗传算法来求解一组优化的测试用例,其框架包括了测试环境构造、遗传算法及测试运行环境三部分,论文给出了基于遗传算法的测试用例生成的模型。
最后以三角形分类程序为例应用遗传算法进行测试用例生成的模拟,结果显示,应用遗传算法进行测试用例生成可行。
关键词:软件测试测试用例遗传算法ABSTRACTSoftware test is the important means that guarantee software quality and reliability,and in this respect,it plays the role that other method cannot replace. However software test is a complex process , it needs to consume huge manpower,material resources and time,which takes the 40%~50% of entire software development cost approximately . Therefore,raising the automation level of software test tool is very important for ensure software development quality and reduction software development cost . And then,the most important is raising the automation level of the test case generation for raising the automation level of test tool and even entire test process,so this paper study and design mainly according to this problem.Based on the analysis of basic concepts of software testing and genetic algorithm, this article proposes that software test case design is one of the difficulties of software testing. Paper presents the inherent in software test case designing based on genetic algorithm is using genetic algorithm to solve a set of optimization test cases, and the framework includes three parts which are test environment construction, genetic algorithm and the environment for test . Paper presents the model of software test case generation based on genetic algorithm. Finally, we take the triangle categorizer as an example, simulate software test case generation based on genetic algorithm. The results display that software test case generation basing on genetic algorithm is possible.KEY WORDS: software test , test case , genetic algorithm目录摘要 (1)ABSTRACT (2)目录 (3)第一章绪论 (5)1.1 问题的提出 (5)1.2 国内外研究现状 (6)1.3 论文研究内容 (8)第二章软件测试及遗传算法基本概念 (9)2.1 软件测试基本概念 (9)2.1.1 软件测试的目的 (9)2.1.2 软件测试的原则 (9)2.2 软件测试的难点 (10)2.3 遗传算法 (11)2.3.1 遗传算法的思想及流程 (11)2.3.2 遗传算法的特点 (13)2.4本章小结 (14)第三章基于遗传算法的测试用例生成 (15)3.1基于遗传算法的测试用例生成基本内涵 (15)3.1.1 软件测试用例的基本内涵 (15)3.1.2 基于遗传算法的测试用例生成的基本内涵 (16)3.2 基于遗传算法的测试用例生成框架 (16)3.3 基于遗传算法的测试用例生成算法实现 (18)3.3.1 编码策略 (18)3.3.2 适应度函数及程序插桩 (19)3.3.3 遗传策略 (20)3.3.4 参数控制 (21)3.4 本章小结 (22)第四章实验及结果分析 (23)4.1 待测程序分析 (23)4.1.1 待测程序引入 (23)4.1.2 程序流程分析 (23)4.1.3 路径分析 (24)4.2 程序插桩 (24)4.3 参数设定及程序实现 (25)4.3.1 参数设定 (25)4.3.2 部分程序实现 (26)4.4 结果分析 (28)4.5 本章小结 (30)第五章总结与展望 (31)致谢语 (32)参考文献 (33)第一章绪论1.1 问题的提出在信息化普及的今天,计算机在人们的生活和工作中占据着重要地位,使人们的工作效率提高,也使生活更丰富多彩。
而作为计算机的重要组成部分,软件的重要性不言而喻。
随着计算机技术的日益发展,计算机软件的规模越来越庞大,复杂性越来越高,这就为软件质量的保证带来了困难。
因为软件的开发过程大部分是由人的智力活动构成,不可能完美无缺。
而软件缺陷如果不能及时发现,带来的损失可能是巨大的,有的甚至会危及人的生命。
在历史上臭名昭著的软件缺陷案例有[1]:1999年12月3日,美国航天局的火星基地登陆飞船在试图登陆火星表面时失踪,原因仅仅是一个数据位的意外更改;美国爱国者导弹防御系统曾在几次对抗导弹战役中失利,其中一次竟然误使28名美国士兵丧生,原因是一个很小的系统时钟错误导致系统累计拖延了100多个小时使跟踪系统失去准确度;还有就是大名鼎鼎的“千年虫”问题,起因是在20世纪70年代,为了节省硬盘空间,美国某位程序员在编写工资系统时将4位数日期(如1975)改成了2位数日期(如75),该缺陷一直拖到1995年都没有修复,最终给全球带来了高达数亿美元的损失等等。
作为提高软件质量的重要手段,软件测试越来越受到重视。
在美国的微软公司,测试人员和开发人员的比例达到了2:1[2]。
软件测试伴随着整个开发过程,是一个非常复杂的过程,其消耗的人力和资金一般占整个项目的一半左右。
而在某些特别重要的软件开发过程中,为保证软件的质量,测试的费用甚至是其它各阶段之和的3到5倍[3]。
测试过程中,测试人员通常需要分析、设计和执行大量的测试用例,从而耗费了大量资源,因此找出合理的测试用例生成方法可以有效缩短测试时间,减少损耗,一般可以有效降低整个项目的4%费用[4]。
然而,目前生成测试用例的方法主要是向前核查法和逆向回溯法,测试人员根据自己的项目经验手工为指定的程序路径生成测试数据[5]。
向前核查法是指沿预期的路径向前检查,确定到每一个判断点时变量所能提供的最宽数值区间,然后继续前行,从而将多个变量的可能取值范围逐渐缩小,到达程序出口后,就能找到覆盖这条路径所需的输入数据。
逆向回溯法正好相反,是指从期望执行的程序位置出发,逆向回溯,在每个判断点处逐渐调整各变量取值,直到退到程序入口,即获得所需的输入数据。
向前核查法和逆向回溯法的局限性是,对某些条件要求苛刻的路径使用时非常困难,同时由于大多数程序中包含的路径数非常多,如果按每条路径手工测试,显然带来的工作量是非常巨大的。
由于测试的工作量大、测试过程的重复性高等特点,自动化测试正逐渐得到广泛的应用。
很多测试工具的使用大大提高了测试人员的工作效率,有效减少了项目开支。
然而这些工具主要为测试的执行、管理和度量工具,在测试用例自动生成方面还不完善。
而在软件测试过程中,动态测试作为测试的重要环节占了很大比例,动态测试的关键正是测试用例的生成问题。
因此,寻找一种有效的测试用例生成方法是提高测试自动化的重中之重。
1.2 国内外研究现状自上世纪60年代起,国内外的学者专家对测试用例的自动生成提出了很多方法,应用较为广泛的有随机法、静态法、动态法以及试探法[5] [6] [7] [8] [9] [10] [11] [12]。
D.Bird[13]等提出了采用随机法生成测试用例,其思想是不受限制地随机产生大量的测试用例。
该方法产生测试用例的成本很低,在某些抽样测试中效果较好,但是该方法的针对性较弱,在输入空间为无穷大时产生的测试用例集非常庞大,测试效率低,现在的很多工具都是采用的该方法。
静态法的典型代表是符号执行法,由P.D.Coward[14]和C.Ramanmoorthy [15] [16]等人提出。
该方法的主要思想是把符号值作为程序输入,静态“执行”指定路径的语句,从而得到变量的值。
这里所谓的执行,是指按照程序执行的顺序将相应的变量用符号表达式代换。
该方法的缺点为需要进行复杂的代数运算,难以处理依赖于输入变量的循环条件、数组元素下标和模块调用的情况,特别对于动态的面向对象程序不适合使用。
与静态法相对应的是动态法,该方法的基本思想是从输入空间中任取一个假设解作为初始输入,通过实际运行程序不断调整输入,使得程序实际执行路径向指定路径不断逼近,直到与指定路径完全一致。
Korel[17]法是动态法的典型代表:其采用的是步进的方式执行程序,即一次只前进一个分支谓词;Korel还提出了“谓词函数”的概念,用来度量分支谓词的接近满足程度。