要約
ソフトウェア テストは、ソフトウェア開発において重要ではありますが、時間がかかる側面であり、最近では、テスト ケースを自動生成するための大規模言語モデル (LLM) が人気を集めています。
ただし、LLM は膨大な量のオープンソース コードでトレーニングされるため、ベスト プラクティスに従わないテスト ケースが生成されることが多く、テストの匂い (アンチパターン) が含まれる場合もあります。
この問題に対処するために、静的品質メトリクスからの強化学習 (RLSQM) を提案します。この方法では、強化学習を利用して、静的分析ベースの品質メトリクスに基づいて高品質の単体テストを生成します。
まず、LLM によって生成されたテストを分析し、LLM が望ましくないテスト臭を頻繁に (最大 37% の確率で) 生成することを示しました。
次に、軽量の静的分析ベースの報酬モデルを実装し、この報酬モデルを使用して LLM をトレーニングして、5 つのコード品質メトリクスを最適化しました。
私たちの実験結果は、RL に最適化された Codex モデルがベース LLM よりも高品質のテスト ケースを一貫して生成し、品質メトリクスを最大 23% 向上させ、構文的にほぼ 100% 正しいコードを生成したことを示しています。
また、RLSQM は、大幅に安価な Codex モデルをトレーニングしたにもかかわらず、すべてのコード品質メトリクスで GPT-4 を上回りました。
RL を確実に利用してテスト生成の品質を向上させる方法についての洞察を提供し、RLSQM が自動ソフトウェア テストの全体的な効率と信頼性を向上させるための重要な一歩であることを示します。
データは https://doi.org/10.6084/m9.figshare.25983166 で入手できます。
要約(オリジナル)
Software testing is a crucial but time-consuming aspect of software development, and recently, Large Language Models (LLMs) have gained popularity for automated test case generation. However, because LLMs are trained on vast amounts of open-source code, they often generate test cases that do not adhere to best practices and may even contain test smells (anti-patterns). To address this issue, we propose Reinforcement Learning from Static Quality Metrics (RLSQM), wherein we utilize Reinforcement Learning to generate high-quality unit tests based on static analysis-based quality metrics. First, we analyzed LLM-generated tests and show that LLMs frequently do generate undesirable test smells — up to 37% of the time. Then, we implemented lightweight static analysis-based reward model and trained LLMs using this reward model to optimize for five code quality metrics. Our experimental results demonstrate that the RL-optimized Codex model consistently generated higher-quality test cases than the base LLM, improving quality metrics by up to 23%, and generated nearly 100% syntactically-correct code. RLSQM also outperformed GPT-4 on all code quality metrics, in spite of training a substantially cheaper Codex model. We provide insights into how reliably utilize RL to improve test generation quality and show that RLSQM is a significant step towards enhancing the overall efficiency and reliability of automated software testing. Our data are available at https://doi.org/10.6084/m9.figshare.25983166.
arxiv情報
著者 | Benjamin Steenhoek,Michele Tufano,Neel Sundaresan,Alexey Svyatkovskiy |
発行日 | 2025-01-06 16:31:18+00:00 |
arxivサイト | arxiv_id(pdf) |
提供元, 利用サービス
arxiv.jp, Google