基于机器学习的编译器测试加速方法

    公开(公告)号:CN107203469B

    公开(公告)日:2020-04-03

    申请号:CN201710292927.0

    申请日:2017-04-28

    Applicant: 北京大学

    Abstract: 本发明公布了一种编译器测试加速方法,采用机器学习方法构造用于预测测试程序触发缺陷的概率的能力模型和用于预测每个测试程序的执行时间的时间模型,通过计算每个测试程序单位时间内触发缺陷的概率,实现对测试程序的排序,从而实现编译器测试加速;包括学习阶段和调度阶段;学习阶段包括识别特征过程、训练能力模型过程和训练时间模型过程;调度阶段,基于所述学习阶段得到的能力模型和时间模型,得到新的测试程序的执行顺序。通过本发明,测试人员可在执行测试程序之前,事先对测试程序进行排序,使得更有可能触发缺陷的测试程序被优先执行,从而实现编译器测试加速。

    一种程序缺陷数据特征提取方法、电子设备及存储介质

    公开(公告)号:CN116775121A

    公开(公告)日:2023-09-19

    申请号:CN202210239269.X

    申请日:2022-03-08

    Abstract: 本发明实施例公开了一种程序缺陷数据特征提取方法、电子设备及存储介质,所述方法包括:获取程序代码的抽象语法树信息,其中,程序代码包括缺陷程序代码和补丁程序代码;对抽象语法树信息进行规范化处理,得到规范化信息;根据规范化信息,得到数据流信息;把规范化信息转化为序列信息;根据缺陷程序代码的序列信息和补丁程序代码的序列信息,得到程序补丁信息;根据数据流信息、序列信息和程序补丁信息,提取得到缺陷程序代码的缺陷数据特征。本发明实施例的方案能够提升程序缺陷数据特征提取的效率和精准性,保证后端任务的准确率,提高用户的使用体验。

    基于历史数据的编译器测试输入生成方法和系统

    公开(公告)号:CN111124880B

    公开(公告)日:2021-08-17

    申请号:CN201911063809.8

    申请日:2019-11-04

    Applicant: 北京大学

    Abstract: 本发明涉及一种基于历史数据的编译器测试输入生成方法和系统。该方法基于历史测试数据,通过历史测试过程中生成的测试输入,挖掘测试输入特征和编译器缺陷的内在联系,推断出能够生成揭错概率高的配置选项的生成空间;使用粒子群算法,通过测量由不同配置选项生成的程序集合的内部距离,经过一定次数的算法迭代后,得到一个配置选项集合;利用该配置选项集合,生成揭错概率和多样性高的测试输入进行编译器测试。通过本发明,测试人员提供历史测试过程中的测试输入,能够得到一组能够生成揭错概率和多样性高的测试输入的配置选项,从而提升编译器测试的效率和效果。

    基于内部状态检查的单元测试方法

    公开(公告)号:CN103365775A

    公开(公告)日:2013-10-23

    申请号:CN201310250702.0

    申请日:2013-06-21

    Applicant: 北京大学

    Abstract: 一种基于内部状态检查的单元测试方法,其特征在于,用户在测试用例中编写内部状态约束,所述约束为执行到被测代码的目标位置时,相关变量应满足的算术或逻辑约束,从而最终实现对被测代码内部状态进行检查。通过本发明,软件开发者可以在测试用例中添加对被测代码中间状态的检查,使开发者可以只编写较少的测试用例就能发现更多的错误,而且帮助开发者更快地排查错误,提高了开发者进行的测试的效率。

    修复补丁生成方法、存储介质及电子装置

    公开(公告)号:CN119149039A

    公开(公告)日:2024-12-17

    申请号:CN202310709070.3

    申请日:2023-06-14

    Abstract: 本发明实施例提供了一种修复补丁生成方法、存储介质及电子装置。该方法包括:将含有缺陷代码的程序代码构造成第一抽象语法树,通过类型流图构造器将所述第一抽象语法树转化为类型流图,其中,第一抽象语法树中携带类型信息;遍历类型流图获得节点序列、属性序列以及关系矩阵,将节点序列、属性序列、关系矩阵输入类型流图编码器,得到特征向量;将特征向量以及语法规则词表输入语法制导生成器,得到第二抽象语法树,并对第二抽象语法树进行代码实例化,以生成修复补丁,其中,所述第二抽象语法树中携带所述类型信息。通过本发明实施例,解决了相关技术中已有的深度学习缺陷代码修复方法缺少学习类型信息能力的问题。

    基于原子状态函数的浮点数误差检测方法和装置

    公开(公告)号:CN111290946A

    公开(公告)日:2020-06-16

    申请号:CN202010056313.4

    申请日:2020-01-18

    Applicant: 北京大学

    Abstract: 本发明涉及一种基于原子状态函数的浮点数误差检测方法和装置。本发明对源代码或程序进行插桩以获取程序运行时的内部状态;通过程序运行时的内部状态,计算每个浮点数运算的原子状态函数,挖掘原子状态函数与浮点数误差的内在联系,推断出原子状态函数与误差的强关联性;构建搜索框架,利用搜索算法得到会触发高危原子状态函数的测试用例集合;该测试用例集合即为揭错率高,会触发显著浮点数误差的输入。由于计算原子状态函数不需要引入高精度浮点数,不依赖于测试预言,使得本发明不依赖于测试预言,并且揭错率高,运行开销小,不依赖于高精度浮点数,运行时间快。

    基于历史数据的编译器测试输入生成方法和系统

    公开(公告)号:CN111124880A

    公开(公告)日:2020-05-08

    申请号:CN201911063809.8

    申请日:2019-11-04

    Applicant: 北京大学

    Abstract: 本发明涉及一种基于历史数据的编译器测试输入生成方法和系统。该方法基于历史测试数据,通过历史测试过程中生成的测试输入,挖掘测试输入特征和编译器缺陷的内在联系,推断出能够生成揭错概率高的配置选项的生成空间;使用粒子群算法,通过测量由不同配置选项生成的程序集合的内部距离,经过一定次数的算法迭代后,得到一个配置选项集合;利用该配置选项集合,生成揭错概率和多样性高的测试输入进行编译器测试。通过本发明,测试人员提供历史测试过程中的测试输入,能够得到一组能够生成揭错概率和多样性高的测试输入的配置选项,从而提升编译器测试的效率和效果。

    一种基于问答网站分析的程序崩溃缺陷自动修复方法

    公开(公告)号:CN105335246B

    公开(公告)日:2018-04-27

    申请号:CN201510708750.9

    申请日:2015-10-27

    Applicant: 北京大学

    Abstract: 本发明涉及计算机软件技术领域,公开了一种基于问答网站分析的程序崩溃缺陷自动修复方法,包括:根据程序发生崩溃时的崩溃踪迹,获取多个相关网页;其中,所述相关网页中包含描述所述崩溃的缺陷代码以及修复所述崩溃的修复代码;在每个所述相关网页中,提取所述缺陷代码的片段以及修复代码的片段;根据所述缺陷代码片段以及修复代码片段生成用于修复所述崩溃的编辑脚本;根据所述崩溃踪迹以及缺陷代码,确定所述程序源代码中有错误代码的位置,应用所述编辑脚本修复所述错误代码。本发明可根据崩溃踪迹在相关网页上自动搜索修复方案,并生成相应的编辑脚本对崩溃进行修复,摆脱了在修复过程中对操作人员的依赖,实现自动修复,且修复精度较高。

    基于机器学习的编译器测试加速方法

    公开(公告)号:CN107203469A

    公开(公告)日:2017-09-26

    申请号:CN201710292927.0

    申请日:2017-04-28

    Applicant: 北京大学

    Abstract: 本发明公布了一种编译器测试加速方法,采用机器学习方法构造用于预测测试程序触发缺陷的概率的能力模型和用于预测每个测试程序的执行时间的时间模型,通过计算每个测试程序单位时间内触发缺陷的概率,实现对测试程序的排序,从而实现编译器测试加速;包括学习阶段和调度阶段;学习阶段包括识别特征过程、训练能力模型过程和训练时间模型过程;调度阶段,基于所述学习阶段得到的能力模型和时间模型,得到新的测试程序的执行顺序。通过本发明,测试人员可在执行测试程序之前,事先对测试程序进行排序,使得更有可能触发缺陷的测试程序被优先执行,从而实现编译器测试加速。

    一种基于控制流图的内存泄漏自动修复方法

    公开(公告)号:CN104750563A

    公开(公告)日:2015-07-01

    申请号:CN201310728361.3

    申请日:2013-12-26

    Applicant: 北京大学

    Abstract: 一种基于控制流图的内存泄漏自动修复方法,应用于计算机程序的内存泄露检测和自动修复,包括如下步骤:第一步:制作计算机程序的控制流图;第二步:根据所述控制流图进行内存泄露检测和修复;第三步:利用在控制流图中记录的代码位置信息,将添加到图中的修复代码映射回原计算机程序代码中。开发者可以使用本发明所述的方法自动修复计算机程序的内存泄漏,而不必担心修复错误或引入新错误。

Patent Agency Ranking