CodeLift: Your Test Suite Is Secretly a Dense SWE Curriculum

arXiv:2610.17224 · cs.LG, cs.SE · Submitted 2026-10-12 · Read on arXiv

Listen

Radio episode about this paper

Transcript

Introduction to the show: ident: AI Radio. Generated commentary on the latest Artificial Intelligence papers.

Tom: Today's paper: "CodeLift: Your Test Suite Is Secretly a Dense SWE Curriculum".

Jane: The gist The pass-all-test binary reward has become a standard recipe for training software engineering agents, but its sparsity eliminates difference of partially correct patches.

Tom: First, who's behind it and why it matters.

Paper summary: Tom: So we're looking at this paper, "CodeLift: Your Test Suite Is Secretly a Dense SWE Curriculum," and the core idea is that the standard way of rewarding software engineering agents, which is just pass-all-test binary reward, it’s too sparse.

Jane: Right. The abstract says that if you use a simple binary reward, it eliminates any difference between patches that are only partially correct. It loses all information about *how* good the patch is compared to another one.

Lu: Exactly, and they point out the test pass-rate as a natural alternative because it’s denser, but they find that the pass-rate isn't a reliable indicator of actual patch quality either because of these test-weighting imbalances.

Meng: What are those imbalances? Because if you have one really hard test versus a hundred really easy tests, the average pass rate can be high even if the patch is failing on that one critical hard test.

Tom: The paper introduces CodeLift as a reinforcement learning method to dynamically calibrate those pass-rate rewards, essentially turning the whole test suite into an adaptive curriculum for the agent. It claims this focuses more on what is still challenging rather than just rewarding easy tests.

Jane: So, the mechanism they use is grouping tests that kill the same patches and tests that pass the same patches together to adjust their weights at each iteration of training. That sounds like it’s trying to solve the problem of having majority simple tests drowning out progress on hard ones.

Lalam: Lalam here. The core idea is using observed behavior of tests and patches to reduce the weighting imbalance by grouping identical rows into patch groups, Gpatch, and identical columns into test groups, Gtest.

Tom: And they calculate a normalized weight, w g, by looking at how many patch groups a test group kills, which then sets the reward for each patch as the sum of those weights of the groups it passes. It’s this dynamic weighting that turns the suite into an adaptive curriculum.

Jane: That sounds like they are trying to assign credit more intelligently, ensuring that progress on tests that are harder or less common gets a bigger boost in training, which is what they call unlocking the inherent curriculum in the test suite.

Lu: The methodology uses two main components: behavior balancing and snapshot slicing. Behavior balancing handles those test-weighting imbalances by defining scoring rules based on these patch and test groups.

Meng: And then there's snapshot slicing, which applies that same scoring rule to intermediate repository states by using self-tests as checkpoints to cut those traces into token intervals so they can assign credit even when later steps introduce regressions.

Tom: The results on the SWE benchmarks show that CodeLift consistently improves pass@one through pass@eight over both binary and enhanced pass-rate baselines. They also show that CodeLift provides more rollout groups with non-zero advantages throughout training, maintaining dense learning signals instead of degrading as they do with just pass-rate rewards.

Paper summary: Jane: What this means for us is that we’re moving away from a single static reward signal and toward one that adapts to the complexity of the code changes being made. It suggests that for complex software engineering tasks, the test suite itself can be leveraged to guide the learning process more effectively than just a simple pass or fail score.

Lu: The analysis shows CodeLift provides dense, stable learning signals and unlocks that inherent curriculum in the test suite. It seems to stabilize training where pass-rate rewards would otherwise degrade because its dense signals don't raise the performance ceiling of binary rewards in SWE.

Tom: So, when we look at the title, "CodeLift: Your Test Suite Is Secretly a Dense SWE Curriculum," it suggests that the test suite isn't just a final gate but an entire learning structure. It’s about making sure every part of the curriculum is worth paying attention to during training.

Jane: It moves us from thinking about tests as simple pass/fail checks to seeing them as different levels of difficulty that we can dynamically weight based on how well they challenge the agent at any given moment.

