代码缺陷静态检查与预测的相互增强方法研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:hlyhky
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件系统的日益复杂,软件质量越来越受到人们的关注。由于软件设计和编码错误产生的软件缺陷使得软件产品不能满足用户需求或者在系统运行中出现意料之外的结果和行为。严重的软件缺陷会导致巨大的经济损失甚至威胁生命安全。发现和找到软件中的缺陷是很困难的,软件开发人员和质量保障人员采取一系列措施来尽早发现软件缺陷,保证软件产品质量。静态检查技术和缺陷预测技术能够帮助开发人员发现软件缺陷。静态检查技术通过使用静态检查工具,在不执行代码的情况下发现代码中存在的潜在异常,向开发者提示各种警告信息,开发者审查警告信息对代码做出必要的修正。缺陷预测技术通过充分挖掘软件仓库历史数据,发现代码特征和软件缺陷之间的关系,构建缺陷预测模型,向开发者推荐有可能包含缺陷的软件模块。静态检查技术和缺陷预测技术帮助软件实践参与者了解软件缺陷分布,合理分配有限的人力物力资源,提高软件测试和维护的效率。在已有研究中,大多数研究者一般聚焦静态检查技术和缺陷预测技术其中之一展开,鲜有交集。尽管静态检查的结果是警告信息,缺陷预测的结果是依据预测结果排序后的模块序列,但是两者拥有共同的目标一—发现软件中的缺陷。那么,静态检查技术同缺陷预测技术能否彼此增强,即静态检查产生的警告信息能否提升缺陷预测的性能?缺陷预测的结果能否改进静态检查警告的排序?为回答这些问题,本文进行一系列研究和实验,主要工作和结论如下:(1)对静态检查工具检测缺陷的能力进行实证研究,分析两款静态检查工具FindBugs和PMD检测缺陷的召回率和精度,同时将静态检查技术同缺陷预测技术相比较。结果表明,静态检查工具能够检测出相当数量的软件缺陷,但是检测缺陷的精度比较低,同缺陷预测技术相比,随着代码审查工作量增大,静态检查工具检测缺陷的能力比不上缺陷预测技术。(2)提出使用静态检查产生的警告信息提升缺陷预测性能的方法。将静态检查产生警告类别和数目作为度量元,构建基于警告信息的缺陷预测模型。实验结果表明,静态警告的度量能够提升缺陷预测的性能。其中,PMD相比于FindBugs在缺陷预测中提升更明显,综合使用两款工具会产生更好的预测结果,静态检查工具产生的警告信息能够成为现有缺陷预测的有益补充。(3)提出使用缺陷预测结果优化静态检查警告排序的方法。将缺陷预测产生的软件模块缺陷概率作为静态检查警告的排序依据,同时使用基于软件依赖图k-core分解的模块核心度值修正静态检查警告排序。实验结果表明,基于缺陷预测结果的排序策略能够优化静态检查警告的排序。总体来看,静态检查和缺陷预测尽管存在诸多的不同,但是两者都能够相互影响、相互增益、相互补充。
其他文献
学位
学位
学位
学位
学位
本研究旨在阐明和识别中国消费者对韩国产品的行为。它受到以下研究问题的推动:国际品牌(如韩国)对中国客户的吸引力以及他们使用什么样的渠道(电子商务,移动应用,电视)来吸引他们?本研究的目的是检查所使用的频道(电视,电子商务)对消费者感知的影响。为了实现这些研究目标,本文采取互联网发放问卷调研的形式,将收集的数据用SPSS进行了分析。SPSS被用作“统计数据包”来分析数据并进行解释。该研究使用的调查包
随着通信技术的飞速发展和智能手机的普及,互联网已经从PC时代进入到了移动互联网时代。移动端应用对人们的出行、饮食、支付和通信等日常生活产生了深刻的影响,有些应用甚至已经改变了人们的生活习惯。这些应用给人们带来便利的同时,也带来了很多安全问题,如用户信息泄露、应用程序被恶意修改和手机被植入病毒等。这些问题不仅会对用户的隐私安全造成威胁,对软件开发者也会造成不良的影响。因此,分析移动端应用的安全性,以
在新课改的浪潮下,学科核心素养应运而生,地理学科核心素养为区域认知、综合思维、人地协调观和地理实践力。在核心素养一课程标准(学科素养)一单元设计一课时计划环环相扣的教学环节中,单元设计是学科核心素养落实的重要一环。但是目前地理教师在单元设计中存在着忽视单元设计,割裂单元设计各个核心环节的问题,导致单元设计流于形式。而马扎诺教学理论是一个成熟的教学设计理论,可以将单元设计中的目标设计、策略设计、评价
学位
学位