导读:本文包含了软件缺陷分析论文开题报告文献综述及选题提纲参考文献,主要关键词:软件生态系统,GitHub,跨项目缺陷,修复过程
软件缺陷分析论文文献综述
马皖王莹[1](2019)在《软件生态系统中的跨项目缺陷理解与分析技术》一文中研究指出作为最受欢迎的开源代码仓库,GitHub以其特有的“社交编程”方式极大地促进了软件生态系统的发展。在GitHub软件生态系统中,下游项目依赖于上游项目提供的基础设施或功能组件,形成了复杂的项目间依赖关系。通过这些依赖关系,上游项目中的缺陷将其影响传递到下游项目中,形成软件生态系统中独有的跨项目缺陷。相比于项目内缺陷,跨项目缺陷影响范围更大,危害整个生态系统的健康;其处理过程更复杂,涉及多个项目开发者的协作;且由于一些影响仅暴露在下游,上游测试集无法捕获,导致其检测难度更高。随着GitHub的愈加流行和软件生态系统的高速发展,此类缺陷数量不断增加,其有别于项目内缺陷的特点导致已有的缺陷理解和分析结论以及检测修复等技术不再适用。然而当前软件生态系统和缺陷的相关工作仍缺少对该类缺陷的关注,尤其缺乏对其检测、诊断和修复过程的理解和特征总结,缺少适用于软件生态系统的跨项目缺陷检测和修复的支持技术与工具。因此,本文围绕GitHub软件生态系统中的跨项目缺陷理解和分析技术展开研究。具体而言,本文的第一项工作关注程序员处理跨项目缺陷时的应对措施,着重研究跨项目缺陷带来的两个难点:跨项目缺陷的根本原因追踪和多项目开发者协作,探索程序员在面对这两个难点时的惯常行为,并获取程序员处理跨项目缺陷时的技术与工具需求,用以启发后续工作并提供实证支持;然后,根据实证分析中获得的开发者需求,分别为提高跨项目缺陷修复质量和检测潜在跨项目缺陷设计相应的方法和工具。因而,本文的第二项工作是识别给定跨项目缺陷所影响的下游模块(方法或类)名单,以帮助开发者理解缺陷的影响范围和严重程度,从而与相应下游开发者沟通,提供令上下游满意的缺陷修复补丁;本文的第叁项工作是设计适用于GitHub软件生态系统的跨项目回归测试框架,其目的是对一次上游代码修改挑选相关的下游测试用例以补充上游测试集,从而检测潜在的跨项目缺陷。本文的主要贡献总结如下:(1)为深入理解程序员如何应对跨项目缺陷,本文对其特有的表现形式——跨项目关联缺陷进行实证研究。跨项目关联缺陷是指报告到两个不同项目中具有因果关系的一对缺陷。该实证研究具体调查叁个研究问题:1)跨项目缺陷根本原因追踪的难度;2)有助于跨项目根源追踪的因素;3)下游开发者配合上游修复的惯常行为。通过对GitHub上Python科学计算生态系统中的271对跨项目关联缺陷报告进行人工审查以及对116位程序员的在线问卷调查,本文总结了一系列开发者在跨项目缺陷诊断和修复过程中的惯常行为,并为缺陷追踪系统等工具的设计提出建议。(2)为识别跨项目缺陷具体影响哪些下游模块,本文提出了一个生态系统范围的跨项目缺陷影响分析方法。对于给定跨项目缺陷,已知其上游出错方法和缺陷触发条件,本方法首先通过生态系统范围的调用依赖分析识别使用该出错方法的下游候选模块(方法或类),然后通过符号分析将每个候选模块入口处到上游方法调用点的路径编码成符号约束,通过约束求解判断是否存在满足缺陷触发条件的下游模块输入。如存在,则该模块受给定缺陷影响。为验证该方法的有效性,本文实现了一个工具原型并在31个跨项目缺陷上进行实验。实验结果表明,该方法可以从25490个候选下游模块中共计找出1132个受这31个缺陷影响的模块;对于每个缺陷,平均剔除了 66.5%的不受影响模块,有效地减少了程序员的代码审查工作量。(3)为进行跨项目回归测试、检测潜在跨项目缺陷,本文提出了一个适用于GitHub软件生态系统的测试框架并设计了两步跨项目测试选择策略。测试框架由叁部分组成:1)中心仓库,用以处理和存放细粒度的生态系统依赖网络、测试执行轨迹以及历史构建日志;2)两步测试挑选组件,用以挑选与一次上游修改最相关的下游项目和具体的下游测试用例;3)测试执行和反馈组件,用以生成特定于具体项目的测试脚本、执行测试并将结果通知给相关项目。两步跨项目测试选择策略首先基于项目在生态网络中的中心性和对上游被修改模块的依赖强度选择最重要的相关下游项目,然后提出基于上游方法覆盖率和基于上游文件中心性的测试选择策略,在下游项目中挑选能够补充上游测试集的测试文件。本文实现了一个GitHub集成工具,并在133个Python科学计算类项目上进行评估。对100次上游项目代码提交进行回归测试的结果表明,该测试框架能够有效地选择出可以补充上游测试集的下游测试用例。本文的研究结果有助于深入理解GitHub软件生态系统中的跨项目缺陷,所提出的支持技术与工具也能有效地帮助检测和修复此类缺陷,保障软件生态系统的健康发展。(本文来源于《南京大学》期刊2019-06-30)
高子欣,赵逢禹,刘亚[2](2019)在《基于缺陷报告分析的软件缺陷定位方法》一文中研究指出在软件开发过程中,软件缺陷是不可避免的。在缺陷跟踪系统中,一个重要的问题是如何根据用户所提交的缺陷报告,进行缺陷的自动定位。本文在综合考虑缺陷报告与源代码文件结构相似性的基础上,进一步分析已修复缺陷报告、缺陷报告中的异常堆栈(StackTrace)信息对软件缺陷定位的作用,从而提高定位的精度。在Eclipse、AspectJ和SWT开源项目数据程序集上进行相关实验,并与Buglocator、BRTracer和BLUiR缺陷定位方法进行了比较分析,实验结果表明,本文方法能显着提高软件缺陷定位的精度。(本文来源于《软件》期刊2019年05期)
刘文杰,江贺[3](2019)在《软件缺陷报告严重性属性分析》一文中研究指出软件缺陷报告的严重性对缺陷的解决具有关键作用。随着软件规模的不断扩大,使用开源的软件缺陷跟踪系统成为海量缺陷信息数据的主要处理方法。分析缺陷报告严重性在数据仓库中的作用,是处理软件缺陷的重要内容。通过对Bugzilla缺陷跟踪系统数据的研究和分析,发现不同项目的属性特征差异较大,同时在修复率、解决时长、开发者、组件等属性上的统计特征具有一致性。对Mozilla项目和Eclipse项目的数据进行系统分析,并根据不同组件和项目中严重性程度分布情况,认为软件缺陷报告严重性程度的提升会导致缺陷修复率的提高,同时严重性程度为normal级别的缺陷解决时长最短,开发者持有缺陷的数量越高其修复率越低。(本文来源于《计算机工程与应用》期刊2019年14期)
梁德军,杨成武[4](2018)在《基于ODC的软件缺陷分析统计系统的设计与实现》一文中研究指出软件产品发布后,使用过程中不可避免地仍会发现各种缺陷,对这些缺陷进行记录、统计和分析具有重要意义。该文结合软件用户使用实际,设计并实现了基于ODC的软件缺陷分析统计系统。该系统能够根据实际需要对软件缺陷进行各种统计和分析,并将结果生成分析统计报告。(本文来源于《电脑知识与技术》期刊2018年36期)
娄丰鹏[5](2018)在《基于相关性分析的跨项目软件缺陷预测方法研究》一文中研究指出软件缺陷预测是未知类别标签的软件模块可以通过已知类别标签的软件模块进行预测的一个过程。但是,对于一个新的软件系统或软件模块有限的项目往往没有足够的历史缺陷数据来建立预测模型。因此,有很多学者提出跨项目的软件缺陷预测方法。跨项目软件缺陷预测的样本特征一样,但是样本分布不一样,导致缺陷预测的效果较差。本文在跨项目软件缺陷预测上进行研究,提出了一系列有利于提高跨项目软件缺陷预测性能的方法,目的是提高跨项目缺陷预测的效率。首先,提出了一种基于局部保持典型相关性分析的跨项目软件缺陷预测方法(LP-CCA)。该方法首先使用K近邻为训练样本和测试样本分别学习一个近邻矩阵,然后使用典型相关分析对两个样本集学习投影矩阵,得到迁移之后的数据集。结合原始空间近邻矩阵,使投影之后的每个数据集样本之间保持原来的关系,同时两个样本集还能保持最大相关性。其次,提出了一种基于正交约束的局部保持典型相关分析的跨项目软件缺陷预测方法(OCLP-CCA)。LP-CCA虽然能很好的保持局部结构信息且能使跨项目数据集之间保持最大相关性,但是得到的投影变换通常是非正交的,本文在LP-CCA方法上引入正交约束,既确保了共享特征的最大相关性以及特征向量的正交性,同时也将样本间的近邻关系保持下来,使子空间中样本之间自然正交,进一步消除了样本冗余。最后,软件缺陷预测中的数据集通常是类不平衡的,基于此提出了一种聚类算法融合下采样技术的类不平衡处理方法,该方法针对数据集不平衡的两种情况提出了两种不同的策略,即针对类非常不平衡时提出一种聚类簇特定融合下采样的策略、类一般不平衡时提出一种聚类簇随机融合下采样的策略。该方法是先用前面的方法进行数据集数据处理,然后采用聚类融合下采样技术将数据集进行平衡化处理。本文实验是在已公开的叁个数据集上进行,包括NASA、AEEEM、ReLink,并与一些已存在的特征提取和跨项目软件缺陷预测方法作对比,实验结果充分证明了本文方法的有效性。(本文来源于《南京邮电大学》期刊2018-11-14)
左万娟,虞砺琨,黄晨,董燕[6](2018)在《基于变量操作特征分析的软件缺陷模式研究》一文中研究指出根据航天器软件第叁方评测数据统计分析,因变量定义错误、使用错误所导致的软件缺陷约占以修改程序方式更正的缺陷总数的36%,仅次于需求相关软件缺陷占比。为提升软件质量,针对与变量相关的软件缺陷开展了专题研究、对变量操作特征进行了系统分析与分类,构建了与变量操作特征相关联的软件缺陷模式集。实践结果表明,依据缺陷模式与变量操作特征之间的关联性开展软件测试活动,可以有效提高软件缺陷检出效率。(本文来源于《航天控制》期刊2018年05期)
孙俊若,叶波,汪圣利,刘畅[7](2018)在《基于缺陷数据的雷达软件失效模式分析与应用》一文中研究指出基于雷达软件缺陷历史数据开展失效模式分析与应用研究。首先,结合雷达软件特点与失效机理,构建失效数据模型;然后,在失效数据模型基础上,阐述雷达软件失效模式分析与应用方法,以及相应的算法原理;最后,开展工程实例研究,获取适用于雷达软件的典型失效模式。实例结果表明:文中所提出的方法可有效提升雷达软件失效分析的效率和质量,避免相似问题重复发生,保障雷达软件质量满足系统要求。(本文来源于《现代雷达》期刊2018年06期)
孙晶晶,吴建兵[8](2018)在《基于国内某OTA的软件测试缺陷分析对软件开发流程的思考》一文中研究指出目前主流公司的软件开发流程一般为需求评审->详细设计->编码->单元测试->功能测试->回归测试,进而再根据实际情况对整个软件开发流程进行修正。然而,目前软件开发流程的缺陷修正缺乏大数据作为支撑,只是依据自己当下的需求功能做出的及时修改,未形成统一的规范。因此,本文对国内某OTA公司一年左右的缺陷数据进行统计,从而优化整个软件开发流程,减少软件开发流程中的缺陷数。(本文来源于《轻工科技》期刊2018年06期)
张芸[9](2018)在《软件工程缺陷分析关键技术研究》一文中研究指出随着现代计算机软件的高速发展,软件缺陷(bugs)越来越成为影响软件开发效率和质量的关键因素。软件缺陷分析是一种重要的软件维护行为。如何尽早发现并修复软件缺陷成为软件工程领域的一个研究热点。软件缺陷预测技术预测新生成代码单元存在缺陷的概率,帮助开发人员及早发现缺陷。缺陷报告管理技术可将提交到缺陷追踪系统的缺陷,定位到源代码中需要变更的代码单元,帮助开发者尽快修复缺陷。虽然目前已有许多研究关注于软件缺陷分析技术,但依然面临一些困难和挑战:1)现有的缺陷预测技术不能很好的解决跨项目缺陷预测问题;2)软件漏洞预测难度较大,现有的技术性能不理想;3)现有的缺陷报告定位技术无法分析源代码和缺陷报告之间的深层次的语义关联,从而拉低了缺陷报告定位的准确度;4)重复或类似的缺陷很多,但关于开发者频繁遇见的软件缺陷信息无从获得。针对以上所诉困难和挑战,本文重点研究了缺陷预测、漏洞预测、缺陷报告定位和软件频繁缺陷挖掘等缺陷分析关键技术,提出了一系列自动化技术,旨在为软件开发者提供高性能自动化工具,优化软件缺陷发现、定位和修复过程。本文的主要工作和贡献如下:1.针对跨项目软件缺陷预测这个挑战,本文实证研究了七种机器学习领域的集成学习算法在跨项目缺陷预测中的性能:average voting(Ave),Max,BaggingJ48,BaggingNaive,BoostingJ48,BoostingNaive和Random Forest(RF),并和当前性能较好的CODEP方法和Zimmermann等人提出的LR方法进行了对比。结果显示Max和BaggingJ48算法性能较其他方法要好。2.软件漏洞是一类会影响软件安全性的软件缺陷。本文提出新的自动化算法VULPREDICTOR来预测软件系统中可能存在漏洞的文件,该算法结合了软件度量特征和文本特征构建了一个集成分类模型。实验结果显示,VULPREDICTOR的性能比Walden等人提出的算法性能要好,优于VULPREDICTOR自身的6个基础分类器。同时,VULPREDICTOR的性能优于之前实证研究中发现的性能较好的两个集成分类算法Max和BaggingJ48。与时下先进的因式分解机算法(Factorization Machine,以下简称FM)对比时,结果显示两种算法在漏洞预测问题上的性能表现差不多。3.提出一个多抽象层次的缺陷报告定位方法MULAB,提取源代码和缺陷报告中的文本信息,并用多个主题模型表示成多个抽象层次,然后计算缺陷报告和代码单元之间的相似度,本文用不同的数据融合方法衍生出MULAB的12个变体。实验结果表明12个变体中COMBMNZ-DEF方法的性能最佳,并且COMBMNZ-DEF的性能大幅度优于Scanniello等人提出的当前较先进的方法PR。4.提出软件频繁缺陷(frequently encountered bugs,以下统称FEBugs)这个概念,并提出名为RFEB的算法,它可以分析Stack Overflow上海量的与软件缺陷相关的问答信息,使用迭代查询优化技术挖掘出特定领域的前N个FEBugs。本文在10个领域上评估了RFEB的性能,结果显示RFEB的性能在10个领域都优于Stack Overflow默认的搜索引擎。(本文来源于《浙江大学》期刊2018-04-12)
王延飞[10](2018)在《基于用户评论的APP软件缺陷分析方法研究》一文中研究指出目前,随着互联网的发展,互联网行业也不断受到大家的关注。在关注下的互联网行业也不断催生出了大量的APP软件,它涉及到了生活的很多方面。而随着APP软件的应用规模的快速增长,APP软件与人们越来越息息相关,也会由于APP软件本身存在的缺陷影响到用户的工作和生活。不同用户在使用APP软件过程中,对其的感受可能不同,用户可以把相关的感受以APP软件用户评论的形式发表在应用市场上。在这些APP软件用户评论中,有的表达了对APP软件的喜爱,而有的则表达了对APP软件的厌恶。在大量的APP软件用户评论中,有部分APP软件用户评论体现了APP软件的缺陷。这里缺陷是反映了用户在使用APP软件过程中的不佳体验,值得引起其他用户和开发者的关注。因此如何基于用户评论分析出APP软件缺陷成为当前需要研究的问题。基于以上论述,本文开展了以下研究:(1)本文首先论述了APP软件用户评论的重要性,然后分析大量APP软件用户评论,并结合相关文献对体现缺陷的APP软件用户评论进行归类,总结了常见的APP软件缺陷类型并给出相应的APP软件用户评论示例。(2)由于包含缺陷的APP软件用户评论极可能被包含在负面评论中,为提高APP软件缺陷分类模型的准确率,所以本文使用情感倾向分析方法从APP软件用户评论中挖掘出负面评论,最后以负面评论作为步骤(3)的缺陷分析的数据。(3)针对挖掘出的负面评论,使用训练和测试过的APP软件缺陷分类模型进行缺陷分析。其中APP软件缺陷分类模型需要经过训练和测试过程,其中训练过程包括了分词、停用词处理、特征选择,并使用朴素贝叶斯对模型进行APP软件缺陷分类模型的建立;测试过程主要是通过十折交叉验证来测试APP软件缺陷分类模型的分析效果。(本文来源于《昆明理工大学》期刊2018-03-01)
软件缺陷分析论文开题报告
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
在软件开发过程中,软件缺陷是不可避免的。在缺陷跟踪系统中,一个重要的问题是如何根据用户所提交的缺陷报告,进行缺陷的自动定位。本文在综合考虑缺陷报告与源代码文件结构相似性的基础上,进一步分析已修复缺陷报告、缺陷报告中的异常堆栈(StackTrace)信息对软件缺陷定位的作用,从而提高定位的精度。在Eclipse、AspectJ和SWT开源项目数据程序集上进行相关实验,并与Buglocator、BRTracer和BLUiR缺陷定位方法进行了比较分析,实验结果表明,本文方法能显着提高软件缺陷定位的精度。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
软件缺陷分析论文参考文献
[1].马皖王莹.软件生态系统中的跨项目缺陷理解与分析技术[D].南京大学.2019
[2].高子欣,赵逢禹,刘亚.基于缺陷报告分析的软件缺陷定位方法[J].软件.2019
[3].刘文杰,江贺.软件缺陷报告严重性属性分析[J].计算机工程与应用.2019
[4].梁德军,杨成武.基于ODC的软件缺陷分析统计系统的设计与实现[J].电脑知识与技术.2018
[5].娄丰鹏.基于相关性分析的跨项目软件缺陷预测方法研究[D].南京邮电大学.2018
[6].左万娟,虞砺琨,黄晨,董燕.基于变量操作特征分析的软件缺陷模式研究[J].航天控制.2018
[7].孙俊若,叶波,汪圣利,刘畅.基于缺陷数据的雷达软件失效模式分析与应用[J].现代雷达.2018
[8].孙晶晶,吴建兵.基于国内某OTA的软件测试缺陷分析对软件开发流程的思考[J].轻工科技.2018
[9].张芸.软件工程缺陷分析关键技术研究[D].浙江大学.2018
[10].王延飞.基于用户评论的APP软件缺陷分析方法研究[D].昆明理工大学.2018