国家学术搜索
登录
注册
中文
EN
首页
|
利用遗传算法生成基于MC/DC的回归测试数据
利用遗传算法生成基于MC/DC的回归测试数据
引用
扫码查看
点击上方二维码区域,可以放大扫码查看
原文链接
NETL
中文摘要:
在进行核电软件测试时,主要包括单元静态测试,单元动态测试,功能测试,集成测试四个部分,对每个过程的测试都要进行至少三次的回归测试以保证代码修改的正确性和避免代码修改对被测程序的其它模块产生副作用,而每次进行回归测试时,我们会将前几次的测试用例分为有效用例和本轮无效用例两种,为了达到测试的覆盖标准,必须再增补部分测试用例。在整个测试过程中,单元测试因为要对代码进行分析且复杂性较高,人工生成测试用例误差较大且所花费的时间相对较长,占整个测试工作的1/3甚至更多,所以,单元回归测试用例自动生成成为本文的研究内容。而遗传算法可以对已有测试用例进行最大化复用,理论上可以提高测试数据的生成效率。所以本文提出采用遗传算法生成单元回归测试数据。另外,目前,我们主要采用基本路径测试与逻辑覆盖相结合对核电等安全关键领域的软件进行单元测试,逻辑覆盖主要包括语句覆盖、分支覆盖、条件覆盖和修改条件/判定覆盖(MC/DC),其严谨性逐渐加强,与其它逻辑覆盖准则相比,MC/DC准则发现软件缺陷的能力较强,且用例个数只是呈线性增长,所以本文选择基于MC/DC准则进行回归测试用例的生成。针对以上情况,本文从纠正式回归测试的角度出发,在筛选出有效用例的前提下,为了增补部分数据满足MC/DC准则,提出了一种基于MC/DC准则的回归测试数据进化生成技术,主要围绕以下两个方面展开研究: 1)确定要增补的目标条件组合。即利用数据流分析技术,静态检查目标判定语句的MC/DC覆盖率是否可达到100%,并据此确定需要覆盖的判定的条件组合。首先根据判定的逻辑结构分析该判定所有可能的条件组合的集合H,其次,通过在修改代码P’上运行原始用例集合T记录该判定已被覆盖的条件组合集,则H’所对应的用例集我们称之为有效用例集,则未被覆盖的该判定的条件组合集据数据流分析法分析中的所有条件组合是否可被覆盖,提取出中所有可被覆盖的条件组合集,并根据 MC/DC准则分析该判定的MC/DC覆盖率是否可以达到100%,最后,根据MC/DC准则从H’’’中筛选出部分条件组合作为该判定的目标条件组合,进而确定该程序的目标条件组合。 2)利用遗传算法生成回归测试数据。首先,设计适合本文研究的适应度函数,其次,确定程序的目标条件组合,再次,设计目标函数,根据目标条件组合从已有测试用例中筛选出部分数据作为优势初始种群。再次,根据已筛选的部分初始种群所覆盖的条件组合与目标条件组合确定遗传操作分量。最后,利用适应度函数引导初始种群进化生成目标测试数据。 本文采用的基准测试程序为 sumday函数,从测试数据生成效率和稳定性两方面对本文方法和传统遗传算法进行比较,理论分析与实验证实,本文方法可以减少遗传算法的换代次数,能够更快、更准确、更稳定地生成回归测试数据,从而提高单元测试的效率与质量。
收起全部
展开查看外文信息
作者:
韩莹
展开 >
关键词:
核电软件
回归测试
修定条件
判定覆盖
遗传算法
适应度函数
授予学位:
硕士
学科专业:
软件工程
导师:
罗杨
学位年度:
2016
学位授予单位:
南华大学
语种:
中文
中图分类号:
TP