-
公开(公告)号:CN110781086A
公开(公告)日:2020-02-11
申请号:CN201911020242.6
申请日:2019-10-23
Applicant: 南京大学
Abstract: 本发明提供一种基于程序依赖关系和符号分析的跨项目缺陷影响分析方法,包括下列步骤:1)获取同一软件生态系统中不同项目、多个版本的程序源代码;2)从每个项目基础版本的程序源代码中抽取调用关系,构建生态系统基本依赖网络;3)从每个项目其它版本的程序源代码中获取代码变更,构建版本敏感的生态系统依赖网络;4)对于给定的跨项目缺陷,已知其上游出错方法,挑选候选下游模块;5)针对每个候选下游模块,进行代码预处理;6)对每个预处理后的候选下游模块,进行符号编码;7)对每个符号编码后的下游模块进行约束求解,如有解,则提示开发人员该模块可能受给定跨项目缺陷影响。本发明解决了目前存在的缺乏针对跨项目缺陷影响分析、无法提示下游项目受影响模块等问题,进而指导跨项目缺陷的修复方案设计,提高缺陷修复补丁的质量,从而能更好地控制和管理软件生态系统的健康发展。
-
公开(公告)号:CN109597747A
公开(公告)日:2019-04-09
申请号:CN201710932159.0
申请日:2017-09-30
Applicant: 南京大学
Abstract: 本发明提供一种基于多目标优化算法NSGA-II推荐跨项目关联缺陷报告的方法,主要包含以下步骤:1)获取与查询缺陷报告所在项目关联的其他项目,主要基于缺陷所在项目的信息以及项目参与人的信息;2)计算项目之间的关联度:主题相似度、项目重要程度、项目之间的距离,对项目的关联度排序;3)对于关联度较大的项目,计算其中的缺陷与查询缺陷报告之间的主题相似性以及将要修改的源代码文件之间的距离;4)根据缺陷报告的主题相似性、源文件距离、项目的关联度计算适应值函数;5)利用多目标优化算法NSGA-II产生相关联程度最大的跨项目缺陷报告。本发明主要解决目前缺乏对查询缺陷报告推荐相关联的跨缺陷报告问题,能够有效定位、修复跨项目缺陷,提高处理跨项目缺陷报告的效率。
-
公开(公告)号:CN107967208A
公开(公告)日:2018-04-27
申请号:CN201610915633.4
申请日:2016-10-20
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明为一种基于深度神经网络的Python资源敏感缺陷代码检测方法,包括下列步骤:1)获取同一软件的历史版本的源代码和待测版本的源代码;2)利用类型推断抽取各版本的资源敏感代码模式;3)抽取资源敏感代码模式的相关特征;4)计算缺陷代码模式和安全代码模式、缺陷代码模式和待测代码模式之间的各个特征相似度,生成特征向量,并得到训练集和测试集;5)用训练集训练深度神经网络模型进行特征合并,然后对测试集中的模式对用深度神经网络模型计算相关度并排序;6)在程序开发和维护阶段,根据相关度排序结果对可能发生错误的资源对象操作进行提醒,辅助开发和维护;本发明解决了目前存在缺乏针对Python语言资源敏感代码识别和缺陷代码检测的自动化方法等问题,进而降低软件风险,提高软件质量,从而提高开发者和维护者开发和维护软件的效率。
-
公开(公告)号:CN104572445B
公开(公告)日:2017-10-27
申请号:CN201410787154.X
申请日:2014-12-17
Applicant: 南京大学
Abstract: 本发明为一种Web服务组合中BPEL流程数据竞争的检测方法:首先基于BPEL设计规则构造BPEL活动间的先后序关系集,并通过BPEL执行引擎插桩收集BEPL流程的执行轨迹;然后分析轨迹中对变量读写操作的活动是否满足先后序约束条件,从而判断是否存在数据竞争;最后再通过预测性分析方法检测隐藏的数据竞争,完成数据竞争的检测。本发明能有效降低数据竞争的误报率,召回率显著提升;并且能够提升检测效率,只需收集少量的运行轨迹,大大降低了人工成本。
-
公开(公告)号:CN104572445A
公开(公告)日:2015-04-29
申请号:CN201410787154.X
申请日:2014-12-17
Applicant: 南京大学
Abstract: 本发明为一种Web服务组合中BPEL流程数据竞争的检测方法:首先基于BPEL设计规则构造BPEL活动间的先后序关系集,并通过BPEL执行引擎插桩收集BEPL流程的执行轨迹;然后分析轨迹中对变量读写操作的活动是否满足先后序约束条件,从而判断是否存在数据竞争;最后再通过预测性分析方法检测隐藏的数据竞争,完成数据竞争的检测。本发明能有效降低数据竞争的误报率,召回率显著提升;并且能够提升检测效率,只需收集少量的运行轨迹,大大降低了人工成本。
-
公开(公告)号:CN102521130B
公开(公告)日:2014-12-24
申请号:CN201110413498.0
申请日:2011-12-13
Applicant: 南京大学
IPC: G06F11/36
Abstract: 一种基于聚类不变式分析的错误定位方法,基于程序执行的不变式分析技术,收集程序执行过程中的语句频谱信息进行聚类,对各个类簇分别计算与变量相关的不变式;之后进行新的程序执行,根据新的执行所具有的程序频谱将其划分至某个聚类中,比较新的执行与所在聚类中已有的不变式,如果新的执行违反了已有的不变式,则认为该次执行为一次错误执行;最后根据上述信息进行错误定位。本发明根据已有执行的程序频谱进行聚类,将程序执行空间划分为多个部分,再将新的执行与所属聚类的不变式进行对比分析,节省了验证程序执行正确与否的人力,同时得到了更细粒度的与不同程序执行空间相对应的不变式,有利于程序员进行错误定位。
-
公开(公告)号:CN102521131B
公开(公告)日:2014-10-29
申请号:CN201110413590.7
申请日:2011-12-13
Applicant: 南京大学
IPC: G06F11/36
Abstract: 一种基于动态基本块的测试用例约简方法,首先根据执行路径构建语句覆盖矩阵,然后将语句覆盖矩阵转换为动态基本块覆盖矩阵,通过最大划分策略MDS和均匀划分策略EDS两种简约策略约简需要人工检查结果的测试用例集来节约人力,再将约简后的测试用例集用于缺陷定位。本发明可以从初始的测试用例集中选择出一个规模小得多的测试用例子集,极大地降低了开发人员对测试用例输出结果进行判断的负担,并且使用此测试用例集进行缺陷定位的效果与使用约简前的测试用例集相比几乎不下降。
-
-
-
-
-
-