Skip to main content
QUICK REVIEW

[論文レビュー] Unit Test Case Generation with Transformers

Michele Tufano, Dawn Drain|arXiv (Cornell University)|Sep 11, 2020
Software Engineering Research参考文献 22被引用数 19
ひとこと要約

AthenaTestは、Javaメソッド-テストペアのスケールの大きな現実世界のデータセットを用いて訓練された、シーケンス・ツー・シーケンスのトランスフォーマーモデルを提案する。このモデルは、人間が読みやすく、文法的に正しいユニットテストケースを生成する。開発者によるアンケートと自動評価メトリクスによる検証により、テストカバレッジ、読みやすさ、テスト効果性において、EvoSuite や GPT-3 を上回ることを確認した。

ABSTRACT

Automated Unit Test Case generation has been the focus of extensive literature within the research community. Existing approaches are usually guided by the test coverage criteria, generating synthetic test cases that are often difficult to read or understand for developers. In this paper we propose AthenaTest, an approach that aims at generating unit test cases by learning from real-world, developer-written test cases. Our approach relies on a state-of-the-art sequence-to-sequence transformer model which is able to write useful test cases for a given method under test (i.e., focal method). We also introduce methods2test - the largest publicly available supervised parallel corpus of unit test case methods and corresponding focal methods in Java, which comprises 630k test cases mined from 70k open-source repositories hosted on GitHub. We use this dataset to train a transformer model to translate focal methods into the corresponding test cases. We evaluate the ability of our model in generating test cases using natural language processing as well as code-specific criteria. First, we assess the quality of the translation compared to the target test case, then we analyze properties of the test case such as syntactic correctness and number and variety of testing APIs (e.g., asserts). We execute the test cases, collect test coverage information, and compare them with test cases generated by EvoSuite and GPT-3. Finally, we survey professional developers on their preference in terms of readability, understandability, and testing effectiveness of the generated test cases.

研究の動機と目的

  • 既存のアプローチにおける現実的で読みやすく、効果的な自動ユニットテストケース生成の不足を解決すること。
  • 合成的またはカバレッジ指向の手法ではなく、実際の開発者が書いたテストケースを用いて訓練することで、テストケースの品質を向上させること。
  • 訓練および評価用に利用可能な、Javaメソッド-テストペアの最大規模の公開された教師ありデータセットである methods2test を作成・公開すること。
  • 自然言語処理(NLP)およびコード固有のメトリクス(文法的正しさ、APIの多様性など)を用いて、生成されたテストケースを評価すること。
  • 開発者による評価を通じて、生成されたテストケースの読みやすさ、理解しやすさ、テスト効果性を評価すること。

提案手法

  • 63万件のメソッド-テストペア例を含む methods2test データセット上で、最先端のシーケンス・ツー・シーケンスのトランスフォーマーモデルをファインチューニングする。
  • 訓練済みモデルを用いて、焦点となるメソッドをエンコードし、翻訳のような形で対応するテストケースをデコードすることで、テストケースを生成する。
  • BLEU、ROUGE、BERTScore を用いて、生成されたテストケースと正解との間の意味的類似度を評価する。
  • 生成されたテストケースにおける文法的正しさ、および使用されたテストAPI(例:アサーション)の数と多様性を測定する。
  • 生成されたテストケースを実行し、コードカバレッジを測定し、EvoSuite や GPT-3 の結果と比較する。
  • プロフェッショナルな開発者を対象にアンケートを実施し、生成されたテストケースの読みやすさ、理解しやすさ、テスト効果性を評価する。

実験結果

リサーチクエスチョン

  • RQ1トランスフォーマーベースのモデルは、人間が書いたテストケースと意味的にどれほど類似したテストケースを生成できるか?
  • RQ2EvoSuite や GPT-3 と比較して、生成されたテストケースは文法的正しさとAPI多様性においてどう異なるか?
  • RQ3生成されたテストケースは、ベースラインツールと比較してどの程度のコードカバレッジを達成しているか?
  • RQ4プロフェッショナルな開発者は、生成されたテストケースの読みやすさと理解しやすさをどの程度評価しているか?
  • RQ5既存のアプローチと比較して、生成されたテストケースはバグ検出においてどの程度効果的か?

主な発見

  • トランスフォーマーモデルは、正解テストケースと高い意味的類似度を示し、BERTScore F1スコアにより意味の整合性が強いことを示した。
  • 生成されたテストケースは高い文法的正しさを示し、多様なテストAPIを用いており、堅牢性と表現力が裏付けられた。
  • ベンチマークデータセットにおいて、EvoSuite よりも高いコードカバレッジを達成し、GPT-3 と同等またはそれ以上のカバレッジを示した。
  • プロフェッショナルな開発者は、AthenaTestが生成したテストケースをEvoSuite や GPT-3 のものよりも読みやすく、理解しやすいと評価した。
  • 開発者アンケートのフィードバックによると、AthenaTestが生成したテストケースはバグ検出においてより効果的であると評価された。
  • methods2test データセットのおかげで、テストケース生成の品質に顕著な向上が見られ、現実世界の訓練データの価値が裏付けられた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。