Lu: The authors identified three potential sources that miscalibrate pass-rate rewards: multiplicity imbalance, progress–regression imbalance, and difficulty imbalances. CodeLift’s entire approach is built around correcting those specific flaws in the weighting scheme.

Meng: From a production standpoint, this means if you were deploying an agent trained with CodeLift, you wouldn't just be relying on a high pass-rate number; you’d have confidence that the agent has actually mastered the difficult parts of the task because it got dense signals everywhere.

Tom: The authors note that CodeLift performs well across different advantage estimators like RLOO’s or GRPO’s in settings like Qwen3-Coder/SWE-rebench, but they also point out that snapshot slicing requires extra testing effort for intermediate credit assignments.

Jane: That’s a key caveat. While the method is effective at getting dense rewards, implementing the snapshot slicing part means you have to invest more time doing those extra self-tests to get that finer credit assignment for earlier steps.

Lu: The paper shows consistent gains over binary and enhanced pass-rate baselines on SWE benchmarks, which is a solid piece of evidence supporting the idea that this dynamic calibration actually leads to better performance metrics.

Tom: So, the implication here is that when training complex AI agents on code, we need to move beyond just maximizing the final pass rate or even just binary success; we need a system that intelligently prioritizes learning from what’s hard and what’s still ambiguous.

Jane: It seems like CodeLift suggests that the test suite itself holds a much richer learning structure than we previously thought, and by calibrating its rewards, we can actually unlock that structure for the AI agents training on it.

Conclusion: Tom: So, we’re wrapping up this look at CodeLift, which is titled "Your Test Suite Is Secretly a Dense SWE Curriculum."

Jane: Basically, they’re saying that the standard way we reward AI agents with software engineering tasks is too simple.

Tom: Right. They took that pass-all-test binary reward and showed it’s not good enough because it just ignores how much progress you actually made on a patch.

Jane: And they found that even using the pass-rate as a replacement doesn't give you the full picture of quality, because there are these weird imbalances in how tests are weighted.

Tom: They call those imbalances multiplicity imbalance, progress–regression imbalance, and difficulty imbalance. It’s like some tests are just too easy and they drown out the hard stuff that actually matters for learning.

Jane: CodeLift is this reinforcement learning method that tries to fix those imbalances by dynamically changing how much you reward each test at every step of training.

Tom: They group tests that kill the same patches together, and tests that pass similar patches together, to adjust the weights automatically. It’s an adaptive curriculum for the test suite.

Jane: And they also used something called snapshot slicing to give credit even when later changes mess things up by looking at intermediate steps.

Tom: The results on SWE benchmarks show CodeLift consistently beats both binary rewards and just pass-rate rewards across every single metric they tested.

Jane: It’s about getting dense, stable learning signals instead of these sparse, jumpy ones we see before.

Tom: They found it unlocks an inherent curriculum already in the test suite that other methods miss.

Jane: So what does this mean for agents training on real code?

Junjielong Xu, Huachao Zhu, Alyssa Wu, Zhichao Hu, Pinjia He

School of Data Science, The Chinese University of Hong Kong, Shenzhen

cs.LG, cs.SE

Submitted: 2026-10-12

Updated: 2026-10-12

Code: https://github.com/Siyuexi/CodeLift

License: http://creativecommons.org/licenses/by/4.0/

Importance score: 90/100

The gist: The gist The pass-all-test binary reward has become a standard recipe for training software engineering agents, but its sparsity eliminates difference of partially correct patches.

Key concepts

Pass-all-test Binary Reward
This standard reward gives a binary score (pass or fail) based on whether a final patch passes all hidden tests. The problem is that this sparse signal doesn't tell the agent how much better a partially correct patch is compared to another, leading to inefficient learning.
Test Pass-Rate
This reward measures the percentage of tests passed by a given patch. While denser than binary rewards, it can be misleading because a high pass-rate doesn't guarantee the patch is superior; it might just be passing many trivial tests instead of solving the core issue.
Behavior Balancing
CodeLift groups patches that kill the same tests and tests that pass the same patches. This mechanism helps reduce weighting imbalances in test pass-rates by focusing on groups where fewer patches have already succeeded, thus highlighting more challenging areas for learning.
Snapshot Slicing
This technique applies the balancing rule to intermediate code states during training. It uses self-tests as checkpoints to cut the trace into manageable intervals, allowing the system to assign credit even when later edits introduce regressions by comparing scores across these slices.

