Learning to Predict Program Execution by Modeling Dynamic Dependency on
  Code Graphs
Predicting program behavior without execution is an essential and challenging
task in software engineering. Traditional models often struggle to capture
dynamic dependencies and interactions within code. This paper introduces a
novel machine learning-based framework called CodeFlowrepresents, which
predicts code coverage and detects runtime errors through Dynamic Dependencies
Learning. Utilizing control flow graphs (CFGs), CodeFlowrepresents all possible
execution paths and the relationships between different statements, offering a
comprehensive understanding of program behavior. It constructs CFGs to depict
execution paths and learns vector representations for CFG nodes, capturing
static control-flow dependencies. Additionally, it learns dynamic dependencies
through execution traces, which reflect the impacts among statements during
execution. This approach enables accurate prediction of code coverage and
identification of runtime errors. Empirical evaluations show significant
improvements in code coverage prediction accuracy and effective localization of
runtime errors, surpassing current models.
66b62a3428fa16f1b8a94ae3
Cuong Chi Le
66b62a3428fa16f1b8a94ae4
Hoang Nhat Phan
66b62a3428fa16f1b8a94ae5
Huy Nhat Phan
66b62a3428fa16f1b8a94ae6
Tien N. Nguyen
66b62a3428fa16f1b8a94ae7
Nghi D. Q. Bui
admin_assigned
2024-08-09T17:44:34.620Z
63a44141de134926a2ba0458
https://cdn-avatars.huggingface.co/v1/production/uploads/63a44141de134926a2ba0458/FP3uxpsKL1nBrrKyiFne3.jpeg
Nghi Bui
user
bdqnghi
Learning to Predict Program Execution by Modeling Dynamic Dependency on
  Code Graphs
Predicting program behavior without execution is an essential and challenging
task in software engineering. Traditional models often struggle to capture
dynamic dependencies and interactions within code. This paper introduces a
novel machine learning-based framework called CodeFlowrepresents, which
predicts code coverage and detects runtime errors through Dynamic Dependencies
Learning. Utilizing control flow graphs (CFGs), CodeFlowrepresents all possible
execution paths and the relationships between different statements, offering a
comprehensive understanding of program behavior. It constructs CFGs to depict
execution paths and learns vector representations for CFG nodes, capturing
static control-flow dependencies. Additionally, it learns dynamic dependencies
through execution traces, which reflect the impacts among statements during
execution. This approach enables accurate prediction of code coverage and
identification of runtime errors. Empirical evaluations show significant
improvements in code coverage prediction accuracy and effective localization of
runtime errors, surpassing current models.
A machine learning framework named CodeFlowrepresents uses dynamic dependencies learning to predict code coverage and detect runtime errors by analyzing control flow graphs and execution traces.
control flow graphs CFGs vector representations static control-flow dependencies dynamic dependencies execution traces code coverage prediction runtime error detection