論文の概要: Perfect is the enemy of test oracle
- arxiv url: http://arxiv.org/abs/2302.01488v2
- Date: Wed, 5 Apr 2023 23:32:13 GMT
- ステータス: 処理完了
- システム内更新日: 2023-04-07 17:05:25.512111
- Title: Perfect is the enemy of test oracle
- Title(参考訳): 完全はテストオラクルの敵です
- Authors: Ali Reza Ibrahimzada, Yigit Varli, Dilara Tekinoglu, Reyhaneh
Jabbarvand
- Abstract要約: テストのオーラクルは、テストが失敗する(バグを検出する)か通過するかを判断するために、正しい動作とバギーな動作を区別できる地平線に依存しています。
本稿では,テストアサーションが存在しない場合には,テスト対象のメソッド(MUT)で単体テストが通過するか失敗するかを判定できる,学習に基づくSEERを提案する。
さまざまなオープンソースのJavaプロジェクトから5K以上のユニットテストにSEERを適用する実験は、生成したオラクルがフェールやパスラベルを予測するのに有効であることを示している。
- 参考スコア(独自算出の注目度): 1.457696018869121
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Automation of test oracles is one of the most challenging facets of software
testing, but remains comparatively less addressed compared to automated test
input generation. Test oracles rely on a ground-truth that can distinguish
between the correct and buggy behavior to determine whether a test fails
(detects a bug) or passes. What makes the oracle problem challenging and
undecidable is the assumption that the ground-truth should know the exact
expected, correct, or buggy behavior. However, we argue that one can still
build an accurate oracle without knowing the exact correct or buggy behavior,
but how these two might differ. This paper presents SEER, a learning-based
approach that in the absence of test assertions or other types of oracle, can
determine whether a unit test passes or fails on a given method under test
(MUT). To build the ground-truth, SEER jointly embeds unit tests and the
implementation of MUTs into a unified vector space, in such a way that the
neural representation of tests are similar to that of MUTs they pass on them,
but dissimilar to MUTs they fail on them. The classifier built on top of this
vector representation serves as the oracle to generate "fail" labels, when test
inputs detect a bug in MUT or "pass" labels, otherwise. Our extensive
experiments on applying SEER to more than 5K unit tests from a diverse set of
open-source Java projects show that the produced oracle is (1) effective in
predicting the fail or pass labels, achieving an overall accuracy, precision,
recall, and F1 measure of 93%, 86%, 94%, and 90%, (2) generalizable, predicting
the labels for the unit test of projects that were not in training or
validation set with negligible performance drop, and (3) efficient, detecting
the existence of bugs in only 6.5 milliseconds on average.
- Abstract(参考訳): テストオーラクルの自動化は、ソフトウェアテストの最も難しい側面の1つだが、自動テスト入力生成と比較して、比較的扱いにくい。
テストのオーラクルは、テストが失敗する(バグを検出する)か通過するかを判断するために、正しい動作とバギーな動作を区別できる地平線に依存しています。
オラクルの問題を難しく、決定不能にしているのは、根本真実が正確な期待、正しい、またはバグの多い振る舞いを知るべきだという仮定である。
しかし、我々は、正確なoracleを、正確な正しい振る舞いやバグの振る舞いを知らずに構築できると主張しているが、この2つがどのように違うかもしれない。
本稿では,テストアサーションや他の種類のオラクルが存在しない場合に,テスト対象のメソッド(MUT)で単体テストが通過するか失敗するかを判断できる,学習に基づくSEERを提案する。
基底を構築するため、seerはユニットテストとmutsの実装を共同で統一ベクトル空間に組み込んでおり、テストの神経表現は、彼らが渡したmutと似ているが、それらが失敗したmutと似ていないようにしている。
このベクトル表現の上に構築された分類器は、テスト入力が mut あるいは "pass" ラベルのバグを検出するとき、oracle が "fail" ラベルを生成するのに役立ちます。
Our extensive experiments on applying SEER to more than 5K unit tests from a diverse set of open-source Java projects show that the produced oracle is (1) effective in predicting the fail or pass labels, achieving an overall accuracy, precision, recall, and F1 measure of 93%, 86%, 94%, and 90%, (2) generalizable, predicting the labels for the unit test of projects that were not in training or validation set with negligible performance drop, and (3) efficient, detecting the existence of bugs in only 6.5 milliseconds on average.
関連論文リスト
- Do Large Language Model Benchmarks Test Reliability? [66.1783478365998]
モデル信頼性の定量化について検討する。
信頼性評価におけるこのギャップにより、我々はいわゆるプラチナベンチマークの概念を提案する。
我々は、これらのプラチナベンチマークにおいて、幅広いモデルを評価し、実際、フロンティアLSMは、単純なタスクで失敗を示す。
論文 参考訳(メタデータ) (2025-02-05T18:58:19Z) - Learning to Generate Unit Tests for Automated Debugging [52.63217175637201]
ユニットテスト(UT)は、コードの正確性を評価するだけでなく、大きな言語モデル(LLM)へのフィードバックを提供する上でも重要な役割を果たします。
提案するUTGenは,LLMに対して,予測出力とともにエラーを示す単体テスト入力を生成することを教える。
UTGenがUT生成ベースラインを7.59%向上させることを示す。
論文 参考訳(メタデータ) (2025-02-03T18:51:43Z) - AugmenTest: Enhancing Tests with LLM-Driven Oracles [2.159639193866661]
AugmenTestは、大規模な言語モデルを活用して、テスト中のソフトウェアの利用可能なドキュメントに基づいて、正しいオーラクルを推測するアプローチである。
AugmenTestには4つのバリエーションがある: Simple Prompt、Extended Prompt、ジェネリックプロンプト付きRAG(テスト中のクラスやメソッドのコンテキストなしで)とSimple Prompt付きRAG。
結果は、最も保守的なシナリオでは、AugmenTestのExtended PromptがSimple Promptを一貫して上回り、正しいアサーションを生成するために30%の成功率を達成したことを示している。
論文 参考訳(メタデータ) (2025-01-29T07:45:41Z) - Generating executable oracles to check conformance of client code to requirements of JDK Javadocs using LLMs [21.06722050714324]
本稿では,広く使用されているJavaライブラリ,例えば java.lang や java.util パッケージのクライアントに対するテストオーラクルの自動化に焦点を当てる。
大規模な言語モデルを、テストオラクル自動化のフレームワークに関する洞察を具現化するための技術として使用しています。
論文 参考訳(メタデータ) (2024-11-04T04:24:25Z) - STAMP: Outlier-Aware Test-Time Adaptation with Stable Memory Replay [76.06127233986663]
テスト時間適応(TTA)は、トレーニングデータとテストデータの間の分散シフトに、未ラベルのデータのみを用いて対処することを目的としている。
本稿では,サンプル認識とオフリエ拒絶の両方を行う問題に注意を払っている。
本稿では,STAble Memory rePlay (STAMP) と呼ばれる新しい手法を提案する。
論文 参考訳(メタデータ) (2024-07-22T16:25:41Z) - LLM-Powered Test Case Generation for Detecting Tricky Bugs [30.82169191775785]
AIDは、少なくとも正しいプログラムをターゲットにしたテスト入力とオラクルを生成する。
TrickyBugs と EvalPlus の2つの大規模データセットに対する AID の評価を行った。
その結果,AIDのリコール,精度,F1スコアは,それぞれ1.80x,2.65x,1.66xに優れていた。
論文 参考訳(メタデータ) (2024-04-16T06:20:06Z) - GPT-HateCheck: Can LLMs Write Better Functional Tests for Hate Speech Detection? [50.53312866647302]
HateCheckは、合成データに対してきめ細かいモデル機能をテストするスイートである。
GPT-HateCheckは,スクラッチからより多彩で現実的な機能テストを生成するフレームワークである。
クラウドソースのアノテーションは、生成されたテストケースが高品質であることを示しています。
論文 参考訳(メタデータ) (2024-02-23T10:02:01Z) - Automatic Generation of Test Cases based on Bug Reports: a Feasibility
Study with Large Language Models [4.318319522015101]
既存のアプローチは、単純なテスト(例えば単体テスト)や正確な仕様を必要とするテストケースを生成する。
ほとんどのテスト手順は、テストスイートを形成するために人間が書いたテストケースに依存しています。
大規模言語モデル(LLM)を活用し,バグレポートを入力として利用することにより,この生成の実現可能性を検討する。
論文 参考訳(メタデータ) (2023-10-10T05:30:12Z) - Effective Test Generation Using Pre-trained Large Language Models and
Mutation Testing [13.743062498008555]
大規模言語モデル(LLM)が生成するテストケースの有効性を,バグの発見の観点から改善するための MuTAP を導入する。
MuTAPは、プログラム・アンダー・テスト(PUT)の自然言語記述がない場合に有効なテストケースを生成することができる
提案手法は, 最大28%の人書きコードスニペットを検出できることを示す。
論文 参考訳(メタデータ) (2023-08-31T08:48:31Z) - Auditing AI models for Verified Deployment under Semantic Specifications [65.12401653917838]
AuditAIは、解釈可能な形式検証とスケーラビリティのギャップを埋める。
AuditAIは、画素空間の摂動のみを用いた検証の限界に対処しながら、検証と認定トレーニングのための制御されたバリエーションを得られるかを示す。
論文 参考訳(メタデータ) (2021-09-25T22:53:24Z) - TACRED Revisited: A Thorough Evaluation of the TACRED Relation
Extraction Task [80.38130122127882]
TACREDはリレーショナル抽出(RE)において最も大きく、最も広く使われているクラウドソースデータセットの1つである
パフォーマンスの天井に到達したのか、改善の余地はあるのか?
ラベルエラーは絶対F1テストエラーの8%を占めており、例の50%以上を可逆化する必要がある。
論文 参考訳(メタデータ) (2020-04-30T15:07:37Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。