English

UTFix: Change Aware Unit Test Repairing using LLM

Software Engineering 2025-03-20 v1

Abstract

Software updates, including bug repair and feature additions, are frequent in modern applications but they often leave test suites outdated, resulting in undetected bugs and increased chances of system failures. A recent study by Meta revealed that 14%-22% of software failures stem from outdated tests that fail to reflect changes in the codebase. This highlights the need to keep tests in sync with code changes to ensure software reliability. In this paper, we present UTFix, a novel approach for repairing unit tests when their corresponding focal methods undergo changes. UTFix addresses two critical issues: assertion failure and reduced code coverage caused by changes in the focal method. Our approach leverages language models to repair unit tests by providing contextual information such as static code slices, dynamic code slices, and failure messages. We evaluate UTFix on our generated synthetic benchmarks (Tool-Bench), and real-world benchmarks. Tool- Bench includes diverse changes from popular open-source Python GitHub projects, where UTFix successfully repaired 89.2% of assertion failures and achieved 100% code coverage for 96 tests out of 369 tests. On the real-world benchmarks, UTFix repairs 60% of assertion failures while achieving 100% code coverage for 19 out of 30 unit tests. To the best of our knowledge, this is the first comprehensive study focused on unit test in evolving Python projects. Our contributions include the development of UTFix, the creation of Tool-Bench and real-world benchmarks, and the demonstration of the effectiveness of LLM-based methods in addressing unit test failures due to software evolution.

Keywords

Cite

@article{arxiv.2503.14924,
  title  = {UTFix: Change Aware Unit Test Repairing using LLM},
  author = {Shanto Rahman and Sachit Kuhar and Berk Cirisci and Pranav Garg and Shiqi Wang and Xiaofei Ma and Anoop Deoras and Baishakhi Ray},
  journal= {arXiv preprint arXiv:2503.14924},
  year   = {2025}
}

Comments

26 pages, International Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA) 2025

R2 v1 2026-06-28T22:26:18.975Z