-
公开(公告)号:CN118170651A
公开(公告)日:2024-06-11
申请号:CN202410294631.2
申请日:2024-03-07
Applicant: 南京大学
IPC: G06F11/36 , G06F8/41 , G06F18/22 , G06F18/2415
Abstract: 本发明提出了一种基于堆栈信息的编译器挂起缺陷去重方法。该方法利用编译器挂起时生成的堆栈信息,结合运行上下文信息,对触发相同缺陷的挂起类问题进行识别和去重。具体而言,该方法首先收集编译器挂起时的堆栈信息和运行上下文。然后,通过对堆栈信息和上下文进行分析和比对,将具有相同或相似堆栈信息的挂起问题识别为相同缺陷。与现有方法相比,本发明的优点在于利用了堆栈信息和上下文信息来识别重复的挂起类缺陷,提高了挂起缺陷的识别和去重的准确性,有效节省宝贵的开发者审查工作量,进而帮助提升编译器的可靠性和质量。
-
公开(公告)号:CN117806976A
公开(公告)日:2024-04-02
申请号:CN202410060237.2
申请日:2024-01-11
Applicant: 南京大学
IPC: G06F11/36 , G06F18/213
Abstract: 本发明提出了一种增强特征的安全冗余排错检查去除方法。该方法主要包含以下步骤:1)将用户代码转换为LLVM中间表示;2)识别出代码中的排错检查;3)计算出每个检查分支的静态特征,在计算静态特征时包括额外的操作符的特征;4)执行测试用例得到每个分支的动态特征;5)根据分支间的动态特征与静态特征判定分支是否冗余,去除冗余的排错检查。本发明利用了增强的特征来识别冗余的排错检查,提高了冗余排错检查去除方法的安全性。
-
公开(公告)号:CN116932389A
公开(公告)日:2023-10-24
申请号:CN202310869091.1
申请日:2023-07-14
Applicant: 南京大学
IPC: G06F11/36 , G06F18/214
Abstract: 本发明提出了一种基于大型预训练语言模型的求解器缺陷检测方法。该方法主要包括以下步骤:首先,将求解器标准库中的公式和历史触发缺陷的公式进行数据扩增作为训练集;其次,基于训练集使用“重训练‑微调”框架对预训练大模型进行定制化训练,以生成求解器的测试输入;最后,使用训练得到的模型生成求解器测试用例,并使用差分测试对多个求解器进行验证。该方法解决了针对求解器缺陷检测中测试用例难以高效生成和多样性测试输入难以生成的关键挑战。本发明提出的“重训练‑微调”框架能够利用预训练大语言模型学习求解器标准库和历史缺陷用例中的知识,从而生成合法有效、揭错能力强的测试输入。本发明为求解器缺陷检测提供了全新的解决方案。
-
公开(公告)号:CN108021498A
公开(公告)日:2018-05-11
申请号:CN201610977069.9
申请日:2016-11-04
Applicant: 南京大学
IPC: G06F11/36
CPC classification number: G06F11/368 , G06F11/3688
Abstract: 本发明提供一种基于软件可靠性增长模型的测试工作量分配方法,包括下列步骤:1)软件数据集的采集和处理;2)软件缺陷预测模型的构建;3)软件缺陷发现模型的构建;4)软件缺陷发现模型V0版本参数估计;5)软件缺陷发现模型V1版本参数估计;6)软件V1版本最优测试工作量分配。本发明是一种测试工作量分配方案,解决了目前如何在测试资源有限的情况下最大效益的测试出系统中缺陷的问题。该方案充分利用了先前软件版本的信息,来对当前版本的系统的测试工作量进行分配,从而最终可以发现最多数目的累积缺陷。
-
公开(公告)号:CN118838802A
公开(公告)日:2024-10-25
申请号:CN202410294620.4
申请日:2024-03-07
Applicant: 南京大学
Abstract: 本发明提出了一种大模型赋能历史缺陷用例掩蔽填充的编译器测试技术。通过把编译器测试输入的构造问题转化为一种完型填空任务,利用编译器历史缺陷用例,掩蔽其中的部分代码,利用大型预训练语言模型来重新填充这些被掩盖的输入单元,以生成缺陷检测能力强的新的测试输入。通过这种方式能够有效生成缺陷检测能力强和多样性高的测试输入,从而对编译器中隐藏的缺陷进行有效检测。其主要优势在于,该方法无需事先人工构建复杂的语法规则或变异策略,而是依靠语言模型的代码理解和生成能力,自动生成合法且多样化的复杂测试输入程序,从而提升编译器的测试效率。
-
公开(公告)号:CN105302724A
公开(公告)日:2016-02-03
申请号:CN201510755374.9
申请日:2015-11-05
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明提供一种基于混和效应移除的即时缺陷预测方法,包括下列步骤:1)软件变更度量的收集;2)移除变更度量与变更量度量的混和效应;3)建立无监督即时缺陷预测模型;4)提交变更序列给开发人员进行审查。本发明解决了目前传统即时缺陷预测方法存在的收集数据难度大、预测能力不足的问题,不仅可以简单有效的建立即时缺陷预测模型,同时还能大幅节约审查成本,从而充分利用有限的资源,更好的控制和提高软件产品质量。
-
公开(公告)号:CN115470138A
公开(公告)日:2022-12-13
申请号:CN202211161594.5
申请日:2022-09-22
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明提供了一种基于不同调试级别交叉验证的调试器缺陷检测方法,主要步骤:1)使用编译器将源码程序编译为可执行程序,可指定任意优化选项并启用调试选项;2)分别在源码级别和指令级别在调试器中单步调试运行可执行程序;3)跟踪和记录单步调试每前进一步时程序的状态,即动态调试信息;4)检查源码级单步调试和指令级单步调试记录的动态调试信息是否违反预定义的关系,若违反则视为调试器中的缺陷。本发明解决了调试器缺陷检测中无法检测单个调试器中的缺陷且误报率高的局限,基于不同调试级别交叉验证的方法为调试器缺陷检测提供了一套全新的解决方案。
-
公开(公告)号:CN111913872A
公开(公告)日:2020-11-10
申请号:CN201910400566.6
申请日:2019-05-09
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明提供一种基于缺陷预测的软件静态检查警告排序优化方法。根据已知软件系统的源代码和开发过程信息,抽取软件系统的模块度量信息并对软件模块是否存在缺陷进行标注;根据软件模块度量和缺陷信息利用机器学习算法构建缺陷预测模型;对待分析的软件系统,获取它的模块度量信息、模块依赖信息和静态检查产生的警告信息;对待分析系统进行缺陷预测获得新系统各模块包含缺陷的概率;通过k-core分解得到每个软件模块的核心度值;最后依据每一个静态检查警告所在的模块包含缺陷的概率和模块核心度值对警告进行排序,向开发者推荐最有可能与缺陷相关的警告,提升静态检查工具的实用性,帮助开发者尽快发现软件中包含的缺陷。
-
公开(公告)号:CN105786704A
公开(公告)日:2016-07-20
申请号:CN201610098327.6
申请日:2016-02-22
Applicant: 南京大学
IPC: G06F11/36
CPC classification number: G06F11/366 , G06F11/3692 , G06F11/3696
Abstract: 本发明提供一种工作量感知的bug定位技术有效性评价方法,包括下列步骤:1)软件bug报告信息的收集;2)源代码文件工作量的收集;3)源代码文件序列的生成;4)评价指标的计算;5)bug定位技术的分析与评价。本发明解决了目前存在的bug定位技术有效性评价方法中没有考虑开发人员审查工作量的问题,更能体现一个bug定位技术在使用过程中是否可以减轻开发人员的工作量,是否具有实用价值,从而使得评价结果更加全面和可信。
-
公开(公告)号:CN118170653A
公开(公告)日:2024-06-11
申请号:CN202410294742.3
申请日:2024-03-07
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明提出了一种基于大语言模型的完型填空式复杂测试输入生成方法。该方法利用大规模预训练的语言模型,将软件测试输入的构造问题转化为一个完型填空的任务。通过将复杂测试输入中的部分内容遮盖住,然后使用大语言模型填充缺失的输入单元,可以有效检测出潜在的缺陷。这种方法的优势在于不需要事先构建复杂的语法规则或模板,而是通过利用语言模型的强大语言理解和生成能力,能够生成合法且多样化的复杂测试输入。同时,由于语言模型可以对大量的文本数据进行预训练,因此可以较好地捕捉到不同软件测试输入的特性和行为,可以有效地辅助测试人员发现复杂软件系统中的潜在问题。
-
-
-
-
-
-
-
-
-