FlakyFix: Using Large Language Models for Predicting Flaky Test Fix Categories and Test Code Repair

要約

不安定なテストは、テスト対象の同じソフトウェア バージョンに対して非決定的に合格または不合格となるため、混乱を引き起こし、開発労力を無駄にするため、問題があります。
機械学習モデルは脆弱性とその根本原因を予測するために使用されてきましたが、問題を解決するためのサポートを提供する取り組みははるかに少なくなっています。
このギャップに対処するために、このホワイト ペーパーでは、脆弱性を除去するために必要な修正の種類を予測し、それに基づいてテスト コードを修復することに焦点を当てます。
これは、不安定さの根本原因が本番コードではなくテスト ケース自体にある場合、不安定なテスト ケースのサブセットに対して行います。
私たちの重要なアイデアは、予測された修正カテゴリの形式でテストの脆弱性に関する追加の知識を使用して修復プロセスをガイドすることです。
したがって、最初に、13 の修正カテゴリのラベル付きデータセットを自動的に生成し、テスト コードのみを分析することで不安定なテストの修正カテゴリを予測するようにモデルをトレーニングするフレームワークを提案します。
コード モデルと少数ショット学習を使用した実験結果は、ほとんどの修正カテゴリを正しく予測できることを示しています。
脆弱性を自動的に修復するためのこのような修正カテゴリ ラベルの有用性を示すために、テスターに​​通知するだけでなく、GPT のような大規模言語モデル (LLM) に追加の知識を追加して、LLM に修復の提案を求めます。
結果は、私たちが提案した修正カテゴリ ラベルが、不安定なテストの修正を生成する際の GPT 3.5 Turbo の機能を大幅に強化することを示しています。

要約(オリジナル)

Flaky tests are problematic because they non-deterministically pass or fail for the same software version under test, causing confusion and wasting development effort. While machine learning models have been used to predict flakiness and its root causes, there is much less work on providing support to fix the problem. To address this gap, in this paper, we focus on predicting the type of fix that is required to remove flakiness and then repair the test code on that basis. We do this for a subset of flaky test cases where the root cause of flakiness is in the test case itself and not in the production code. Our key idea is to guide the repair process with additional knowledge about the test’s flakiness in the form of its predicted fix category. Thus, we first propose a framework that automatically generates labeled datasets for 13 fix categories and trains models to predict the fix category of a flaky test by analyzing the test code only. Our experimental results using code models and few-shot learning show that we can correctly predict most of the fix categories. To show the usefulness of such fix category labels for automatically repairing flakiness, in addition to informing testers, we augment a Large Language Model (LLM) like GPT with such extra knowledge to ask the LLM for repair suggestions. The results show that our suggested fix category labels significantly enhance the capability of GPT 3.5 Turbo, in generating fixes for flaky tests.

arxiv情報

著者 Sakina Fatima,Hadi Hemmati,Lionel Briand
発行日 2024-01-29 16:28:00+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.LG, cs.SE パーマリンク