一种基于不同调试级别交叉验证的调试器缺陷检测方法

    公开(公告)号:CN115470138A

    公开(公告)日:2022-12-13

    申请号:CN202211161594.5

    申请日:2022-09-22

    Applicant: 南京大学

    Abstract: 本发明提供了一种基于不同调试级别交叉验证的调试器缺陷检测方法,主要步骤:1)使用编译器将源码程序编译为可执行程序,可指定任意优化选项并启用调试选项;2)分别在源码级别和指令级别在调试器中单步调试运行可执行程序;3)跟踪和记录单步调试每前进一步时程序的状态,即动态调试信息;4)检查源码级单步调试和指令级单步调试记录的动态调试信息是否违反预定义的关系,若违反则视为调试器中的缺陷。本发明解决了调试器缺陷检测中无法检测单个调试器中的缺陷且误报率高的局限,基于不同调试级别交叉验证的方法为调试器缺陷检测提供了一套全新的解决方案。

    一种基于增强特征的安全冗余排错检查去除方法

    公开(公告)号:CN117806976A

    公开(公告)日:2024-04-02

    申请号:CN202410060237.2

    申请日:2024-01-11

    Applicant: 南京大学

    Abstract: 本发明提出了一种增强特征的安全冗余排错检查去除方法。该方法主要包含以下步骤:1)将用户代码转换为LLVM中间表示;2)识别出代码中的排错检查;3)计算出每个检查分支的静态特征,在计算静态特征时包括额外的操作符的特征;4)执行测试用例得到每个分支的动态特征;5)根据分支间的动态特征与静态特征判定分支是否冗余,去除冗余的排错检查。本发明利用了增强的特征来识别冗余的排错检查,提高了冗余排错检查去除方法的安全性。

    一种基于大型预训练语言模型的求解器缺陷检测方法

    公开(公告)号:CN116932389A

    公开(公告)日:2023-10-24

    申请号:CN202310869091.1

    申请日:2023-07-14

    Applicant: 南京大学

    Abstract: 本发明提出了一种基于大型预训练语言模型的求解器缺陷检测方法。该方法主要包括以下步骤:首先,将求解器标准库中的公式和历史触发缺陷的公式进行数据扩增作为训练集;其次,基于训练集使用“重训练‑微调”框架对预训练大模型进行定制化训练,以生成求解器的测试输入;最后,使用训练得到的模型生成求解器测试用例,并使用差分测试对多个求解器进行验证。该方法解决了针对求解器缺陷检测中测试用例难以高效生成和多样性测试输入难以生成的关键挑战。本发明提出的“重训练‑微调”框架能够利用预训练大语言模型学习求解器标准库和历史缺陷用例中的知识,从而生成合法有效、揭错能力强的测试输入。本发明为求解器缺陷检测提供了全新的解决方案。

    一种大模型赋能历史缺陷用例掩蔽填充的编译器测试技术

    公开(公告)号:CN118838802A

    公开(公告)日:2024-10-25

    申请号:CN202410294620.4

    申请日:2024-03-07

    Applicant: 南京大学

    Abstract: 本发明提出了一种大模型赋能历史缺陷用例掩蔽填充的编译器测试技术。通过把编译器测试输入的构造问题转化为一种完型填空任务,利用编译器历史缺陷用例,掩蔽其中的部分代码,利用大型预训练语言模型来重新填充这些被掩盖的输入单元,以生成缺陷检测能力强的新的测试输入。通过这种方式能够有效生成缺陷检测能力强和多样性高的测试输入,从而对编译器中隐藏的缺陷进行有效检测。其主要优势在于,该方法无需事先人工构建复杂的语法规则或变异策略,而是依靠语言模型的代码理解和生成能力,自动生成合法且多样化的复杂测试输入程序,从而提升编译器的测试效率。

    一种基于大语言模型的完型填空式复杂测试输入生成方法

    公开(公告)号:CN118170653A

    公开(公告)日:2024-06-11

    申请号:CN202410294742.3

    申请日:2024-03-07

    Applicant: 南京大学

    Abstract: 本发明提出了一种基于大语言模型的完型填空式复杂测试输入生成方法。该方法利用大规模预训练的语言模型,将软件测试输入的构造问题转化为一个完型填空的任务。通过将复杂测试输入中的部分内容遮盖住,然后使用大语言模型填充缺失的输入单元,可以有效检测出潜在的缺陷。这种方法的优势在于不需要事先构建复杂的语法规则或模板,而是通过利用语言模型的强大语言理解和生成能力,能够生成合法且多样化的复杂测试输入。同时,由于语言模型可以对大量的文本数据进行预训练,因此可以较好地捕捉到不同软件测试输入的特性和行为,可以有效地辅助测试人员发现复杂软件系统中的潜在问题。

    一种基于堆栈信息的编译器崩溃类缺陷去重方法

    公开(公告)号:CN118170652A

    公开(公告)日:2024-06-11

    申请号:CN202410294702.9

    申请日:2024-03-07

    Applicant: 南京大学

    Abstract: 本发明提出了一种基于堆栈信息的编译器崩溃类缺陷去重方法。该方法利用编译器崩溃时生成的堆栈信息,并结合编译器运行的上下文信息,对触发相同缺陷的崩溃报告进行识别和去重。具体而言,该方法首先收集编译器运行的上下文和运行至崩溃处的堆栈信息。然后,通过对上下文和堆栈信息进行分析和比对,将具有相同或相似堆栈信息的崩溃识别为重复的缺陷以进行去重。与现有方法相比,本发明的优点在于充分利用了编译器运行的上下文和堆栈信息,提高了崩溃类缺陷的识别和去重的准确性,有效减少开发人员缺陷分析和定位的工作量。

    一种基于多组对抗配置的编译器缺陷定位方法

    公开(公告)号:CN117851260A

    公开(公告)日:2024-04-09

    申请号:CN202410060200.X

    申请日:2024-01-11

    Applicant: 南京大学

    Abstract: 本发明提供了一种基于多组对抗配置的编译器缺陷定位方法,主要包括下列步骤:1)识别缺陷相关的细粒度优化选项;2)基于不同配置生成多组对抗配置;3)基于程序频谱获取编译器文件的可疑度排名;4)聚合多组排名汇总定位结果。本发明解决了现有方法仅使用单个对抗配置的编译器缺陷定位方法效果不够理想的问题,生成和融合多个对抗配置的定位结果来提升编译器缺陷定位的效果。该方法通过生成和融合多组不同的对抗配置,可以更加有效地定位编译器的缺陷,帮助开发者快速修复缺陷,提升编译器质量,为后续依赖编译器的软件工程应用提供了基础支撑。

    一种历史缺陷用例赋能的SMT求解器缺陷检测方法

    公开(公告)号:CN116185851A

    公开(公告)日:2023-05-30

    申请号:CN202310145904.2

    申请日:2023-02-21

    Applicant: 南京大学

    Abstract: 本发明提供了一种历史缺陷用例赋能的SMT求解器缺陷检测方法,主要步骤:1)从求解器的缺陷追踪系统中自动化收集历史缺陷用例;2)提取历史缺陷用例中逻辑公式的骨架结构(即公式中逻辑连接词构成的逻辑结构)以及原子公式;3)对所提取出的原子公式抽象化并进行关联规则学习;4)在关联规则的指导下使用原子公式对已提取出的骨架结构进行实例化,以得到可用于求解器测试的逻辑公式,对多个求解器进行差分测试。本发明解决了求解器缺陷检测中有效的测试输入难以生成的局限,基于历史缺陷用例构造新的揭错能力强的测试用例的方法为求解器缺陷检测提供了一套全新的解决方案。

    一种基于长时执行测试程序过滤的编译器测试加速方法

    公开(公告)号:CN116048988A

    公开(公告)日:2023-05-02

    申请号:CN202310042641.2

    申请日:2023-01-05

    Applicant: 南京大学

    Abstract: 本发明提供了一种基于长时执行测试程序过滤的编译器测试加速方法,主要包括下列步骤:1)对随机程序生成器生成的每一个测试程序进行插桩;2)给定短暂运行时间,对于没有在给定时间内运行结束的测试程序,获取测试程序运行时的覆盖信息;3)过滤覆盖信息超过设定阈值的测试程序。本发明提出将长时运行测试程序的检测问题转化为测试程序中超大循环或死循环的检测问题,在过滤掉潜在长时运行测试程序后,能够在有限的测试资源下执行更大量的测试程序,从而达到加速编译器测试过程的目的。

    一种基于调试信息支撑的代码覆盖器缺陷检测方法

    公开(公告)号:CN115422082A

    公开(公告)日:2022-12-02

    申请号:CN202211161595.X

    申请日:2022-09-22

    Applicant: 南京大学

    Abstract: 本发明提供了一种基于调试信息支撑的代码覆盖器缺陷检测方法,主要包括下列步骤:1)使用代码覆盖器为测试程序生成覆盖报告,获取代码覆盖信息;2)在调试器中单步调试运行程序,获取代码命中信息;3)在调试器中断点调试运行程序,获取代码命中信息;4)综合两种不同的调试策略下的命中计数,获得综合命中计数;5)比较代码覆盖信息和命中计数,检查是否违反预定义的异构蜕变关系;6)违反异构蜕变关系视为代码覆盖器中的缺陷。本发明利用调试信息对覆盖信息进行验证,解决了代码覆盖器测试中测试预言缺失的技术难题,且克服了现有方法的局限。该方法能有效检测覆盖器的缺陷,提高代码覆盖器质量。

Patent Agency Ranking