Summary

The gist The pass-all-test binary reward has become a standard recipe for training software engineering agents, but its sparsity eliminates difference of partially correct patches.

Introduction and Problem Identification

Large language model (LLM) agents have made notable progress in software engineering (SWE) where reinforcement learning with verifiable rewards (RLVR) served as a key contributor. The standard recipe uses pass-all-test as a verifier, providing binary reward based on whether the final patch passes all hidden tests. However, this binary value is too sparse to distinguish the patches that partially resolve the issue from those that break existing functionality Thus, on challenging problems where all patches in a rollout group for the same issue fail, there is no learning signal from relative advantage making training inefficient. The test pass-rate is a natural denser alternative However, a higher pass-rate does not always mean a better patch. Three test-weighting imbalances are identified behind such miscalibration (1) Multiplicity imbalance (2) Progress–regression imbalance (3) Difficulty imbalance.

CodeLift Methodology

CodeLift is a reinforcement learning method that dynamically calibrates pass-rate rewards, turning the test suite into an adaptive curriculum. The core idea is to use observed behavior of tests and patches to reduce pass-rate’s weighting imbalance by grouping tests killing the same patches and patches passing the same tests. CodeLift uses different patch groups as empirical contrast sets, and estimates each test group’s current difficulty by the fraction of patch groups they kill. After that it normalizes these weights across test groups, and then computes each patch’s reward as the sum of the weights of the groups it passes. This process naturally introduces an adaptive curriculum where all-pass tests and all-fail tests are classified to two distinct groups while tests with distinguishable behaviors are classified into separate groups.

Key Components of CodeLift

CodeLift contains two major components: behavior balancing and snapshot slicing. Behavior balancing defines the scoring rule by grouping identical rows into patch groups Gpatch and identical columns into test groups Gtest. The normalized weight wg is computed by dg = 1 / Gpatch X p∈Gpatch (1 − Ygp), wg = P dg h∈Gtest dh. This mechanism reduces the influence of repeated tests that might cover the same functionality across P2P tests and F2P tests. Snapshot slicing applies this scoring rule to intermediate repository states by using self-tests as checkpoints to cut traces into token intervals. This allows for credit assignment even when later steps introduce regressions by comparing the snapshot’s score with the final patch’s score and adding the relative difference to the final advantage.

Experimental Results and Analysis

Experiments on SWE benchmarks show that CodeLift consistently improves pass@1/2/4/8 over binary and pass-rate baselines. Table 1 shows that CodeLift outperforms others on all benchs at every shared reported sampling budget. The analysis shows that CodeLift provides dense, stable learning signals and unlocks the inherent curriculum in the test suite. Figure 4 demonstrates that CodeLift consistently provides more rollout groups with non-zero advantages than binary reward throughout the training as it maintains dense training signals throughout the training process. Furthermore, CodeLift sustains learning where pass-rate rewards degrade because its dense signals do not raise the performance celling of binary rewards in SWE.

Contributions and Limitations

The contributions include identifying three potential sources that miscalibrate pass-rate rewards for SWE agents (1) multiplicity imbalance (2) progress–regression imbalance and (3) difficulty imbalances. The authors show CodeLift’s consistent gains over binary and enhanced pass-rate baselines on SWE benchmarks. While CodeLift performs well across training settings with either RLOO’s or GRPO’s advantage estimator in the Qwen3-Coder/SWE-rebench setting, snapshot slicing requires extra testing effort for intermediate credit assignments. The authors note that CodeLift does need extra testing effort for snapshot slicing, which evaluates an average of 2.35 additional non-final patches per rollout beyond the final patch.

The paper is a preprint titled CODELIFT: YOUR TEST SUITE IS SECRETLY A DENSE SWE CURRICULUM. The gist The pass-all-test binary reward has become a standard recipe for training software engineering agents, but its sparsity eliminates difference of partially correct patches.

How it works

