Introducing IMPACT: Why Does This PR Actually Affect?
说明与用途
IMPACT利用FalkorDB映射从更改函数到调用者和测试的调用关系,生成报告展示测试选择原因及更改对代码库的影响。
问题
A diff shows what changed but not which functions call that code or which tests might be affected, making it hard to assess a PR’s impact.
结果
IMPACT identified seven callers and three tests for a broken coupon calculation, revealing a negative total bug that diffs alone would miss. In a real PR, it ran three tests on both base and PR commits, showing two failures resolved and no new failures, providing actionable insight into the change’s effect.
工作流
- 1. Store files and functions in FalkorDB with CALLS relationships.
- 2. When a function changes, walk CALLS connections backwards up to 4 hops to find reachable callers and tests.
- 3. Run the identified tests on the changed commit and base commit.
- 4. Generate an HTML report showing call paths and test results.
- 5. Optionally use an AI agent to prioritize tests, but graph analysis works without it.
- 6. Integrate into GitHub Actions to run automatically on PRs and post a comment with the report.
证据
A diff shows what changed. It doesn't always show the functions that call that code, or which tests might be affected.
IMPACT maps these relations in FalkorDB, then follows them to produce a graph you can inspect.
When apply_coupon changes, IMPACT walks those connections backwards. It finds seven reachable callers, including three tests.
IMPACT picked three tests from the graph and ran them on both commits. Two failed on the base and passed on the PR; the normal-coupon test passed on both.
- 记录日期: 2026-10-18T15:41:31.950Z