×

MLBSE公司

swMATH ID: 42400
软件作者: 卜、雷;梁永娟;谢准义;钱洪;胡一齐;于,杨;陈欣;李宣东
描述: 机器学习指导复杂软件代码的符号执行框架。在程序遍历过程中,符号执行收集路径条件,并将其提供给约束求解器,以获得可行的解决方案。然而,复杂的路径条件,如程序中广泛出现的非线性约束,很难被现有的求解器有效地处理。本文采用经典符号执行框架和机器学习方法来满足约束。该方法从不同的解决方案中进行采样和学习,以确定潜在的可行区域。这种抽样学习的解决方式可以很容易地应用于不同类别的复杂问题。因此,结合这种方法,我们的框架MLBSE不仅支持简单线性路径条件的符号执行,还支持非线性算术操作,甚至支持库方法的黑盒函数调用。同时,由于基于机器学习方法的理论基础,当求解器无法解决路径条件时,我们可以估计问题的可满足性(ECS)的置信度,从而让用户了解如何分析问题以及他们是否能够最终找到解决方案。我们将基于符号路径查找器(SPF)的MLBSE实现为一个全自动的Java符号执行引擎。用户可以将他们的代码直接输入MLBSE,这非常方便使用。为了评估其性能,使用22个实际案例程序作为MLBSE的基准来生成测试用例,这些测试用例总共涉及1042个方法,其中充满了非线性操作、浮点算法以及本机方法调用。实验结果表明,MLBSE实现的覆盖率远远高于最先进的工具。
主页: https://link.springer.com/article/10.1007/s00165-021-00538-3
源代码:  https://github.com/MLB-SE/实验
依赖项: Java语言
关键词: 符号执行;机器学习;非线性路径条件;约束求解
相关软件: 日本石油公司;jCUTE公司;XSat公司;github;Java PathFinder;派克斯;投掷;GSL公司;可爱的
引用于: 0个文档

标准条款

1出版物描述软件,包括1出版物以zbMATH为单位 年份
复杂软件代码的机器学习符号执行框架
卜、雷;梁永娟;谢准义;钱洪;胡一齐;于,杨;陈欣;李宣东
2021