总第243期
2010年第1期
计算机与数字工程
Computer&DigitalEngineering
V01.38No.1
52
基于GA的多路径测试数据生成器适配函数设计+
孙宁
(92232部队北京100161)
摘要提出了基于GA的多路径测试数据生成的概念和实现方法。讨论了为了实现多路径测试数据生成,设计有效的和高效的适配函数应考虑的因素,用实际案例针对提出的适配函数进行了功能性能验证。结果表明了适配函数设计的有效性。
关键词遗传算法;多路径;测试数据生成;适配函数;基于GA的测试数据生成器
中图分类号TP311.5
DesignoftheFitnessFunctionofGA—Based
MultiplePathsTestDataGenerator
SunNing
(No.92232TroopsofPI。A,Beijing100161)
AbstractThispapergivesaconceptandimplementationofGA--basedmultiplepathstestdatageneration,discussesthecharacteristicsshouldbeconsideredtOdevelopaeffectiveandefficientfitnessfunctionformultiplepathstestdatagenera—tion.usesacasestudytOevaluatetheachievementofthefitnessfunctiorLTheexperimentprovesthatthedesignoffitnessfunctioniSeffectiveandefficient.
KeyWords
geneticalgorithms(GA)。multiplepaths,testdatagenerator,fitnessfunction,GA-basedtestdatagener—
ator(GATI)G)
ClassNumberTP311.5
1引言
测试的目的是产生一组最小数量的测试用例集合,使其能够揭示尽可能多的软件缺陷,并且满足特定的准则,称为测试充分性准则,如路径覆盖。自动化软件测试可以显著的降低软件开发成本。学术界提出了各种各样的测试数据生成器设计方法,每种方法都满足特定的测试充分性准则,满足预期的测试目标[1’5 ̄7]。
研究人员已经证实了演化计算适用于软件测试数据生成,并开发了G舭[2 ̄3]。现有的G麟一次只能生成一个测试数据,每得到一个所需的测试数据都要运行一次,在一次测试中要运行很多次,并且会产生大量的数据冗余,因而效率低下[4]。
本文考虑使测试数据生成器一次运行要能够生成一个测试数据集合(即不止一个测试数据)并可以满足特定准则。通常来讲,在输入域搜索输入数据被当作一个最优解问题处理。本研究以路径覆盖为测试充分性准则,给出了一个GATIⅪ,能够在一次运行中生成多个测试数据来覆盖多个目标路径,以多路径测试数据生成为背景,重点研究了适配函数设计方法,目的是得到适合多路径测试数据生成的有效的和高效的适配函数,以降低测试数据生成的工作量。
2测试数据生成器
在测试自动化研究的早期阶段,绝大部分测试数据生成器都使用梯度下降算法,但是这些算法效
+收稿日期:2009年9月10日,修回日期:2009年10月7日
作者简介:孙宁,男,硕士,工程师,研究方向:软件质量保证,软件测试技术。万方数据