基于文本分析的Python软件生态系统缺陷检测

来源 :南京大学 | 被引量 : 0次 | 上传用户:beiwei72
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,随着软件项目数量爆发式增长与敏捷开发实践的广泛使用,大量项目之间存在复杂的依赖关系,不同项目的不同模块和方法之间产生了复杂且快速更新的关联,软件生态系统的概念应运而生。软件生态系统藉由软件之间存在的复杂的依赖和需求,产生快速的迭代更新。Python作为一种动态语言,以其代码简洁、开发敏捷、第三方库丰富、社区活跃等特点,在工业界的项目开发中被广泛使用。随着Python项目的不断增多,Python软件生态系统也在开源社区得到越来越多的关注。软件生态系统的发展为软件演化带来了发展和挑战。一方面,开源、透明的特性提供了充足的使用、维护、调试等信息的来源,易于分析和利用来自不同项目的知识,为项目的缺陷检测和维护提供数据保障;另一方面,软件项目的开发人员需要对使用、维护、调试等信息进行审查和分析,进而对软件中存在的缺陷进行定位和修复。然而软件生态系统中迅速产生大量此类来自不同源、不同类且异构的信息,增加了软件调试的时间开销和难度,会延后软件缺陷的修复工作。本文的工作致力于改进Python软件在软件生态系统场景下的迭代开发和维护流程,辅助开发者发现和修复项目在生命周期中存在的缺陷,保障项目演化过程中的软件质量,从上游项目接口参数类型不一致缺陷检测和跨项目缺陷的识别两方面展开,主要贡献如下:针对下游项目调用上游项目接口时实参与形参期望的类型不一致问题,提出了一种基于接口文档分析的缺陷检测方法CARD。首先,提取软件源代码文本信息和运行时类型信息构建训练集,训练多标签多输出模型识别参数类型;之后使用训练完成的模型对参数的描述文本进行理解,识别参数的可接收类型;最后将识别的可接收类型与参数实际运行时类型对比,检测潜在的类型不一致缺陷。为评估类型不一致缺陷检测方法的有效性,本文在10个Python上游软件项目上进行实验,提取得到包含345条接口参数信息的数据集。实验结果表明,CARD识别类型的精确率、召回率、F1度量、准确率、Jaccard损失和Hamming损失分别为76%、76%、73%、57%、0.69和0.73,且在各项指标上优于使用k近邻模型和随机森林模型的基线方法。针对下游项目难以识别本项目的测试失败是否由上游项目缺陷触发的问题,提出了跨项目缺陷的识别方法CDD-H和CDD-E。方法首先解析软件项目在测试阶段生成的测试日志,提取其中的失败测试用例的相关信息;之后利用回溯路径、测试方法名称和异常描述文本等信息,提出基于启发式的模型和基于长短期记忆网络的集成模型对测试用例触发的缺陷类型进行识别。为评估跨项目缺陷识别方法的有效性,本文在包含133个开源Python软件的Python软件生态系统中进行实验,共提取得到12885条失败测试用例信息,构建包含413条标记完成的测试用例数据集。实验结果表明,CDD-H和CDD-E的识别精确率分别达到77.8%和91.3%,识别的准确率分别为73.1%和78.8%;对于一条失败测试用例数据,完成完整的识别流程平均耗时仅为0.02秒和0.03秒,与人工识别所需的平均用时506秒相比,时间开销大大减少。我们提出的跨项目缺陷识别方法兼顾了有效性和高效性。
其他文献
为了提高位场反演精度,改善解的性质,本文在Parder(1973)位场反演方法的基础上,发展了一种双次滤波的技术。其中第一次滤波是为了选择正则化滤波器及最佳截止频率,以便保证最大限度压制高频干
近场动力学理论(PD)是基于非局部思想的连续介质力学新理论,用于研究材料破坏问题。根据准脆性材料破坏的线性和非线性的力学行为,在初始微观弹脆性材料(PMB)的本构力函数中引入
近年来,随着我国市场经济的不断深化,一线服务型员工面对着更大的市场冲击和组织压力,消费者需求也更加复杂多变,员工表现的情绪状态将直接影响工作状态与工作质量。为探讨情
目的通过开展PDCA循环管理提高门诊麻醉处方的规范率。方法选取2019年10月—12月门诊药房麻醉处方169张作为对照组,2020年3月—4月份70张处方作为观察组。对比两组麻醉药品处
通过13 C-NMR分析二乙二醇和己内酰胺改性的三聚氰胺甲醛树脂( CMF )的结构及聚合机理,结合耐磨颗粒Al2 O3的表面改性研究,探讨将其应用于制备液体耐磨纸的可行性。结果表明:二乙
散打是我国的传统竞技类项目,具有悠久的历史及文化传统。随着散打技术的不断变化,作为具有格斗特点的项目,其也在不断演变,可以锻炼人的体力、耐力、应变力及技巧运用耐力,
为实现在Windows NT操作系统下经纬仪主控计算机与中心计算机的同步通信,设计了基于Inte18274串行通信控制器和82C37DMA控制器的HDLC协议的两路同步通信卡,并利用NT DDK开发了该卡的驱动程序,实现了数据的高速发送与接收,并成功地应用到新一代光电经纬仪中。
马克思主义一直将实现人的自由全面发展作为其价值立场和理论主旨,亦是社会主义一以贯之的根本价值追求。近年来,学界越发重视对人的发展问题研究并取得了一定的研究成果,但整体来看,目前的有关研究成果缺乏系统性,理论深度也有不足。基于此,本文试图以历史唯物主义与辩证唯物主义为指导,运用理论与实践、分析与归纳、历史与逻辑相统一的研究方法,对《1857—1858年经济学手稿》(以下简称《57—58手稿》)中人的
第一章 总则第一条 为提高固定资产投资效益,维护国家、社会和公共利益,充分发挥造价工程师在工程建设经济活动中合理确定和有效控制工程造价的作用,根据《中华人民共和国建筑法
DSCU型双护盾式TBM由明挖车站始发,需结合车站施工进度、机械参数等综合分析始发条件。文章对DSCU型双护盾式TBM明挖车站始发关键技术进行了分析,确定了从车站始发限界要求、