要約
ソフトウェア テストはソフトウェア開発の重要な側面であり、効果的なメンテナンスにはベスト プラクティスに準拠した高品質のテストを作成することが不可欠です。
最近、テスト ケースの自動作成などのコード生成で大規模言語モデル (LLM) が人気を集めています。
ただし、これらの LLM は、多くの場合、公開されている膨大な量のコードでトレーニングされており、ベスト プラクティスに準拠していないテスト ケースが含まれている場合や、テストの臭い (アンチパターン) が含まれている場合もあります。
この問題に対処するために、静的品質メトリクスからの強化学習 (RLSQM) と呼ばれる新しい手法を提案します。
まず、LLM によって生成されたアンチパターンを分析し、LLM が望ましくないテスト臭を生成する可能性があることを示します。
したがって、静的品質指標ごとに特定の報酬モデルをトレーニングし、次に Proximal Policy Optimization (PPO) を利用して、一度に 1 つの品質指標を最適化するモデルをトレーニングします。
さらに、これらの報酬を、テストのさまざまなベスト プラクティスと品質側面を把握することを目的とした統一報酬モデルに統合します。
RL でトレーニングされたモデルと教師あり学習を使用してトレーニングされたモデルを比較することで、RL を確実に利用してテスト生成の品質を向上させる方法と、さまざまなトレーニング戦略の効果についての洞察が得られます。
私たちの実験結果は、RL 最適化モデルがベース LLM と比較して高品質のテスト ケースを一貫して生成し、モデルを最大 21% 改善し、構文的にほぼ 100% 正しいコードを生成することに成功したことを示しています。
RLSQM は、7 つの指標のうち 4 つにおいても GPT-4 を上回りました。
これは、強化学習と静的品質指標を通じてソフトウェア テストの全体的な効率と信頼性を向上させるための重要な一歩を表しています。
データは https://figshare.com/s/ded476c8d4c221222849 で入手できます。
要約(オリジナル)
Software testing is a crucial aspect of software development, and the creation of high-quality tests that adhere to best practices is essential for effective maintenance. Recently, Large Language Models (LLMs) have gained popularity for code generation, including the automated creation of test cases. However, these LLMs are often trained on vast amounts of publicly available code, which may include test cases that do not adhere to best practices and may even contain test smells (anti-patterns). To address this issue, we propose a novel technique called Reinforcement Learning from Static Quality Metrics (RLSQM). To begin, we analyze the anti-patterns generated by the LLM and show that LLMs can generate undesirable test smells. Thus, we train specific reward models for each static quality metric, then utilize Proximal Policy Optimization (PPO) to train models for optimizing a single quality metric at a time. Furthermore, we amalgamate these rewards into a unified reward model aimed at capturing different best practices and quality aspects of tests. By comparing RL-trained models with those trained using supervised learning, we provide insights into how reliably utilize RL to improve test generation quality and into the effects of various training strategies. Our experimental results demonstrate that the RL-optimized model consistently generated high-quality test cases compared to the base LLM, improving the model by up to 21%, and successfully generates nearly 100% syntactically correct code. RLSQM also outperformed GPT-4 on four out of seven metrics. This represents a significant step towards enhancing the overall efficiency and reliability of software testing through Reinforcement Learning and static quality metrics. Our data are available at https://figshare.com/s/ded476c8d4c221222849.
arxiv情報
著者 | Benjamin Steenhoek,Michele Tufano,Neel Sundaresan,Alexey Svyatkovskiy |
発行日 | 2025-01-06 16:41:09+00:00 |
arxivサイト | arxiv_id(pdf) |
提供元, 利用サービス
arxiv.jp, Google