Dynamic Call Graphs trace program execution and are used to model function coverage. They help identify which function calls are missed but do not offer insights on whether those calls are important to cover. We propose a weighted representation of control flow called Natural Call Graphs (NCGs), which can be used to identify important function calls. These weights represent the relevance of the callee to the caller and are computed using information-theoretic reasoning on tokens in the functions. We create a dataset of 1,234 manually verified function calls, containing a mix of relevant and irrelevant functions, from ten Python open-source projects. On this dataset, our approach achieves a peak precision of 78% and a recall of 94% in identifying relevant functions missed by tests.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Checking Test Suite Efficacy Through Dual-Channel Techniques

  • Constantin Cezar Petrescu,
  • Sam Smith,
  • Alexis Butler,
  • Santanu Kumar Dash

摘要

Dynamic Call Graphs trace program execution and are used to model function coverage. They help identify which function calls are missed but do not offer insights on whether those calls are important to cover. We propose a weighted representation of control flow called Natural Call Graphs (NCGs), which can be used to identify important function calls. These weights represent the relevance of the callee to the caller and are computed using information-theoretic reasoning on tokens in the functions. We create a dataset of 1,234 manually verified function calls, containing a mix of relevant and irrelevant functions, from ten Python open-source projects. On this dataset, our approach achieves a peak precision of 78% and a recall of 94% in identifying relevant functions missed by tests.