論文の概要: Automatically Removing Unnecessary Stubbings from Test Suites
- arxiv url: http://arxiv.org/abs/2407.20924v1
- Date: Tue, 30 Jul 2024 16:01:21 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-31 16:40:36.039475
- Title: Automatically Removing Unnecessary Stubbings from Test Suites
- Title(参考訳): テストスイートから不要なスタブを自動的に除去する
- Authors: Mengzhen Li, Mattia Fazzini,
- Abstract要約: テストスイートから不要なスタブを自動的に除去する手法であるARUSを提案する。
ソフトウェアプロジェクトとそのテストスイートが与えられた後、ARUSは不要なスタブを識別するためにテストを実行し、削除する。
ARUSは定義の276のソリューション(98.6%の解決率)を提供し、ARUSの時間コストは無視可能である。
- 参考スコア(独自算出の注目度): 1.6866000078306815
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Most modern software systems are characterized by a high number of components whose interactions can affect and complicate testing activities. During testing, developers can account for the interactions by isolating the code under test using test doubles and stubbings. During the evolution of a test suite, stubbings might become unnecessary, and developers should remove unnecessary stubbings, as their definitions can introduce unreliable test results in future versions of the test suite. Unfortunately, removing unnecessary stubbings is still a manual task that can be complex and time-consuming. To help developers in this task, we propose ARUS, a technique to automatically remove unnecessary stubbings from test suites. Given a software project and its test suite, the technique executes the tests to identify unnecessary stubbings and then removes them using different approaches based on the characteristics of the stubbings. We performed an empirical evaluation based on 128 Java projects that use Mockito for stubbing and contain 280 stubbing definitions that lead to 1,529 unnecessary stubbings. Overall, our technique provides a solution for 276 of the definitions (98.6% resolution rate), ARUS' time cost is negligible, and, on average, the technique's changes introduce a limited increase in code complexity. We submitted ARUS' changes to the projects through pull requests and 83 resolutions are already merged.
- Abstract(参考訳): 現代のソフトウェアシステムのほとんどは、多くのコンポーネントによって特徴づけられ、そのコンポーネントは相互作用がテスト活動に影響を与え、複雑化する。
テスト中、開発者はテストダブルとスタブを使ってテスト中のコードを分離することで、インタラクションを説明できる。
テストスイートの進化の間、スタブは不要になり、開発者は不要なスタブを削除する必要がある。
残念なことに、不要なスタブを削除することは、まだ手作業であり、複雑で時間を要する可能性がある。
このタスクを支援するために、テストスイートから不要なスタブを自動的に除去するテクニックであるARUSを提案する。
ソフトウェアプロジェクトとそのテストスイートが与えられたら、このテクニックは不要なスタブを識別するためにテストを実行し、スタブの特性に基づいて異なるアプローチでそれらを除去する。
私たちは、Mockitoをスタブに使用し、280のスタブ定義を含む、1,529の不要なスタブに繋がる128のJavaプロジェクトに基づいて、実証的な評価を行いました。
全体として、我々の技術は276の定義(98.6%の解決率)に対する解決策を提供し、ARUSの時間コストは無視可能であり、平均して、この技術の変更はコードの複雑さを限定的に増加させます。
私たちはプルリクエストを通じてARUSの変更をプロジェクトに提出し、83の解決はすでに統合されています。
関連論文リスト
- Leveraging Large Language Models for Enhancing the Understandability of Generated Unit Tests [4.574205608859157]
我々は,検索ベースのソフトウェアテストと大規模言語モデルを組み合わせたUTGenを導入し,自動生成テストケースの理解性を向上する。
UTGenテストケースで課題に取り組む参加者は、最大33%のバグを修正し、ベースラインテストケースと比較して最大20%の時間を使用できます。
論文 参考訳(メタデータ) (2024-08-21T15:35:34Z) - Fix the Tests: Augmenting LLMs to Repair Test Cases with Static Collector and Neural Reranker [9.428021853841296]
本稿では, TROCtxsの精密かつ高精度な構築により, 旧来の検査ケースを自動的に修復する新しい手法であるSynTERを提案する。
構築されたTROCtxの増強により、幻覚は57.1%減少する。
論文 参考訳(メタデータ) (2024-07-04T04:24:43Z) - One Prompt is not Enough: Automated Construction of a Mixture-of-Expert Prompts [110.94724216491753]
大規模言語モデル(LLM)は、言語命令やコンテキスト内デモによって、強力な一般化能力を示す。
命令設計を自動化するために様々な手法が検討されてきたが、探索されたプロンプトを1つの命令に制限した。
我々はMixture-of-Expertパラダイムを採用し、問題空間を一連のサブリージョンに分割する。
地域ごとに専門的な専門家を構築するための2段階のプロセスが開発されている。
専門家1人当たりの命令の地域ベースの共同探索は、それに割り当てられたデモを補完し、相乗効果をもたらす。
論文 参考訳(メタデータ) (2024-06-28T23:05:08Z) - Taming Timeout Flakiness: An Empirical Study of SAP HANA [47.29324864511411]
不安定なテストは回帰テストに悪影響を及ぼします。
テストタイムアウトは、このような不安定なテストの失敗に寄与する要因のひとつです。
テストのフレキネス率は、繰り返しテストの実行回数によって49%から70%の範囲である。
論文 参考訳(メタデータ) (2024-02-07T20:01:41Z) - Do Automatic Test Generation Tools Generate Flaky Tests? [12.813573907094074]
テスト生成ツールが生成するフレキなテストの頻度と性質はほとんど不明である。
EvoSuite(Java)とPynguin(Python)を使ってテストを生成し、各テストは200回実行します。
この結果から, フレキネスは開発者の手書きテストと同様, 生成テストでも一般的であることが判明した。
論文 参考訳(メタデータ) (2023-10-08T16:44:27Z) - Effective Test Generation Using Pre-trained Large Language Models and
Mutation Testing [13.743062498008555]
大規模言語モデル(LLM)が生成するテストケースの有効性を,バグの発見の観点から改善するための MuTAP を導入する。
MuTAPは、プログラム・アンダー・テスト(PUT)の自然言語記述がない場合に有効なテストケースを生成することができる
提案手法は, 最大28%の人書きコードスニペットを検出できることを示す。
論文 参考訳(メタデータ) (2023-08-31T08:48:31Z) - ACETest: Automated Constraint Extraction for Testing Deep Learning
Operators [23.129431525952263]
テストケースが入力妥当性チェックをパスし、演算子のコア関数ロジックに到達できることが不可欠である。
既存のテクニックは、制約を抽出するために、DLライブラリAPIの人的努力またはドキュメントに依存する。
本研究では,コードから入力検証制約を自動的に抽出し,有効かつ多様なテストケースを構築する技術であるACETestを提案する。
論文 参考訳(メタデータ) (2023-05-29T06:49:40Z) - Sequential Kernelized Independence Testing [101.22966794822084]
我々は、カーネル化依存度にインスパイアされたシーケンシャルなカーネル化独立試験を設計する。
シミュレーションデータと実データの両方にアプローチのパワーを実証する。
論文 参考訳(メタデータ) (2022-12-14T18:08:42Z) - SUPERNOVA: Automating Test Selection and Defect Prevention in AAA Video
Games Using Risk Based Testing and Machine Learning [62.997667081978825]
従来の手法では、成長するソフトウェアシステムではスケールできないため、ビデオゲームのテストはますます難しいタスクになります。
自動化ハブとして機能しながら,テスト選択と欠陥防止を行うシステム SUPERNOVA を提案する。
この直接的な影響は、未公表のスポーツゲームタイトルの55%以上のテスト時間を減らすことが観察されている。
論文 参考訳(メタデータ) (2022-03-10T00:47:46Z) - ProtoTransformer: A Meta-Learning Approach to Providing Student Feedback [54.142719510638614]
本稿では,フィードバックを数発の分類として提供するという課題について考察する。
メタラーナーは、インストラクターによるいくつかの例から、新しいプログラミング質問に関する学生のコードにフィードバックを与えるように適応します。
本手法は,第1段階の大学が提供したプログラムコースにおいて,16,000名の学生試験ソリューションに対するフィードバックの提供に成功している。
論文 参考訳(メタデータ) (2021-07-23T22:41:28Z) - Rethinking End-to-End Evaluation of Decomposable Tasks: A Case Study on
Spoken Language Understanding [101.24748444126982]
分解可能なタスクは複雑で、サブタスクの階層から構成される。
しかし、既存のベンチマークでは、通常は表面レベルのサブタスクのみの例が示される。
サブタスク固有のユーティリティ関数上の座標アセントを用いて、ロバストなテストセットを構築するためのフレームワークを提案する。
論文 参考訳(メタデータ) (2021-06-29T02:53:59Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。