把传统软件转化为富客户端软件的代码拆分方法

    公开(公告)号:CN101833455B

    公开(公告)日:2012-10-10

    申请号:CN201010170937.5

    申请日:2010-05-13

    Applicant: 北京大学

    Inventor: 王啸吟 张路 梅宏

    Abstract: 本发明提供了一种把传统软件转化为富客户端软件的代码拆分方法,属于软件工程领域。该方法包括:首先对应用程序进行数据传输量的插装并进行测试,据此生成模块调用图,然后对该图求最小割集,将图拆分成两部分,并将两部分分别作为客户端代码和服务器端代码,从而保证了拆分后的应用的网络传输量最小。本发明可以使得传统应用向富客户端应用转型时,代码拆分后网络传输量最小,从而提高富客户端应用的性能。本发明同时还允许程序开发设计人员将一些函数直接放置在他们认为合适的一端,并且能保证拆分后代码产生最低的网络传输量,这使得本发明能够适应从传统应用转向富客户端应用的各种情况。

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

    公开(公告)号:CN111124880B

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

    申请号:CN201911063809.8

    申请日:2019-11-04

    Applicant: 北京大学

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

    一种预测性变异测试方法
    13.
    发明授权

    公开(公告)号:CN106095684B

    公开(公告)日:2019-01-29

    申请号:CN201610437023.8

    申请日:2016-06-17

    Applicant: 北京大学

    Abstract: 本发明公布了一种预测性变异测试方法,分为训练阶段和预测阶段,通过预测方法来预测每一个变异体的执行结果;训练阶段包括:执行变异体;对已执行变异体进行特征收集,形成特征属性文件;应用分类算法创建分类模型;预测阶段包括:对未执行变异体进行特征收集;对未执行变异体利用分类模型将每一个未执行变异体分类,即获得分类结果。采用本发明技术方案进行变异测试,可对待测的变异体,直接使用建立的预测模型进行预测,不必执行变异体即可得到变异体的执行结果,可显著降低变异测试代价。

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

    公开(公告)号:CN103365775A

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

    申请号:CN201310250702.0

    申请日:2013-06-21

    Applicant: 北京大学

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

    把传统软件转化为富客户端软件的代码拆分方法

    公开(公告)号:CN101833455A

    公开(公告)日:2010-09-15

    申请号:CN201010170937.5

    申请日:2010-05-13

    Applicant: 北京大学

    Inventor: 王啸吟 张路 梅宏

    Abstract: 本发明提供了一种把传统软件转化为富客户端软件的代码拆分方法,属于软件工程领域。该方法包括:首先对应用程序进行数据传输量的插装并进行测试,据此生成模块调用图,然后对该图求最小割集,将图拆分成两部分,并将两部分分别作为客户端代码和服务器端代码,从而保证了拆分后的应用的网络传输量最小。本发明可以使得传统应用向富客户端应用转型时,代码拆分后网络传输量最小,从而提高富客户端应用的性能。本发明同时还允许程序开发设计人员将一些函数直接放置在他们认为合适的一端,并且能保证拆分后代码产生最低的网络传输量,这使得本发明能够适应从传统应用转向富客户端应用的各种情况。

    一种面向路径的扩散式代码预训练方法和系统

    公开(公告)号:CN119167082A

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

    申请号:CN202411183038.7

    申请日:2024-08-27

    Applicant: 北京大学

    Abstract: 本发明公开了一种面向路径的扩散式代码预训练方法和系统,本发明的方法步骤包括:1)通过预先设置的路径扩散方式对已有的代码训练数据进行扩散,得到扩散后的代码数据集;其中,利用路径扩散方式对一代码训练数据x进行扩散的方法为:对该代码训练数据x进行不同程度的遮挡或破坏,得到n个与该代码训练数据具有关联关系的扩散样本作为该代码训练数据x对应的扩散样本集合;各代码训练数据对应的扩散样本集合构成所述扩散后的代码数据集;2)利用扩散后的代码数据集训练代码预训练模型。本发明增强了对单个代码的使用并扩展了多个训练数据样本之间的关联,从而所训练模型能更有效地处理下游任务。

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

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

Patent Agency Ranking