論文の概要: Do Automatic Test Generation Tools Generate Flaky Tests?
- arxiv url: http://arxiv.org/abs/2310.05223v1
- Date: Sun, 8 Oct 2023 16:44:27 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 04:15:11.098375
- Title: Do Automatic Test Generation Tools Generate Flaky Tests?
- Title(参考訳): 自動テスト生成ツールは不安定なテストを生成するか?
- Authors: Martin Gruber, Muhammad Firhard Roslan, Owain Parry, Fabian
Scharnb\"ock, Phil McMinn, Gordon Fraser
- Abstract要約: テスト生成ツールが生成するフレキなテストの頻度と性質はほとんど不明である。
EvoSuite(Java)とPynguin(Python)を使ってテストを生成し、各テストは200回実行します。
この結果から, フレキネスは開発者の手書きテストと同様, 生成テストでも一般的であることが判明した。
- 参考スコア(独自算出の注目度): 12.813573907094074
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Non-deterministic test behavior, or flakiness, is common and dreaded among
developers. Researchers have studied the issue and proposed approaches to
mitigate it. However, the vast majority of previous work has only considered
developer-written tests. The prevalence and nature of flaky tests produced by
test generation tools remain largely unknown. We ask whether such tools also
produce flaky tests and how these differ from developer-written ones.
Furthermore, we evaluate mechanisms that suppress flaky test generation. We
sample 6 356 projects written in Java or Python. For each project, we generate
tests using EvoSuite (Java) and Pynguin (Python), and execute each test 200
times, looking for inconsistent outcomes. Our results show that flakiness is at
least as common in generated tests as in developer-written tests. Nevertheless,
existing flakiness suppression mechanisms implemented in EvoSuite are effective
in alleviating this issue (71.7 % fewer flaky tests). Compared to
developer-written flaky tests, the causes of generated flaky tests are
distributed differently. Their non-deterministic behavior is more frequently
caused by randomness, rather than by networking and concurrency. Using
flakiness suppression, the remaining flaky tests differ significantly from any
flakiness previously reported, where most are attributable to runtime
optimizations and EvoSuite-internal resource thresholds. These insights, with
the accompanying dataset, can help maintainers to improve test generation
tools, give recommendations for developers using these tools, and serve as a
foundation for future research in test flakiness or test generation.
- Abstract(参考訳): 非決定論的テスト行動(flakiness)は、開発者の間で一般的であり、恐れられている。
研究者はこの問題を研究し、緩和するためのアプローチを提案した。
しかし、以前の作業の大部分は開発者によるテストのみを考慮したものだった。
テスト生成ツールが生成するフレキなテストの頻度と性質はほとんど不明である。
このようなツールが不安定なテストを生成するのか、開発者によるテストとどのように違うのかを問う。
さらに, フレキなテスト生成を抑制する機構の評価を行った。
JavaまたはPythonで書かれた6つの356プロジェクトをサンプリングします。
プロジェクト毎にEvoSuite(Java)とPynguin(Python)を使ってテストを生成し、200回のテストを実行し、一貫性のない結果を探します。
この結果から, フレキネスは開発者の手書きテストと同様, 生成テストでも一般的であることが判明した。
それでも、EvoSuiteで実装された既存のフレキネス抑制機構は、この問題を軽減するのに有効である(71.7%のフレキネス試験)。
開発者によるフレキテストと比較すると、生成されたフレキテストの原因は異なる。
非決定論的行動はネットワークや並行性ではなく、ランダム性によって引き起こされることが多い。
フレキネス抑制法を用いて、残りのフレキネス試験は、実行時最適化やEvoSuite内部のリソースしきい値に起因する、これまで報告されたあらゆるフレキネスと大きく異なる。
これらの洞察は、関連するデータセットとともに、メンテナがテスト生成ツールの改善を支援し、これらのツールを使用する開発者にレコメンデーションを与え、テストフレキネスやテスト生成に関する将来の研究の基盤となる。
関連論文リスト
- TestGenEval: A Real World Unit Test Generation and Test Completion Benchmark [24.14654309612826]
TestGenEvalは、1,210のコードから68,647のテストと、11の保守されたPythonリポジトリにまたがるテストファイルペアで構成されている。
初期テストのオーサリング、テストスイートの補完、コードカバレッジの改善をカバーしている。
パラメータは7Bから405Bまで様々である。
論文 参考訳(メタデータ) (2024-10-01T14:47:05Z) - Do Test and Environmental Complexity Increase Flakiness? An Empirical Study of SAP HANA [47.29324864511411]
不安定なテストはコードの変更なしにランダムに失敗する。
テストの特徴と,テストのフレキネスに影響を与える可能性のあるテスト環境について検討する。
論文 参考訳(メタデータ) (2024-09-16T07:52:09Z) - GPT-HateCheck: Can LLMs Write Better Functional Tests for Hate Speech Detection? [50.53312866647302]
HateCheckは、合成データに対してきめ細かいモデル機能をテストするスイートである。
GPT-HateCheckは,スクラッチからより多彩で現実的な機能テストを生成するフレームワークである。
クラウドソースのアノテーションは、生成されたテストケースが高品質であることを示しています。
論文 参考訳(メタデータ) (2024-02-23T10:02:01Z) - Observation-based unit test generation at Meta [52.4716552057909]
TestGenは、アプリケーション実行中に観察された複雑なオブジェクトのシリアライズされた観察から作られたユニットテストを自動的に生成する。
TestGenは518のテストを本番環境に投入し、継続的統合で9,617,349回実行され、5,702の障害が見つかった。
評価の結果,信頼性の高い4,361のエンドツーエンドテストから,少なくとも86%のクラスでテストを生成することができた。
論文 参考訳(メタデータ) (2024-02-09T00:34:39Z) - Taming Timeout Flakiness: An Empirical Study of SAP HANA [47.29324864511411]
不安定なテストは回帰テストに悪影響を及ぼします。
テストタイムアウトは、このような不安定なテストの失敗に寄与する要因のひとつです。
テストのフレキネス率は、繰り返しテストの実行回数によって49%から70%の範囲である。
論文 参考訳(メタデータ) (2024-02-07T20:01:41Z) - 230,439 Test Failures Later: An Empirical Evaluation of Flaky Failure
Classifiers [9.45325012281881]
不安定なテストは、コードの変更がなくても、決定論的にパスまたはフェールできるテストである。
欠陥が原因でテストが失敗したのか、それともバグを検知したのか、どうやって簡単に判断できるのか?
論文 参考訳(メタデータ) (2024-01-28T22:36:30Z) - TestSpark: IntelliJ IDEA's Ultimate Test Generation Companion [15.13443954421825]
本稿では,IntelliJ IDEA用のプラグインであるTestSparkを紹介する。
TestSparkは、生成された各テストを容易に修正して実行し、それらをプロジェクトワークフローに統合することを可能にする。
論文 参考訳(メタデータ) (2024-01-12T13:53:57Z) - The Effects of Computational Resources on Flaky Tests [9.694460778355925]
不安定なテストは、不確定にパスし、変更のないコードで失敗するテストである。
リソースに影響されたFraky Testsは、テストの実行時に利用可能なリソースを調整することで、かなりの数のFraky-test障害を回避することができることを示している。
論文 参考訳(メタデータ) (2023-10-18T17:42:58Z) - Towards Automatic Generation of Amplified Regression Test Oracles [44.45138073080198]
回帰テストオラクルを増幅するためのテストオラクル導出手法を提案する。
このアプローチはテスト実行中にオブジェクトの状態を監視し、以前のバージョンと比較して、SUTの意図した振る舞いに関連する変更を検出する。
論文 参考訳(メタデータ) (2023-07-28T12:38:44Z) - FlaPy: Mining Flaky Python Tests at Scale [14.609208863749831]
FlaPyは、研究者がテストスイートを再実行することによって、与えられた、あるいは自動的にサンプルされたPythonプロジェクトの集合で、不安定なテストをマイニングするためのフレームワークである。
FlaPyはコンテナ化と新しい実行環境を使用してテスト実行を分離し、実際のCI条件をシミュレートする。
FlaPyはSLURMを使ってテスト実行の並列化をサポートしており、数千のプロジェクトをスキャンしてテストのフレキネスをスキャンすることができる。
論文 参考訳(メタデータ) (2023-05-08T15:48:57Z) - BiasTestGPT: Using ChatGPT for Social Bias Testing of Language Models [73.29106813131818]
テスト文は限られた手動テンプレートから生成されるか、高価なクラウドソーシングを必要とするため、現時点ではバイアステストは煩雑である。
ソーシャルグループと属性の任意のユーザ指定の組み合わせを考慮し、テスト文の制御可能な生成にChatGPTを使うことを提案する。
本稿では,HuggingFace上にホストされているオープンソースの総合的バイアステストフレームワーク(BiasTestGPT)について紹介する。
論文 参考訳(メタデータ) (2023-02-14T22:07:57Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。