Skip to main content
QUICK REVIEW

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

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

本稿では、実際のJavaメソッドとその対応する単体テストケースの大きな並列コーパス上で、BARTベースのトランスフォーマーをファインチューニングすることにより、人間が読みやすい単体テストケースを生成する、シーケンス・ツー・シーケンス型のディープラーニング手法AthenaTestを提案する。本手法は、30回の試行で焦点メソッドの43.7%をカバーし、GPT-3よりもテストケースの正しさと開発者による好みが高く、EvoSuiteと同等のテストカバレッジを達成している。

ABSTRACT

Automated unit test case generation tools facilitate test-driven development and support developers by suggesting tests intended to identify flaws in their code. Existing approaches are usually guided by the test coverage criteria, generating synthetic test cases that are often difficult for developers to read or understand. In this paper we propose AthenaTest, an approach that aims to generate unit test cases by learning from real-world focal methods and developer-written testcases. We formulate unit test case generation as a sequence-to-sequence learning task, adopting a two-step training procedure consisting of denoising pretraining on a large unsupervised Java corpus, and supervised finetuning for a downstream translation task of generating unit tests. We investigate the impact of natural language and source code pretraining, as well as the focal context information surrounding the focal method. Both techniques provide improvements in terms of validation loss, with pretraining yielding 25% relative improvement and focal context providing additional 11.1% improvement. We also introduce Methods2Test, the largest publicly available supervised parallel corpus of unit test case methods and corresponding focal methods in Java, which comprises 780K test cases mined from 91K open-source repositories from GitHub. We evaluate AthenaTest on five defects4j projects, generating 25K passing test cases covering 43.7% of the focal methods with only 30 attempts. We execute the test cases, collect test coverage information, and compare them with test cases generated by EvoSuite and GPT-3, finding that our approach outperforms GPT-3 and has comparable coverage w.r.t. EvoSuite. Finally, we survey professional developers on their preference in terms of readability, understandability, and testing effectiveness of the generated tests, showing overwhelmingly preference towards AthenaTest.

研究の動機と目的

  • 既存の自動テストツールにおける機械生成された単体テストの読みにくさと理解しにくさを改善すること。
  • 実世界の開発者が書いたテストケースと焦点メソッドから学習することで、テストケース生成を向上させること。
  • 事前学習段階における自然言語とソースコードのコーパス、および焦点コンテキストの影響がテスト生成品質に与える影響を調査すること。
  • Javaのテストケースとその対応する焦点メソッドを含む、公開可能な最大規模の教師あり並列コーパス「Methods2Test」の構築とリリース。
  • EvoSuite や GPT-3 といった最先端のツールと比較して、生成されたテストケースの有効性、カバレッジ、および開発者による好みを評価すること。

提案手法

  • トランスフォーマーに基づくモデルを用いて、単体テスト生成をシーケンス・ツー・シーケンス学習タスクとして定式化する。
  • 二段階訓練を実施する:まず、Javaソースコードと英語テキストの大量な非教師ありコーパスを用いたノイズ除去事前学習を行い、その後、テスト生成タスクにおける教師ありファインチューニングを実施する。
  • 生成品質の向上のため、焦点メソッドを取り巻く文脈的コード(フォーカスコンテキスト)を統合する。
  • 78万件のテストケースペアを含む、91,000件のGitHubリポジトリから抽出したMethods2Testデータセットを、教師ありファインチューニングに活用する。
  • 事前学習済みのBARTモデルをテストケース生成タスクに適応させるため、トランスファー学習技術を適用する。
  • 実行による評価を通し、ラインカバレッジと条件カバレッジを測定し、また、読みやすさと理解しやすさに関する開発者アンケートを実施する。

実験結果

リサーチクエスチョン

  • RQ1自然言語とソースコードのコーパスにおける事前学習が、生成された単体テストケースの品質に与える影響はいかほどか?
  • RQ2フォーカスコンテキストを組み込むことで、生成されたテストケースの品質とカバレッジはどの程度向上するか?
  • RQ3AthenaTestの性能は、GPT-3 や EvoSuite と比較して、テストカバレッジと正しさの観点でどの程度優れているか?
  • RQ4プロフェッショナルな開発者は、AthenaTestが生成したテストケースとEvoSuiteが生成したテストケースのどちらをより読みやすく、理解しやすいと感じるか?
  • RQ5ファインチューニングされたトランスフォーマー・モデルは、正しく、かつ人間が書いたコードと区別がつかないテストケースを生成できるか?

主な発見

  • 自然言語とソースコードの両方のコーパスで事前学習することで、非事前学習モデルと比較して検証損失が相対的に25%削減された。
  • 事前学習に加えてフォーカスコンテキストを組み込むことで、事前学習のみのモデルに比べて検証損失がさらに11.1%改善された。
  • AthenaTestは、5つのdefects4jプロジェクトにおいて、30回の試行で焦点メソッドの43.7%に対して正常に実行可能なテストケースを生成した。
  • AthenaTestが生成したテストケースは、EvoSuiteと同等のテストカバレッジを達成し、isNumberメソッドでは51行と41の条件がカバーされた。GPT-3に比べ正しさとカバレッジの両面で優れていた。
  • 開発者アンケートの結果、AthenaTestが生成したテストケースはEvoSuiteのものよりも強く好まれており、読みやすさと理解しやすさが優れているとされた。
  • AthenaTestは、正しく、慣習的なテストケースを生成できており、焦点メソッドのすべての条件をカバーし、nullの戻り値の適切なアサーションや有効な値の作成を正しく行っていた。

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

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

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

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