实用指南:5步掌握Defects4J缺陷数据库的高效应用
实用指南5步掌握Defects4J缺陷数据库的高效应用【免费下载链接】defects4jA Database of Real Faults and an Experimental Infrastructure to Enable Controlled Experiments in Software Engineering Research项目地址: https://gitcode.com/gh_mirrors/de/defects4jDefects4J是一个包含真实软件缺陷的数据库和实验基础设施旨在推动软件工程研究。它提供了854个可复现的bug包括10个已弃用bug来自17个开源项目如Apache Commons系列、Jackson和Jsoup等。本文将通过5个简单步骤帮助你快速掌握这个强大工具的使用方法。 步骤1环境准备与安装要开始使用Defects4J首先需要确保系统满足以下要求Java 11Git 1.9Subversion (svn) 1.8Perl 5.0.12cpanmPerl模块管理工具安装过程分为以下几步克隆仓库git clone https://gitcode.com/gh_mirrors/de/defects4j初始化项目cd defects4j cpanm --installdeps . ./init.sh注init.sh会下载项目仓库和外部库可能需要几分钟时间配置环境变量export PATH$PATH:path2defects4j/framework/bin将path2defects4j替换为实际克隆路径验证安装defects4j info -p Lang如果显示Apache Commons Lang项目的信息则安装成功。 步骤2探索项目与缺陷信息Defects4J提供了丰富的命令来查询项目和缺陷信息帮助你了解可用的资源。查看所有项目defects4j pids这将列出所有支持的项目标识符如Chart、Cli、Closure等。获取项目详情defects4j info -p Lang以Lang项目为例将显示该项目的活跃bug数量、bug ID范围等信息。查看特定缺陷详情defects4j info -p Lang -b 1这将展示Lang项目中第1个bug的详细信息包括提交哈希、触发测试等。导出项目元数据你可以使用query命令导出项目元数据到CSV文件defects4j query -p Chart -q report.id,report.url -o chart_bugs.csv这将导出Chart项目所有bug的报告ID和URL。️ 步骤3检出缺陷版本代码使用checkout命令可以获取特定项目的缺陷版本代码defects4j checkout -p 项目ID -v 版本 -w 工作目录例如检出Lang项目第1个bug的缺陷版本defects4j checkout -p Lang -v 1b -w /tmp/lang_1_buggy其中版本号中的b表示缺陷版本buggyf表示修复版本fixed。检出后你可以进入工作目录查看代码cd /tmp/lang_1_buggy 步骤4编译与测试缺陷代码在工作目录中你可以使用Defects4J命令编译代码并运行测试编译代码defects4j compile这将编译源代码和测试代码。运行测试defects4j test默认情况下这将运行所有测试。你也可以指定特定测试类或方法defects4j test -t org.apache.commons.lang.StringUtilsTest::testAbbreviate查看触发测试每个缺陷都有对应的触发测试即能暴露该缺陷的测试用例defects4j export -p tests.trigger这将列出能触发当前检出缺陷的测试方法。 步骤5高级分析功能Defects4J还提供了代码覆盖率分析和突变分析等高级功能帮助深入理解缺陷特性。代码覆盖率分析defects4j coverage这将生成代码覆盖率报告展示测试对代码的覆盖情况。突变分析defects4j mutation突变分析通过修改代码引入人工缺陷来评估测试集的质量帮助你了解测试是否能检测出这些人工缺陷。导出版本特定属性你可以导出各种版本特定的属性如修改的类、相关测试等# 导出修改的类 defects4j export -p classes.modified -o modified_classes.txt # 导出发触发测试 defects4j export -p tests.trigger -o trigger_tests.txt 使用技巧与最佳实践时区设置Defects4J在America/Los_Angeles时区生成和执行测试为确保一致性建议设置环境变量export TZAmerica/Los_Angeles并行执行测试对于大规模分析可以使用GNU parallel工具加速测试执行./jobs_cmd.pl ./test_verify_bugs.sh | parallel -j20 --progress查阅文档项目提供了详细的HTML文档可通过访问framework/doc目录下的脚本生成。查看测试脚本示例framework/test/目录包含了使用Defects4J的示例脚本可作为编写自定义脚本的参考。 资源与进一步学习官方文档项目根目录的README.md提供了完整的使用说明bug挖掘框架framework/bug-mining/目录包含了缺陷挖掘相关的工具和指南测试执行框架framework/bin/目录提供了测试生成和分析的脚本通过以上5个步骤你已经掌握了Defects4J的基本使用方法。这个强大的缺陷数据库可以帮助你进行软件测试、缺陷定位、自动程序修复等多种软件工程研究。无论是学术研究还是工业界应用Defects4J都能为你提供真实、可复现的缺陷数据助力软件质量提升。【免费下载链接】defects4jA Database of Real Faults and an Experimental Infrastructure to Enable Controlled Experiments in Software Engineering Research项目地址: https://gitcode.com/gh_mirrors/de/defects4j创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SteamDB浏览器扩展:重新定义您的Steam体验方式

