面向软件生态系统的软件调试关键技术研究
发布时间:2020-11-01 05:50
计算机的发展和普及使软件系统日益庞大和复杂。近年来,随着社会化编程方式的广泛使用,不同软件项目之间韵依赖增强,大量相互协同和依赖的软件项目组成了软件生态系统。这些给软件维护带来了巨大的困难。调试工作是软件维护中开销最大的过程,其中包括两项主要任务,分别是缺陷定位和缺陷修复。对这两项任务的研究和改进,有利于减轻开发者在调试过程中的负担,并提高软件质量。缺陷定位的研究致力于根据测试中收集的数据结合程序信息为开发者缩小寻找缺陷的范围。软件测试过程是由很多事件组成的,例如某条语句被执行和测试结果出错,如何通过这些事件找到缺陷是研究者要解决的问题。在软件生态系统中,多样的软件项目给缺陷定位提出了新的挑战。在软件生态系统中,缺陷可能会沿着依赖关系影响到其它项目,形成阻塞性缺陷。与普通缺陷的修复不同,阻塞性缺陷的修复涉及多个软件项目或模块,更加复杂和困难。现有研究关注对阻塞性缺陷的预测,然而即使识别出了阻塞性缺陷,仍难以改变其修复困难的情况。本文围绕软件生态系统中的缺陷定位和阻塞性缺陷这两个重要问题进行研究。首先,使用测试事件信息量对缺陷定位方法进行改进,提高缺陷定位在不同软件项目上的准确性和稳定性。然后,对开发者使用权变措施修复跨项目缺陷的过程进行实证研究,归纳总结了权变措施的特征和模式。最后,对阻塞性缺陷的可打破进行研究,分析与可打破性相关的缺陷特征,并提出了预测方法。本文的主要工作和贡献如下:第一,软件生态系统中的项目和测试用例集呈现多样性,给缺陷定位带来困难。基于频谱的缺陷定位方法定位使用测试事件发生的次数进行定位,容易受到数据集和缺陷类型的影响。为解决这些问题,本文提出了基于测试事件信息量的缺陷定位方法(SIQ),使用测试事件信息量对不同事件的在缺陷定位过程中的影响进行动态调整。在多个软件项目上的实验结果显示SIQ方法具有更好的定位准确性与稳定性,使用测试事件信息量可以提高缺陷定位方法对软件生态系统中不同项目与缺陷的适应性。第二,在软件生态系统中,跨项目缺陷给下游项目的维护带来很大困难。本文对跨项目缺陷的权变措施进行了实证研究,通过对权变措施的分析发现下游项目使用的权变措施与上游项目提出的修复是有显著差别的,并找到了三种可以进行权变措施的缺陷类型以及下游设计权变措施的四种模式。这些发现对开发权变措施相关的辅助工具有积极意义。第三,阻塞性缺陷通过权变措施等方式是可以打破的,这种可打破性对软件生态系统的调试过程有重要的意义。本文首先分析了缺陷特征与可打破性的关联性,发现开发者相关的属性对可打破性有很大的影响。然后提出了预测可打破性的方法,辅助下游开发者进行缺陷修复。无法打破的阻塞关系可能对下游项目造成长期的影响,这类缺陷需要上游开发者更多关注。本文提出了一种通过可变阈值调整预测精度的方法,对不可打破的阻塞关系进行更准确的预测,为上游开发者提供优先修复缺陷的建议。
【学位单位】:南京大学
【学位级别】:博士
【学位年份】:2018
【中图分类】:TP311.53
【部分图文】:
组成部分:输入数据、数据处理方法和输出结果。输入数据通常包括程序信息和??测试信息。数据处理方法分析输入数据,产生输出结果提供给开发者。这种通用??流程如图2.1所示。当选定了目标程序,测试信息和程序信息分别通过测试记录??和程序分析收集。然后对这些数据进行精炼和标准化以适应数据处理方法。输入??数据的类型对数据处理方法有很大的影响,并且影响后续缺陷定位的过程。通过??对输入数据进行分析,数据处理方法计算出可疑度信息引导开发者检查程序。可??疑度信息是对检查优先级的建议,研宄者希望可疑度信息可以辅助开发者更高效??的寻找缺陷代码。大部分的数据处理方法在输出可疑度信息之后结束工作。一些??缺陷定位方法继续利用开发者的反馈信息对可疑度进行修正。缺陷定位技术输出??可疑度信息作为结果。在理想情况下,出错的位置被赋予最高的可疑度,此时开??发者直接可以找到缺陷,不需要进行多余的检查。由于程序和缺陷的多样性,缺??陷定位技术很难在各种情况下都得到理想的结果。在平均定位效果上,大部分的??缺陷定位技术可以将程序中缺陷的部分排在可疑度的前10%以内。??缺陷定位技术按照完整的流程运行,每个阶段的处理都可能影响最后的定位??效果。研究者在各个阶段上都进行着研究和探索。作为缺陷定位技术的核心部分
第三章基于信息量的软件缺陷定位??策略和多缺陷位置标记策略。实验结果如图3.2所示,其中(a)是单缺陷位置标记??下的结果,(b)是多缺陷位置标记下的结果。每个图中的横坐标表示需要检查的代??码行数在总行数中所占的百分比,纵坐标表示发现的缺陷数量在缺陷总数量中所??占的百分比。我们希望缺陷定位方法可以以检查尽可能少代码的代价找到尽可能??多的缺陷。直观上判断,缺陷定位方法对应的曲线位置越高,说明该方法的定位??效果越好。??100?-?—??19。;??J?80-??Jf?J?--??〇?60?-?/?!?—?—Tarantula??1?-?#7?^^cSns
,,以及25%,50%和75%的百分位数值。为便于可视化比较,本文还使用箱形图??代码规模的分布情况(图4.1)。如图,权变措施中修改代码行数和改动文件??小于上游修复。??表4.2下游权变措施与上游修复的规模??F?Min.?Max.?Avg.?25th?50th?75th??#Files?Fixes?1?8?3?2?2?4??Workarounds?16?2?12?3??#SLOC?Fixes?1?829?93?19?36?105??Workarounds?1?662?61?10?26?45??本文同时采用了?Wilcoxon符号秩检验和Cliff’s?5效应量对权变措施和修复??统计比较,比较结果如表4.3所示。p值小于0.05表示改动文件数和修改的??行数在权变措施和上游修复中是有显著差异的。Cliff’s?5效应量表示改动文??的差异量级比较小,而修改代码行数的差异量级很大。??综合箱形图和统计分析的结果,本文得出结论:在规模上,权变措施明显小??对应的上游修复。??I???
【相似文献】
本文编号:2865112
【学位单位】:南京大学
【学位级别】:博士
【学位年份】:2018
【中图分类】:TP311.53
【部分图文】:
组成部分:输入数据、数据处理方法和输出结果。输入数据通常包括程序信息和??测试信息。数据处理方法分析输入数据,产生输出结果提供给开发者。这种通用??流程如图2.1所示。当选定了目标程序,测试信息和程序信息分别通过测试记录??和程序分析收集。然后对这些数据进行精炼和标准化以适应数据处理方法。输入??数据的类型对数据处理方法有很大的影响,并且影响后续缺陷定位的过程。通过??对输入数据进行分析,数据处理方法计算出可疑度信息引导开发者检查程序。可??疑度信息是对检查优先级的建议,研宄者希望可疑度信息可以辅助开发者更高效??的寻找缺陷代码。大部分的数据处理方法在输出可疑度信息之后结束工作。一些??缺陷定位方法继续利用开发者的反馈信息对可疑度进行修正。缺陷定位技术输出??可疑度信息作为结果。在理想情况下,出错的位置被赋予最高的可疑度,此时开??发者直接可以找到缺陷,不需要进行多余的检查。由于程序和缺陷的多样性,缺??陷定位技术很难在各种情况下都得到理想的结果。在平均定位效果上,大部分的??缺陷定位技术可以将程序中缺陷的部分排在可疑度的前10%以内。??缺陷定位技术按照完整的流程运行,每个阶段的处理都可能影响最后的定位??效果。研究者在各个阶段上都进行着研究和探索。作为缺陷定位技术的核心部分
第三章基于信息量的软件缺陷定位??策略和多缺陷位置标记策略。实验结果如图3.2所示,其中(a)是单缺陷位置标记??下的结果,(b)是多缺陷位置标记下的结果。每个图中的横坐标表示需要检查的代??码行数在总行数中所占的百分比,纵坐标表示发现的缺陷数量在缺陷总数量中所??占的百分比。我们希望缺陷定位方法可以以检查尽可能少代码的代价找到尽可能??多的缺陷。直观上判断,缺陷定位方法对应的曲线位置越高,说明该方法的定位??效果越好。??100?-?—??19。;??J?80-??Jf?J?--??〇?60?-?/?!?—?—Tarantula??1?-?#7?^^cSns
,,以及25%,50%和75%的百分位数值。为便于可视化比较,本文还使用箱形图??代码规模的分布情况(图4.1)。如图,权变措施中修改代码行数和改动文件??小于上游修复。??表4.2下游权变措施与上游修复的规模??F?Min.?Max.?Avg.?25th?50th?75th??#Files?Fixes?1?8?3?2?2?4??Workarounds?16?2?12?3??#SLOC?Fixes?1?829?93?19?36?105??Workarounds?1?662?61?10?26?45??本文同时采用了?Wilcoxon符号秩检验和Cliff’s?5效应量对权变措施和修复??统计比较,比较结果如表4.3所示。p值小于0.05表示改动文件数和修改的??行数在权变措施和上游修复中是有显著差异的。Cliff’s?5效应量表示改动文??的差异量级比较小,而修改代码行数的差异量级很大。??综合箱形图和统计分析的结果,本文得出结论:在规模上,权变措施明显小??对应的上游修复。??I???
【相似文献】
相关期刊论文 前10条
1 本刊讯;;“开源社”成立,全力推进中国软件生态系统的健康发展[J];软件产业与工程;2014年06期
2 孙杰贤;;ARM“逆袭”[J];中国信息化;2014年05期
3 刘梅;Sun重建软件生态系统[J];中国计算机用户;2003年38期
4 孙永杰;;高通:顺应64位趋势 把握LTE当下[J];通信世界;2013年27期
5 孙连山;李健;;软件生态系统的角色模型和质量模型[J];陕西科技大学学报(自然科学版);2011年02期
6 王柳;;软件转向 打造更好体验[J];软件和信息服务;2014年09期
7 孙连山;李健;;软件生态系统初探:概念解析及生命周期模型[J];陕西科技大学学报(自然科学版);2011年03期
8 刘文沛;崔强;杨达;;在线软件生态系统用户活跃度的经验研究[J];计算机工程与设计;2013年01期
9 ;IBM推出全新BladeCenter QS21系统将Cell刀片性能提高一倍[J];电子技术应用;2007年10期
10 ;Linux生态系统值多少钱[J];信息系统工程;2007年03期
相关博士学位论文 前1条
1 丁晖;面向软件生态系统的软件调试关键技术研究[D];南京大学;2018年
相关硕士学位论文 前1条
1 刘亚珺;开源软件生态系统中交替修改度量方法及工具实现[D];武汉大学;2018年
本文编号:2865112
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2865112.html