The core idea is to use observed behavior of tests and patches to reduce pass-rate’s weighting imbalance by grouping tests killing the same patches and patches passing the same tests. CodeLift uses different patch groups as empirical contrast sets, and estimates each test group’s current difficulty by the fraction of patch groups they kill. After that it normalizes these weights across test groups, and then computes each patch’s reward as the sum of the weights of the groups it passes.

Experimental Results and Analysis

Experiments on SWE benchmarks show that CodeLift consistently improves pass@1/2/4/8 over binary and pass-rate baselines. Table 1 shows that CodeLift outperforms others on all benchs at every shared reported sampling budget. The analysis shows that CodeLift provides dense, stable learning signals and unlocks the inherent curriculum in the test suite. Figure 4 demonstrates that CodeLift consistently provides more rollout groups with non-zero advantages than binary reward throughout the training as it maintains dense training signals throughout the training process.

Conclusion

We introduce CodeLift, which combines behavior balancing and snapshot slicing to provide dense rewards for SWE agents. Its behavior balancing groups tests and patches to reduce pass-rate imbalances, which naturally introduces an adaptive curriculum from existing final-patch outcomes. Its snapshot slicing applies the same scoring rule to intermediate patches, assigning credit for steps with progress even when later edits introduce regressions. Experiments on SWE-bench Verified and SWE-bench Pro (Py) show consistent advantage over binary and enhanced pass-rate baselines. Our analyses show denser learning signals, more balanced rewards, and test weights that adapt to the changing policy.

Improvements for AI systems

  1. Bold header: Dynamic Curriculum Generation

CodeLift groups tests that kill the same patches and patches that pass the same tests, then gives more weight to test groups that fewer patch groups pass, which reduces the impact of majority simple tests and focuses more on what is still challenging. This allows the system to adapt its training focus by dynamically shifting reward weights based on observed test behavior.

  1. Bold header: Dense and Stable Learning Signals

CodeLift provides dense, stable learning signals because it groups tests and patches into groups based on their test result behavior, which contrasts with pass-rate rewards that can lead to collapse, as the paper notes that the raw PassRate collapses very fast.

  1. Bold header: Improved Credit Assignment via Snapshot Slicing

CodeLift employs snapshot slicing to assign credit to intermediate actions, stating it can assign credit to useful actions even when later ones introduce regressions. This is achieved by computing the advantage as ∆j i = S(s j i) − r j final, which allows the system to recognize progress even if a later edit lowers the final score.

  1. Bold header: Mitigation of Reward Imbalances

The method addresses three imbalances in pass-rate rewards: Multiplicity imbalance, Progress–regression imbalance, and Difficulty imbalance. By using behavior balancing, CodeLift mitigates these issues by ensuring that it is not biased by tests that check the same functionality or by overly penalizing regressions.

  1. Bold header: Enhanced Performance on SWE Benchmarks

Experiments show that CodeLift consistently improves pass@1/2/4/8 over binary and pass-rate baselines, achieving gains ranging from 2.75 to 7.40 on Verified and from 0.22 to 4.51 on Pro. This demonstrates a significant, consistent performance uplift across complex software engineering tasks using the Qwen3 LLM agent.

Abstract

The pass-all-test binary reward has become a standard recipe for training software engineering agents, but its sparsity eliminates difference of partially correct patches. The test pass-rate is a natural alternative. However, we find that it is not a reliable indicator of patch quality. A functionality being tested can be covered by either one challenging test or one hundred trivial tests, where the majority might be already satisfied pass-to-pass tests. We introduce CodeLift, a reinforcement learning method that dynamically calibrates pass-rate rewards, turning the test suite into an adaptive curriculum. At each iteration, CodeLift groups tests that kill the same patches and patches that pass the same tests, then gives more weight to test groups that fewer patch groups pass. This reduces the impact of majority simple tests and focuses more on what is still challenging. Within each rollout, CodeLift applies the same scoring rule to repository snapshots, assigning credit to useful actions even when later ones introduce regressions. Experiments on SWE benchmarks show that CodeLift consistently improves pass@1/2/4/8 over binary and pass-rate baselines. Analyses show that CodeLift provides dense, stable learning signals and unlocks the inherent curriculum in the test suite.

Sources

Related papers