論文の概要: How Do Developers Structure Unit Test Cases? An Empirical Study from the "AAA" Perspective
- arxiv url: http://arxiv.org/abs/2407.08138v1
- Date: Thu, 11 Jul 2024 02:33:02 GMT
- ステータス: 処理完了
- システム内更新日: 2024-07-12 19:08:29.568675
- Title: How Do Developers Structure Unit Test Cases? An Empirical Study from the "AAA" Perspective
- Title(参考訳): 開発者が単体テストケースをどのように構成するか : 「AAA」の視点からの実証的研究
- Authors: Chenhao Wei, Lu Xiao, Tingting Yu, Sunny Wong, Abigail Clune,
- Abstract要約: 本研究では,4つのオープンソースプロジェクトからランダムに選択された実生活単体テストケース435について実験的検討を行った。
全体として、テストケースの大多数(71.5%)はAAAの構造に従っている。
AAAの構造から逸脱する3つのアンチパターンと,Aブロック内に存在する可能性のある4つの設計上の欠陥を観察した。
- 参考スコア(独自算出の注目度): 3.4364099144366214
- License: http://creativecommons.org/licenses/by-nc-nd/4.0/
- Abstract: The AAA pattern, i.e. arrange, act, and assert, provides a unified structure for unit test cases, which benefits comprehension and maintenance. However, there is little understanding regarding whether and how common real-life developers structure unit test cases following AAA in practice. In particular, are there recurring anti-patterns that deviate from the AAA structure and merit refactoring? And, if test cases follow the AAA structure, could they contain design flaws in the A blocks? If we propose refactoring to fix the design of test cases following the AAA, how do developers receive the proposals? Do they favor refactoring? If not, what are their considerations? This study presents an empirical study on 435 real-life unit test cases randomly selected from four open-source projects. Overall, the majority (71.5%) of test cases follow the AAA structure. And, we observed three recurring anti-patterns that deviate from the AAA structure, as well as four design flaws that may reside inside of the A blocks. Each issue type has its drawbacks and merits corresponding refactoring resolutions. We sent a total of 18 refactoring proposals as issue tickets for fixing these problems. We received 78% positive feedback favoring the refactoring. From the rejections, we learned that return-on-investment is a key consideration for developers. The findings provide insights for practitioners to structure unit test cases with AAA in mind, and for researchers to develop related techniques for enforcing AAA in test cases.
- Abstract(参考訳): AAAパターン、すなわちアレンジ、アクション、アサーションは、単体テストケースのための統一された構造を提供し、理解と保守の恩恵を受ける。
しかし、現実の開発者がAAAに続くユニットテストケースを実際にどのように構成するかについては、ほとんど理解されていない。
特に、AAAの構造から逸脱し、リファクタリングのメリットを損なうアンチパターンが繰り返されていますか?
そして、もしテストケースがAAA構造に従えば、Aブロックに設計上の欠陥があるだろうか?
AAAに続くテストケースの設計を修正するリファクタリングを提案する場合、開発者はどのように提案を受けますか?
彼らはリファクタリングを好むか?
もしそうでなければ、彼らの考慮事項は何でしょう?
本研究では,4つのオープンソースプロジェクトからランダムに選択された実生活単体テストケース435について実験的検討を行った。
全体として、テストケースの大多数(71.5%)はAAAの構造に従っている。
また,AAA構造から逸脱する3つのアンチパターンと,Aブロック内に存在する可能性のある4つの設計上の欠陥も観察した。
各イシュータイプには、その欠点と、それに対応するリファクタリング解決のメリットがあります。
これらの問題を解決するためのチケットとして、合計18のリファクタリング提案を送りました。
リファクタリングに賛成する肯定的なフィードバックは78%でした。
拒否から私たちは、リターン・オン・投資が開発者にとって重要な考慮事項であることを学びました。
本研究は,AAAを念頭に,実践者が単体テストケースを構築するための知見と,AAAを施行するための関連技術を開発するための知見を提供するものである。
関連論文リスト
- MathGAP: Out-of-Distribution Evaluation on Problems with Arbitrarily Complex Proofs [80.96119560172224]
大規模言語モデル(LLM)は、高い精度で算術語問題を解くことができるが、訓練された言語よりも複雑な問題にどのように一般化するかは、ほとんど分かっていない。
本研究では、任意に複雑な算術証明問題に対する LLM の評価フレームワーク、MathGAP を提案する。
論文 参考訳(メタデータ) (2024-10-17T12:48:14Z) - Context-Enhanced LLM-Based Framework for Automatic Test Refactoring [10.847400457238423]
テストの臭いは、設計プラクティスの貧弱さとドメイン知識の不足から生じます。
我々は,Javaプロジェクトにおける自動テストのための文脈拡張型LLMベースのフレームワークUTRefactorを提案する。
6つのオープンソースのJavaプロジェクトから879のテストに対してUTRefactorを評価し、テストの匂いを2,375から265に減らし、89%の削減を実現した。
論文 参考訳(メタデータ) (2024-09-25T08:42:29Z) - Leveraging Large Language Models for Efficient Failure Analysis in Game Development [47.618236610219554]
本稿では,テストの失敗の原因となるコードの変更を自動的に識別する手法を提案する。
このメソッドは、LLM(Large Language Models)を利用して、エラーメッセージと対応するコード変更を関連付ける。
当社のアプローチは新たに作成したデータセットで71%の精度に達しています。
論文 参考訳(メタデータ) (2024-06-11T09:21:50Z) - GPT-HateCheck: Can LLMs Write Better Functional Tests for Hate Speech Detection? [50.53312866647302]
HateCheckは、合成データに対してきめ細かいモデル機能をテストするスイートである。
GPT-HateCheckは,スクラッチからより多彩で現実的な機能テストを生成するフレームワークである。
クラウドソースのアノテーションは、生成されたテストケースが高品質であることを示しています。
論文 参考訳(メタデータ) (2024-02-23T10:02:01Z) - Automated Test Case Repair Using Language Models [0.5708902722746041]
欠陥のないテストケースは、テストスイートの品質を低下させ、ソフトウェア開発プロセスを破壊します。
テストケースの自動修復に事前訓練されたコード言語モデルを活用する新しいアプローチであるTaRGetを提案する。
TaRGetは、テスト修復を言語翻訳タスクとして扱い、言語モデルを微調整するために2段階のプロセスを使用する。
論文 参考訳(メタデータ) (2024-01-12T18:56:57Z) - Generative Judge for Evaluating Alignment [84.09815387884753]
本稿では,これらの課題に対処するために,13Bパラメータを持つ生成判断器Auto-Jを提案する。
我々のモデルは,大規模な実環境シナリオ下でのユーザクエリとLLM生成応答に基づいて訓練されている。
実験的に、Auto-Jはオープンソースモデルとクローズドソースモデルの両方を含む、強力なライバルのシリーズを上回っている。
論文 参考訳(メタデータ) (2023-10-09T07:27:15Z) - SCREWS: A Modular Framework for Reasoning with Revisions [58.698199183147935]
我々は、リビジョンを伴う推論のためのモジュラーフレームワークであるSCREWSを紹介する。
我々は、SCREWSが、共通のフレームワークの下で、いくつかの以前のアプローチを統合することを示す。
我々は,多種多様な推論タスクに基づいて,最先端のLCMを用いてフレームワークの評価を行った。
論文 参考訳(メタデータ) (2023-09-20T15:59:54Z) - RefSearch: A Search Engine for Refactoring [1.5519338281670214]
RefSearchを使えば、ユーザはフレンドリーなクエリ言語を使ってケースを検索できる。
システムは2つの検出器を使ってインスタンスを収集し、ケースのクエリと閲覧のためのWebインターフェースを提供する。
論文 参考訳(メタデータ) (2023-08-28T03:04:47Z) - CAR: Conceptualization-Augmented Reasoner for Zero-Shot Commonsense
Question Answering [56.592385613002584]
ゼロショットコモンセンス質問応答の課題に対処するために,概念化強化推論器(CAR)を提案する。
CARは、CommonSenseの知識を多くの高レベルなインスタンスに抽象化し、CommonSenseの知識ベースの範囲を拡大する。
CARは、既存のメソッドよりも、ゼロショットのコモンセンスシナリオに関する質問に答えることにより、より堅牢に一般化する。
論文 参考訳(メタデータ) (2023-05-24T08:21:31Z) - Automatic Evaluation of Attribution by Large Language Models [24.443271739599194]
大規模言語モデル(LLM)による属性の自動評価について検討する。
まず、異なる種類の属性エラーを定義し、次に自動評価のための2つのアプローチを検討する。
生成検索エンジンNew Bingから12ドメインをカバーする一連のテスト例を手作業でキュレートする。
論文 参考訳(メタデータ) (2023-05-10T16:58:33Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。