論文の概要: Advancing Bug Detection in Fastjson2 with Large Language Models Driven Unit Test Generation
- arxiv url: http://arxiv.org/abs/2410.09414v1
- Date: Sat, 12 Oct 2024 07:46:05 GMT
- ステータス: 処理完了
- システム内更新日: 2024-10-30 14:34:09.518947
- Title: Advancing Bug Detection in Fastjson2 with Large Language Models Driven Unit Test Generation
- Title(参考訳): 大規模言語モデルによる単体テスト生成を用いたFastjson2におけるバグ検出の高速化
- Authors: Zhiyuan Zhong, Sinan Wang, Hailong Wang, Shaojin Wen, Hao Guan, Yida Tao, Yepang Liu,
- Abstract要約: ユニットテスト生成技術は、様々なライブラリのバグを特定するために広く採用されている。
産業実践において、図書館内のオラクルのバグを露呈するための体系的なテストは限られている。
テストGenでは、34の実際のバグがfast2で見つかり、そのうち30がすでに修正されており、うち12の非クラッシングバグが修正されています。
- 参考スコア(独自算出の注目度): 8.977049061406325
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Data-serialization libraries are essential tools in software development, responsible for converting between programmable data structures and data persistence formats. Among them, JSON is the most popular choice for exchanging data between different systems and programming languages, while JSON libraries serve as the programming toolkit for this task. Despite their widespread use, bugs in JSON libraries can cause severe issues such as data inconsistencies and security vulnerabilities. Unit test generation techniques are widely adopted to identify bugs in various libraries. However, there is limited systematic testing effort specifically for exposing bugs within JSON libraries in industrial practice. In this paper, we propose JSONTestGen, an approach leveraging large language models (LLMs) to generate unit tests for fastjson2, a popular open source JSON library from Alibaba. Pre-trained on billions of open-source text and code corpora, LLMs have demonstrated remarkable abilities in programming tasks. Based on historical bug-triggering unit tests, we utilize LLMs to generate more diverse test cases by incorporating JSON domain-specific mutation rules. To systematically and efficiently identify potential bugs, we adopt differential testing on the results of the generated unit tests. Our evaluation shows that JSONTestGen outperforms existing test generation tools in unknown defect detection. With JSONTestGen, we found 34 real bugs in fastjson2, 30 of which have already been fixed, including 12 non-crashing bugs. While manual inspection reveals that LLM-generated tests can be erroneous, particularly with self-contradictory assertions, we demonstrate that LLMs have the potential for classifying false-positive test failures. This suggests a promising direction for improved test oracle automation in the future.
- Abstract(参考訳): データシリアライズライブラリはソフトウェア開発において必須のツールであり、プログラマブルなデータ構造とデータ永続化フォーマットの変換に責任がある。
その中でもJSONは、さまざまなシステムとプログラミング言語間でデータを交換する最も一般的な選択肢であり、JSONライブラリは、このタスクのプログラミングツールキットとして機能します。
広く使われているにもかかわらず、JSONライブラリのバグはデータ不整合やセキュリティ脆弱性などの深刻な問題を引き起こす可能性がある。
ユニットテスト生成技術は、様々なライブラリのバグを特定するために広く採用されている。
しかし、業界では、特にJSONライブラリ内のバグを公開するための体系的なテストの取り組みが制限されている。
本稿では,大規模な言語モデル(LLM)を活用して,Alibabaから人気のオープンソースJSONライブラリであるfastjson2のユニットテストを生成するアプローチであるJSONTestGenを提案する。
数十億のオープンソーステキストとコードコーパスに基づいて事前訓練されたLLMは、プログラミングタスクにおいて顕著な能力を示した。
歴史的バグトリガリング単体テストに基づいて、JSONドメイン固有の突然変異ルールを組み込むことで、LSMを使用してより多様なテストケースを生成する。
潜在的なバグを系統的かつ効率的に識別するために、生成した単体テストの結果に差分テストを採用する。
評価の結果,JSONTestGenは未知の欠陥検出において既存のテスト生成ツールよりも優れていることがわかった。
JSONTestGenでは、Fastjson2で34の本当のバグを発見しました。
手動検査では, LLM 生成テストは, 特に自己矛盾性アサーションで誤認する可能性があるが, LLM が偽陽性テスト失敗を分類する可能性を実証する。
これは、将来テストオラクルの自動化を改善するための有望な方向性を示唆している。
関連論文リスト
- ProjectTest: A Project-level LLM Unit Test Generation Benchmark and Impact of Error Fixing Mechanisms [48.43237545197775]
単体テスト生成はLLMの有望かつ重要なユースケースとなっている。
ProjectTestは、Python、Java、JavaScriptをカバーするユニットテスト生成のためのプロジェクトレベルのベンチマークである。
論文 参考訳(メタデータ) (2025-02-10T15:24:30Z) - Learning to Generate Unit Tests for Automated Debugging [52.63217175637201]
ユニットテスト(UT)は、コードの正確性を評価するだけでなく、大きな言語モデル(LLM)へのフィードバックを提供する上でも重要な役割を果たします。
提案するUTGenは,LLMに対して,予測出力とともにエラーを示す単体テスト入力を生成することを教える。
UTGenがUT生成ベースラインを7.59%向上させることを示す。
論文 参考訳(メタデータ) (2025-02-03T18:51:43Z) - LlamaRestTest: Effective REST API Testing with Small Language Models [50.058600784556816]
LlamaRestTestは、2つのカスタムLCMを使って現実的なテストインプットを生成する新しいアプローチである。
LlamaRestTestは、RESTGPTで強化された仕様でさえ、コードカバレッジとエラー検出において最先端のツールを上回っている。
論文 参考訳(メタデータ) (2025-01-15T05:51:20Z) - Improving the Readability of Automatically Generated Tests using Large Language Models [7.7149881834358345]
探索型ジェネレータの有効性とLLM生成試験の可読性を組み合わせることを提案する。
提案手法は,検索ツールが生成するテスト名や変数名の改善に重点を置いている。
論文 参考訳(メタデータ) (2024-12-25T09:08:53Z) - Design choices made by LLM-based test generators prevent them from finding bugs [0.850206009406913]
本稿は,最近のLCMベースのテスト生成ツールであるCodium CoverAgentやCoverUpが,効果的にバグを見つけたり,意図せずに欠陥コードを検証することができるかどうかを,批判的に検証する。
実際の人手によるバグ検出コードを入力として使用すると、これらのツールを評価し、LCM生成テストがバグの検出に失敗する可能性を示し、さらに警告として、生成されたテストスイートのバグを検証することで、その設計が状況を悪化させる可能性があることを示します。
論文 参考訳(メタデータ) (2024-12-18T18:33:26Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - Large Language Models Based JSON Parser Fuzzing for Bug Discovery and Behavioral Analysis [0.0]
この研究プロジェクトは、テストを強化するためにLLM(Large Language Models)を活用することに焦点を当てている。
主な目的は、オープンソースにおける潜在的なバグの発見にLLMを使用してテストケースとミュータントを生成することである。
根底にあるバグを明らかにし、振る舞いの多様性を発見(そして克服)することを目的としています。
論文 参考訳(メタデータ) (2024-10-29T07:23:43Z) - TESTEVAL: Benchmarking Large Language Models for Test Case Generation [15.343859279282848]
大規模言語モデル(LLM)を用いたテストケース生成のための新しいベンチマークであるTESTEVALを提案する。
オンラインプログラミングプラットフォームLeetCodeから210のPythonプログラムを収集し、全体的なカバレッジ、ターゲットライン/ブランチカバレッジ、ターゲットパスカバレッジという3つの異なるタスクを設計します。
特定のプログラム行/ブランチ/パスをカバーするテストケースを生成することは、現在のLLMでは依然として困難である。
論文 参考訳(メタデータ) (2024-06-06T22:07:50Z) - GPT-HateCheck: Can LLMs Write Better Functional Tests for Hate Speech Detection? [50.53312866647302]
HateCheckは、合成データに対してきめ細かいモデル機能をテストするスイートである。
GPT-HateCheckは,スクラッチからより多彩で現実的な機能テストを生成するフレームワークである。
クラウドソースのアノテーションは、生成されたテストケースが高品質であることを示しています。
論文 参考訳(メタデータ) (2024-02-23T10:02:01Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - Large Language Models are Few-shot Testers: Exploring LLM-based General
Bug Reproduction [14.444294152595429]
問題によりオープンソースリポジトリに追加されたテストの数は、対応するプロジェクトテストスイートサイズの約28%であった。
本稿では,Large Language Models (LLMs) を用いたLIBROを提案する。
LIBROの評価は、広く研究されているDefects4Jベンチマークにおいて、全ての研究ケースの33%で障害再現テストケースを生成することができることを示している。
論文 参考訳(メタデータ) (2022-09-23T10:50:47Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。