exLong dataset
收藏github2024-12-03 更新2024-12-27 收录
下载链接:
https://github.com/EngineeringSoftware/exLong
下载链接
链接失效反馈官方服务:
资源简介:
exLong数据集是一个用于生成异常行为测试的数据集,基于大型语言模型CodeLlama进行指令调优,包含导致抛出语句的跟踪、保护抛出语句的条件表达式以及执行类似跟踪的非异常行为测试。
The exLong Dataset is a dataset designed for generating tests of anomalous behaviors. It is instruction-tuned based on the large language model CodeLlama, and contains traces that trigger throw statements, conditional expressions that guard these throw statements, as well as non-anomalous behavior tests that execute similar traces.
创建时间:
2024-12-03
原始信息汇总
exLong 数据集概述
数据集简介
exLong 是一个基于 CodeLlama 进行指令微调的大型语言模型,专注于生成异常行为测试。该模型主要涉及以下内容:
- 跟踪:导致抛出异常的代码路径。
- 条件表达式:保护抛出异常的代码。
- 非异常行为测试:执行类似代码路径的测试。
数据集内容
- 数据集位置:Hugging Face 上的 exLong 数据集。
- 数据集版本:
with-EBT-name:包含异常行为测试名称的版本。no-EBT-name:不包含异常行为测试名称的版本。
数据集使用
- 加载数据集: python from datasets import load_dataset with_name_ds = load_dataset("EngineeringSoftware/exLong-dataset", "with-EBT-name") no_name_ds = load_dataset("EngineeringSoftware/exLong-dataset", "no-EBT-name")
模型信息
- 模型位置:Hugging Face 上的 exLong 模型。
- 模型加载: python from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel, PeftConfig base_model_name = "codellama/CodeLlama-7b-Instruct-hf" base_model = AutoModelForCausalLM.from_pretrained(base_model_name) peft_model_id = "EngineeringSoftware/exLong" config = PeftConfig.from_pretrained(peft_model_id, revision="with-etest-name") model = PeftModel.from_pretrained(base_model, peft_model_id) tokenizer = AutoTokenizer.from_pretrained(base_model_name)
数据集下载
- 原始数据:raw-data.tar.gz
- 测试数据:ne2e-test.tar.gz
- 机器视图数据:machine-view.tar.gz
- 多样性测试数据:netest-diversity.tar.gz
- 处理后的数据集:processed dataset
模型检查点
- exLong-with-name (7B 和 13B):下载链接
- exLong-no-name (7B):下载链接
- exLong-with-name w.o. stack trace (7B):下载链接
- exLong-with-name w.o. stack trace & guard expr (7B):下载链接
- exLong-with-name w.o. stack trace & guard expr & EBT (7B):下载链接
- exLong-with-name w.o. stack trace & guard expr & EBT (13B):下载链接
相关论文
- 标题:exLong: Generating Exceptional Behavior Tests with Large Language Models
- 作者:Jiyang Zhang, Yu Liu, Pengyu Nie, Junyi Jessy Li, Milos Gligoric
- 会议:International Conference on Software Engineering (ICSE 2025)
- 论文链接:arXiv
搜集汇总
数据集介绍

构建方式
exLong数据集的构建基于CodeLlama模型,通过指令微调的方式生成异常行为测试用例。具体而言,该数据集关注了导致抛出异常的代码轨迹、保护抛出异常的条件表达式,以及执行相似轨迹的非异常行为测试。数据集的构建过程包括从开源代码库中收集原始数据,并通过一系列预处理步骤生成用于训练的提示数据。此外,数据集还通过多样化的非异常行为测试来增强模型的鲁棒性。
使用方法
exLong数据集的使用方法主要包括数据加载、模型训练和测试生成。用户可以通过Hugging Face平台加载数据集,并使用提供的代码示例进行模型训练。训练过程中,用户可以选择不同的配置文件和模型版本,以适应不同的实验需求。测试生成阶段,用户可以通过指定提示模板和生成参数,生成针对特定代码的异常行为测试用例。此外,数据集还提供了详细的评估脚本,帮助用户计算BLEU、CodeBLEU等指标,以评估生成测试用例的质量。
背景与挑战
背景概述
exLong数据集由Jiyang Zhang、Yu Liu、Pengyu Nie、Junyi Jessy Li和Milos Gligoric等研究人员于2025年提出,旨在通过大语言模型生成异常行为测试用例。该数据集基于CodeLlama模型进行指令微调,专注于分析导致异常抛出的代码轨迹、保护异常抛出的条件表达式,以及执行类似轨迹的非异常行为测试。exLong的研究背景源于软件工程领域对自动化测试生成的需求,特别是在异常处理方面的挑战。该数据集的研究成果发表于国际软件工程会议(ICSE),为开发人员提供了高效生成异常行为测试的工具,推动了自动化测试技术的发展。
当前挑战
exLong数据集在构建和应用过程中面临多重挑战。首先,异常行为测试的生成需要精确捕捉代码中的异常抛出条件,这对模型的推理能力和代码理解能力提出了极高要求。其次,数据集的构建依赖于大量开源代码库的异常轨迹分析,如何有效提取和处理这些数据,确保其质量和多样性,是构建过程中的一大难题。此外,生成的测试用例需要具备高覆盖率和可执行性,这对模型的生成能力和测试框架的集成提出了挑战。最后,如何评估生成的测试用例的有效性,确保其能够准确捕捉代码中的异常行为,也是该数据集应用中的关键问题。
常用场景
经典使用场景
在软件工程领域,exLong数据集被广泛应用于生成异常行为测试用例。通过结合大语言模型(如CodeLlama),exLong能够自动生成针对Java代码中异常行为的测试方法,特别是在处理抛出异常的场景时表现出色。该数据集的使用场景主要集中在软件开发中的单元测试阶段,帮助开发者快速生成高质量的测试代码,确保代码的健壮性和可靠性。
解决学术问题
exLong数据集解决了软件测试领域中的一个关键问题:如何高效生成针对异常行为的测试用例。传统的手动编写测试用例方法耗时且容易遗漏某些异常场景,而exLong通过自动化生成测试代码,显著提高了测试覆盖率和代码质量。该数据集的研究成果为软件测试自动化提供了新的思路,推动了软件工程领域在测试生成方面的技术进步。
实际应用
在实际应用中,exLong数据集被广泛用于企业级软件开发中的测试自动化流程。开发团队可以利用该数据集生成的测试用例,快速验证代码在异常情况下的行为,减少人工测试的工作量。此外,exLong还可以集成到持续集成(CI)系统中,自动生成并运行测试用例,确保每次代码提交后都能及时发现潜在的问题,提升软件交付的质量和效率。
数据集最近研究
最新研究方向
在软件工程领域,异常行为测试是确保代码鲁棒性和可靠性的关键环节。exLong数据集通过结合大型语言模型(如CodeLlama)的指令微调,专注于生成异常行为测试用例。其最新研究方向集中在如何利用模型推理能力,分析导致异常抛出的代码路径、条件表达式以及非异常行为测试的执行轨迹。这一研究不仅提升了自动化测试的覆盖率,还为开发者在复杂代码库中识别潜在异常提供了有力支持。随着大型语言模型在代码生成领域的广泛应用,exLong数据集的研究成果有望推动软件测试自动化的进一步发展,减少人工干预,提高测试效率。
以上内容由遇见数据集搜集并总结生成



