Learning Deep Semantics for Test Completion

要約

テストの作成は、ソフトウェア開発において時間のかかる作業ですが、不可欠な作業です。
テキストおよびコード生成のための深層学習の最近の進歩を活用して、開発者がテストを作成するのを支援することを提案します。
テスト完了の新しいタスクを形式化して、前のステートメントとテスト中のコードのコンテキストに基づいて、テスト メソッドの次のステートメントを自動的に完了します。
テスト完了のためにコード セマンティクスを使用するディープ ラーニング モデルである TeCo を開発しています。
TeCo の根底にある重要な洞察は、テスト メソッドの次のステートメントを予測するには、コード実行に関する推論が必要であるということです。これは、既存のコード補完モデルが使用する構文レベルのデータだけでは困難です。
TeCo は、前のステートメントの実行結果とテスト メソッドの実行コンテキストを含む 6 種類のコード セマンティクス データを抽出して使用します。
この新しいタスクのテストベッドを提供し、TeCo を評価するために、1,270 のオープンソース Java プロジェクトから 130,934 のテスト メソッドのコーパスを収集します。
私たちの結果は、TeCo が完全一致精度 18 を達成したことを示しています。これは、構文レベルのデータのみを使用した最適なベースラインよりも 29% 高い値です。
生成された次のステートメントの機能的正確性を測定する場合、TeCo は 29% のケースで実行可能なコードを生成できますが、最適なベースラインでは 18% が得られます。
さらに、TeCo は、テスト オラクルの生成に関する以前の作業よりも大幅に優れています。

要約(オリジナル)

Writing tests is a time-consuming yet essential task during software development. We propose to leverage recent advances in deep learning for text and code generation to assist developers in writing tests. We formalize the novel task of test completion to automatically complete the next statement in a test method based on the context of prior statements and the code under test. We develop TeCo — a deep learning model using code semantics for test completion. The key insight underlying TeCo is that predicting the next statement in a test method requires reasoning about code execution, which is hard to do with only syntax-level data that existing code completion models use. TeCo extracts and uses six kinds of code semantics data, including the execution result of prior statements and the execution context of the test method. To provide a testbed for this new task, as well as to evaluate TeCo, we collect a corpus of 130,934 test methods from 1,270 open-source Java projects. Our results show that TeCo achieves an exact-match accuracy of 18, which is 29% higher than the best baseline using syntax-level data only. When measuring functional correctness of generated next statement, TeCo can generate runnable code in 29% of the cases compared to 18% obtained by the best baseline. Moreover, TeCo is significantly better than prior work on test oracle generation.

arxiv情報

著者 Pengyu Nie,Rahul Banerjee,Junyi Jessy Li,Raymond J. Mooney,Milos Gligoric
発行日 2023-02-20 18:53:56+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

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