Table of Contents
Fetching ...

Synthesizing File-Level Data for Unit Test Generation with Chain-of-Thoughts via Self-Debugging

Ziyue Hua, Tianyu Chen, Yeyun Gong, Shuai Lu, Peng Cheng, Qinglin Zhu, Yibo He, Yingjie Fu, Wenpin Jiao, Wei Yang, Tao Xie

TL;DR

This work tackles the quality gap in automatic unit-test generation by synthesizing high-quality training data that include faithful chain-of-thought explanations. It introduces Repo-Smith, a data-distillation pipeline that uses self-debugging with guided test repair and CoT compression to produce large-scale <focal method, test, CoT> pairs, culminating in the Repo-Smith-Test dataset with 74,518 entries. The authors demonstrate that supervising fine-tuning on this data substantially improves UT generation metrics, achieving superior pass rates, branch coverage, and mutation scores over strong baselines. The approach also clarifies the value of CoTs in guiding test generation and shows good generalizability and practical potential for improving software testing workflows.

Abstract

Automatic unit test (UT) generation is essential for software quality assurance, but existing approaches--including symbolic execution, search-based approaches, and recent LLM-based generators--struggle to produce human-quality tests with correct, meaningful assertions and reliable chain-of-thought (CoT) explanations. We identify a gap in UT training data: repository-mined tests lack developer CoTs, while LLM-distilled CoTs are often incorrect or incomplete. To address this issue, we propose a novel data-distillation approach that uses self-debugging to produce high-quality UT training examples paired with faithful CoTs. Our approach combines (1) guided test repair, a heuristic loop (error-, failure-, and coverage-focused steps) that asks the used model to diagnose and iteratively fix generated tests, and (2) CoT compression, which compacts original and debugging CoTs into concise explanations that directly justify correct tests. We apply this pipeline to a large corpus of open-source projects to construct a dataset of 74,518 high-quality <focal method, test, CoT> examples, and then use it for supervised fine-tuning of a base model. An empirical evaluation shows that the fine-tuned model achieves high UT generation effectiveness: it attains a pass rate of 36.17% on test assertions, a branch coverage of 43.90%, and a mutation score of 88.66%, substantially higher than state-of-the-art commercial models like o4-mini.

Synthesizing File-Level Data for Unit Test Generation with Chain-of-Thoughts via Self-Debugging

TL;DR

This work tackles the quality gap in automatic unit-test generation by synthesizing high-quality training data that include faithful chain-of-thought explanations. It introduces Repo-Smith, a data-distillation pipeline that uses self-debugging with guided test repair and CoT compression to produce large-scale <focal method, test, CoT> pairs, culminating in the Repo-Smith-Test dataset with 74,518 entries. The authors demonstrate that supervising fine-tuning on this data substantially improves UT generation metrics, achieving superior pass rates, branch coverage, and mutation scores over strong baselines. The approach also clarifies the value of CoTs in guiding test generation and shows good generalizability and practical potential for improving software testing workflows.

Abstract

Automatic unit test (UT) generation is essential for software quality assurance, but existing approaches--including symbolic execution, search-based approaches, and recent LLM-based generators--struggle to produce human-quality tests with correct, meaningful assertions and reliable chain-of-thought (CoT) explanations. We identify a gap in UT training data: repository-mined tests lack developer CoTs, while LLM-distilled CoTs are often incorrect or incomplete. To address this issue, we propose a novel data-distillation approach that uses self-debugging to produce high-quality UT training examples paired with faithful CoTs. Our approach combines (1) guided test repair, a heuristic loop (error-, failure-, and coverage-focused steps) that asks the used model to diagnose and iteratively fix generated tests, and (2) CoT compression, which compacts original and debugging CoTs into concise explanations that directly justify correct tests. We apply this pipeline to a large corpus of open-source projects to construct a dataset of 74,518 high-quality <focal method, test, CoT> examples, and then use it for supervised fine-tuning of a base model. An empirical evaluation shows that the fine-tuned model achieves high UT generation effectiveness: it attains a pass rate of 36.17% on test assertions, a branch coverage of 43.90%, and a mutation score of 88.66%, substantially higher than state-of-the-art commercial models like o4-mini.
Paper Structure (27 sections, 6 figures, 5 tables, 1 algorithm)

This paper contains 27 sections, 6 figures, 5 tables, 1 algorithm.

Figures (6)

  • Figure 1: The source code under test (focal file)
  • Figure 2: The test file from source code
  • Figure 4: Overview of Repo-Smith
  • Figure 5: The Distribution of Each Round's Debugging Types and Accept Rates
  • Figure 6: Best of the first K Rounds
  • ...and 1 more figures