共查询到18条相似文献,搜索用时 62 毫秒
1.
程序自动修复技术能够有效地降低软件维护成本,是近年来学术研究的热点问题.待修复程序规约的刻画,对自动修复过程具有至关重要的作用.从规约的角度对程序自动修复问题和技术进行了分析梳理.从待修复程序是否具有完整的程序规约,将现有修复问题分为不完全规约、完全规约和半完全规约这3大类待修复问题.以3类抽象问题为线索,梳理了不同前提假设下修复技术面临的核心问题、问题之间的联系和技术体系中的逻辑关系.分析了不完全规约程序修复问题中高精度补丁生成、规约补全和补丁择优等问题,梳理了完全规约程序修复问题中内存泄漏、资源泄露、并发错误中的数据竞争、原子性违背、顺序违背和死锁,配置错误以及特定性能错误等具体问题及研究进展,整理了半完全规约程序修复问题中多种形式的修复具体问题及研究进展.最后分析了程序自动修复面临的机遇和挑战. 相似文献
2.
3.
程序缺陷自动修复是指针对程序中存在的缺陷,自动生成相应的程序补丁,进而使程序恢复正常运行.首先,根据补丁生成方式的不同,将程序缺陷自动修复方法划分为4类,分别为基于搜索的、基于语义的、基于机器学习的以及基于错误报告驱动的程序缺陷自动修复方法.基于搜索的程序缺陷自动修复方法运用启发式算法在搜索空间内通过搜索生成程序补丁;... 相似文献
4.
已有的程序自动化调试研究大多面向工业软件,而学生程序调试具有缺陷数多、类型复杂等特有难点问题,因此,针对学生程序设计应用背景,研究程序自动修复方法,利用模板示例程序指导补丁的演化.改进了遗传编程算法,包括适应度的计算、变异体的生成方式和变异位置及操作的选择方式,使其更加适合修复学生程序.提出了基于示例的静态错误定位方法,能够识别缺陷程序和参考程序差异和可能的变异操作,有效地缩小补丁的搜索空间以提高修复的准确性.提出了基于执行值序列的变量映射方法,以降低变异体的编译错误,提高修复的准确性.在此基础上,设计并实现了示例演化驱动的Java学生程序自动修复系统.实验结果表明,该方法可以修复含有多缺陷学生程序,对于所用的测试集,当学生程序只有1个~2个错误时,修复率将近100%;当含有3个缺陷时,修复率约为70%;当含有4个及以上缺陷时,修复率约为50%. 相似文献
5.
6.
为实现云计算环境下的高效软件测试,提出一种Web 应用系统功能测试的并行测试用例自动生成方法。该方法首先根据场景流图采用深度优先遍历算法生成并行测试路径,录制组合产生并行测试脚本,并进行参数化处理;然后,使用基于搜索的软件测试(SBST)方法自动生成可经过目标路径的有效测试数据集,脚本与数据耦合形成大量可并行部署的自动化测试用例。为验证方法的有效性设计了自动化云测试原型系统。实验结果表明,该并行测试用例自动生成方法可以高效地为云平台提供测试用例输入,提高测试效率。 相似文献
7.
在大规模复杂系统产品线工程中,人工配置难免会导致配置的不一致,即,配置数据会违背预定义的约束(也可以称为一致性约束).对于大规模复杂系统产品线体系结构,比如信息物理系统产品线,往往存在成百上千的可变点以及约束,而且约束与可变点之间存在复杂的依赖关系,为不一致配置的修复带来很大的挑战.为了解决这个问题,针对前期提出的基于多目标搜索以及约束求解技术的自动不一致配置修复推荐框架(Zen-Fix),提出一种改进的IBEA算法(De IBEA).De IBEA通过将差分引入IBEA算法,搜索过程中,基于可行解和不可行解的差分变异产生后代,最终为用户推荐符合预定义约束并且对于配置效率来说最优的配置修复方案.基于一个工业案例海底油田采控系统产品线为例,通过模拟一个产品的配置过程,产生了10 189个优化问题,结果表明:Zen-Fix框架结合De IBEA算法,可以实时地为用户提供较优的不一致配置修复方案.此外,通过对这10 189个问题的推荐方案进行对比,证明了De IBEA算法无论从时间效率还是搜索性能上都优于原始的IBEA算法. 相似文献
8.
9.
组合测试可以有效检测待测系统中由参数间交互作用而引发的故障.在其30多年的发展过程中,覆盖表生成一直是关键问题之一,相关研究文献已达200多篇.作为一种有效的覆盖表生成算法,已有的禁忌搜索算法在所生成的覆盖表规模上具备一定的优势,但其解的质量和运算速度仍有提升空间;同时,这些算法实际应用能力较差,既不支持约束处理,也无法生成可变力度覆盖表.针对以上问题,提出了一种禁忌搜索算法.该算法从3个方面对已有的算法进行了改进:1)算法参数配置调优分pair-wise和爬山两阶段进行,确保使用较少配置条数最大程度击中最优配置,进一步提高算法生成覆盖表的规模;2)进行算法并行化,加速算法生成覆盖表的速度;3)增加约束处理和变力度处理,使算法可适应多种测试场景.实验结果表明,该算法在固定力度、变力度、带约束等多种类型覆盖表的规模上都具有一定优势,同时,并行化使算法平均加速2.6倍左右. 相似文献
10.
修复软件缺陷是软件工程领域一个无法回避的重要问题,而程序自动修复技术则旨在自动、准确且高效地修复存在缺陷的程序,以缓解软件缺陷所带来的问题.近年来,随着深度学习的快速发展,程序自动修复领域兴起了一种使用深度神经网络去自动捕捉缺陷程序和其补丁之间关系的方法,被称为神经程序修复.从在基准测试上被正确修复的缺陷的数量上看,神经程序修复工具的修复性能已经显著超过了非学习的程序自动修复工具.然而,近期有研究发现神经程序修复系统性能的提升可能得益于测试数据在训练数据中存在,即数据泄露.受此启发,为进一步探究神经程序修复系统数据泄露的原因及影响,更公平地评估现有的系统,本文(1)对现有神经程序修复系统进行了系统的分类和总结,根据分类结果定义了神经程序修复系统的数据泄露,并为每个类别的系统设计了数据泄露的检测方法;(2)依照上一步骤中的数据泄露检测方法对现有模型展开了大规模检测,并探究了数据泄露对模型真实性能与评估性能间差异的影响以及对模型本身的影响;(3)分析现有神经程序修复系统数据集的收集和过滤策略,加以改进和补充,在现有流行的数据集上基于改进后的策略构建了一个纯净的大规模程序修复训练数据集,并验证了该数据集避免数据泄露的有效性.实验结果发现:本次调研的10个神经程序修复系统在基准测试集上均出现了数据泄露,其中神经程序修复系统RewardRepair的数据泄露问题较为严重,在基准测试集Defects4J(v1.2.0)上的数据泄露达24处,泄露比例高达53.33%.此外,数据泄露对神经程序修复系统的鲁棒性也造成了影响,调研的5个神经程序修复系统均因数据泄露产生了鲁棒性降低的问题.由此可见,数据泄露是一个十分常见的问题,且会使神经程序修复系统得到不公平的性能评估结果,以及影响系统本身的性质.研究人员在训练神经程序修复模型时,应尽可能避免出现数据泄露,且要考虑数据泄露问题对神经程序修复系统性能评估产生的影响,尽可能更公平地评估系统. 相似文献
11.
12.
提出一种基于XML描述的测试用例自动生成方法:采用XML语言来描述报文接口信息,根据域测试策略生成域测试表,通过组合覆盖生成算法生成最终的测试用例包.该方法产生的测试用例具有数量少、能实现报文接口的最大限度覆盖的特点,从而在保证软件质量的同时,降低成本,提高效率. 相似文献
13.
C语言执行效率高,使用范围广泛,然而存在的安全问题也日益突出。内存错误是C程序中常见的缺陷,严重时将导致系统崩溃。传统的人工修复内存错误耗费大量人力物力,并可能在修复过程中引入新的错误。针对这个问题,提出了一种基于跟踪机制的程序自动修复方法。构建包含程序文件中变量作用分布的作用域树;提出基于全局指针的跟踪机制,通过插入全局指针跟踪发生错误的分配内存在程序中的状态;基于全局指针自动生成补丁,利用作用域树定位缺陷修复位置从而来安全地修复内存错误。基于上述过程,实现了原型工具DTSFix,并在开源程序中对其进行了评估。实验结果表明,DTSFix能够有效检测并修复程序中的真实缺陷而且不产生副作用。 相似文献
14.
DANIEL E. COOKE 《Software》1996,26(11):1205-1246
SequenceL is a language intended for experimentation with declarative constructs for nonscalar processing. In SequenceL, a problem solver provides little in the way of iterative/recursive details in a problem solution. Instead, the problem solver describes the solution directly by specifying, via a metastructure, the data structures which will hold results useful for solving the problem. SequenceL is a small language (i.e. there is a small number of language constructs), and it is not domain dependent. This paper is meant to introduce the reader to SequenceL. 相似文献
15.
随着软件规模的庞大,程序量和复杂度在不停地增长,测试工作变得越加艰巨,自动化软件测试可以在一定程度上减少测试开销,同时增加在有限时间内的测试。文章在单元测试框架CPPUnit的基础上开发了Windows文件系统的自动化测试框架,将CPPUnit从单元测试领域扩展到功能测试和非功能测试领域,设计的框架不仅可以支持文件系统的功能回归测试.而且可以支持文件文件系统的部分非功能测试,结果用XML文件保存并可在Web上浏览,论文详细的阐述了该自动化测试框架的结构以及设计模式,该设计思路对于研究文件系统自动化测试工具有一定的参考价值。 相似文献
16.
随着软件规模的庞大,程序量和复杂度在不停地增长,测试工作变得越加艰巨,自动化软件测试可以在一定程度上减少测试开销,同时增加在有限时间内的测试。文章在单元测试框架CPPUnit的基础上开发了Windows文件系统的自动化测试框架,将CPPUnit从单元测试领域扩展到功能测试和非功能测试领域,设计的框架不仅可以支持文件系统的功能回归测试,而且可以支持文件文件系统的部分非功能测试,结果用XML文件保存并可在Web上浏览,论文详细的阐述了该自动化测试框架的结构以及设计模式,该设计思路对于研究文件系统自动化测试工具有一定的参考价值。 相似文献
17.
程序自动修复技术是保证软件质量、提高开发效率的有效手段. 目前, 大多数自动修复工具使用测试用例作为补丁正确性验证的最终方法, 有限的测试用例难以对程序进行充分的测试, 因此自动修复工具生成的补丁集合包含大量的不正确补丁. 为了识别不正确补丁, 我们采用对比缺陷修复前后成功测试的执行路径以及生成测试用例的方法来识别修复补丁的有效性, 以解决自动修复工具精度低的问题. 我们的方法评估了来自6个经典的自动修复工具生成的132个补丁, 并成功地排除了80个不正确的补丁并且没有排除正确的补丁, 这表明我们的方法可以有效地排除不正确补丁, 并且提高自动修复工具的精度. 相似文献
18.
改进的基因表达式程序设计实现复杂函数的自动建模 总被引:3,自引:1,他引:3
基因表达式程序设计(简称GEP)是一种新型的遗传算法,它继承了遗传程序设计(简称GP)和遗传算法的优点并且具有更高的效率和更强的搜索能力,但同时也存在缺乏学习机制,搜索过于盲目的缺点,针对其缺点对其进行了如下改进:(1)改变了GEP的基因表达式结构,将原来的“头+尾”结构改成了“头+身+尾”结构,以利于其引进学习机制;(2)同源基因也采用“头+身+尾”结构,以利于增强其搜索能力;用其实现复杂函数的自动建模,实例测试的结果表明用改进的基因表达式程序设计得到的模型比传统方法得到的模型要好,甚至优于用遗传程序设计和基本的基因表达式程序设计得到的模型。 相似文献