SteamDB浏览器扩展:重新定义您的Steam体验方式

SteamDB浏览器扩展:重新定义您的Steam体验方式 【免费下载链接】BrowserExtension 💻 SteamDBs extension for Steam websites 项目地址: https://gitcode.com/gh_mirrors/br/BrowserExtension SteamDB浏览器扩展是一款专为Steam平台用户打造的免…

2026/5/17 2:15:44 阅读更多 →
BERT-NER实战指南:3种方式快速部署智能实体识别系统

BERT-NER实战指南:3种方式快速部署智能实体识别系统

BERT-NER实战指南:3种方式快速部署智能实体识别系统 【免费下载链接】BERT-NER Pytorch-Named-Entity-Recognition-with-BERT 项目地址: https://gitcode.com/gh_mirrors/ber/BERT-NER BERT-NER是基于Pytorch实现的命名实体识别系统,能够精准识别…

2026/7/2 22:29:52 阅读更多 →
GeoAI卫星图像智能分析完全手册:从零基础到实战应用

GeoAI卫星图像智能分析完全手册:从零基础到实战应用

GeoAI卫星图像智能分析完全手册:从零基础到实战应用 【免费下载链接】geoai A Python package for using Artificial Intelligence (AI) with geospatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geoai GeoAI是一款强大的Python包,专为…

2026/5/17 8:16:44 阅读更多 →

最新新闻

界面控件DevExpress WinForms v26.1新版亮点 - 皮肤更新、面板功能增强

界面控件DevExpress WinForms v26.1新版亮点 - 皮肤更新、面板功能增强

DevExpress WinForms控件包含了190多个Windows Forms控件和UI库,能帮助开发者提供为Windows Forms平台创建具有强大影响力的软件解决方案所需的组件,最新版本支持.NET 10。 在接下来的系列文章中,我将为大家一一介绍DevExpress WinForms v26…

2026/7/3 11:43:52 阅读更多 →
Kimi-K2.5本地部署全指南:MoE大模型在24GB显存上的硬核落地

Kimi-K2.5本地部署全指南:MoE大模型在24GB显存上的硬核落地

1. 项目概述:当SOTA级大模型真正“落进”你的硬盘里Kimi-K2.5本地部署这件事,我从去年底第一次在Hugging Face上看到unsloth/Kimi-K2.5-GGUF仓库时就盯上了。不是因为标题里写的“24G显存可跑”有多吸睛,而是因为它背后那个被反复验证却极少落…

2026/7/3 11:43:52 阅读更多 →
Sunshine游戏串流完整指南:从零开始搭建你的私人云游戏平台

Sunshine游戏串流完整指南:从零开始搭建你的私人云游戏平台

Sunshine游戏串流完整指南:从零开始搭建你的私人云游戏平台 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款开源免费的自托管游戏串流服务器&#xff0c…

2026/7/3 11:41:52 阅读更多 →
2026年桌面风扇推荐:别被参数迷惑,选对适合自己使用习惯的才明智

2026年桌面风扇推荐:别被参数迷惑,选对适合自己使用习惯的才明智

2026年桌面风扇推荐:别被参数迷惑,选对适合自己使用习惯的才明智2026年夏季,桌面风扇市场产品丰富,但不少消费者在“桌面风扇推荐2026”相关搜索中看到各种参数却不知如何对应实际需求。选购的核心不是看哪个指标最高,…

2026/7/3 11:41:52 阅读更多 →
冠宇仪器中标快检项目:盐都区农贸市场试剂采购彰显技术实力

冠宇仪器中标快检项目:盐都区农贸市场试剂采购彰显技术实力

近日,冠宇仪器制造(江苏)有限公司成功中标盐城市盐都区市场监督管理局农贸市场快检室试剂采购项目的消息,在食品安全快检行业引发广泛关注。企业凭借过硬的产品性能、全流程闭环服务体系和高性价比的落地方案脱颖而出,…

2026/7/3 11:39:50 阅读更多 →
在GEO优化中,是否应当优先考虑内容的视觉呈现?

在GEO优化中,是否应当优先考虑内容的视觉呈现?

随着生成式AI日益成为信息获取的重要渠道,GEO(生成式引擎优化)正悄然重塑品牌的数字曝光逻辑。在这场以内容质量为核心的角逐中,一个核心矛盾浮出水面:精心雕琢的文字,是否真的需要依赖夺目的视觉元素来“开…

2026/7/3 11:37:50 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