摘 要:提出了一种利用遗传算法帮助
测试人员在较短时间内完成软件模块的
黑盒测试,并给出测试结果
-ZU-R%RY+[1hD0和好的测试用例的方法。
pys3Qm4]D ]_5[0 51Testing软件测试网B~/\ H
C#[^bu;K!O b 关键词: 遗传算法 测试用例 耦合度在
软件测试中,黑盒测试主要是针对模块进行的
功能测试。最
51Testing软件测试网et3OL ]普遍的方法是以软件的功能说明书为基础将软件的输入划分为若干个等价类,多次运行该软件来检验软
u_(M
JjX&y-H.\0件对于不同的等价类是否能满足要求。但是在实际应用中,有的模块太大或输入参数太多,等价类划分
51Testing软件测试网rL,M
g5Zo后需要进行的测试
工作可能是一个极大的任务。这时,如何选择最优的测试用例就成为测试人员的一个
51Testing软件测试网8biy,S6PC'h重要任务。
51Testing软件测试网8G|k?$Z 51Testing软件测试网3R"_D;})Ol4j%? 遗传算法是模仿生物遗传和进化机制的一种最优化方法,它把类似于遗传基因的一些行为,如交叉
hy2I%Fi1H(kj0重组、变异、选择和淘汰等引入到算法求解的改进过程中。遗传算法的特点之一是,它同时保留着若干
9a
{@Hm/d4qY-c"d0局部最优解,通过交叉重组或者解的变异来寻求更好的解。与贪婪算法相比,遗传算法更可能找到全局
J F9H#Omx0最优解,而贪婪算法则容易限于局部最优而达不到全局最优。
3vv"_IhS9\4F0 %Laeio\,m0 如果能够将遗传算法有效地运用于黑盒测试中,帮助测试人员选择最优的测试用例,那么将给测试
o/ej.Z0muj(^0工作带来极大的帮助。
51Testing软件测试网&AaC/W6R#c 1 应用方法在设计具体的算法之前,我们先介绍遗传算法的基本算法,其算法框架如下1:
fEL8v3i
~(~o0 第一步,初始化:选取p个候选解作为初始解,把其中最好的解作为暂定(最优)解。
"e1g
W2x1iU$P+|0 y5i*iX{0 第二步,解的改进:若满足终止条件,输出暂定解,算法终止。否则,进行以下的运算:
51Testing软件测试网sR8bgA[(sM (1)解的交叉重组:从p个解中选出两个或两个以上的解进行交叉重组,得到新解,重复该运算
e!~Nr*E:Sr
?0若干次。
51Testing软件测试网nP.\&p@] [ $c
C{!s0h:Y1`t!f0 (2)解的变异:在候选解中随机加进一些变异,产生新解。
51Testing软件测试网gk ej S;tC N5K"wji g4l9q0 (3)局部搜索:对新产生的解用局部搜索法进行改良。若能得到比候选解更好的解,更新候选解
51Testing软件测试网?#lQ$Zf+f+G。
51Testing软件测试网,n3tBb5Y]i 51Testing软件测试网dkG A$Dx/yx (4)从全部解中按一定的准则选出p个解作为下一代的候选解,更新暂定解。