-
可以通过以下方式访问活动的Bug 活动bugs.csv . -
已从中删除弃用的Bug 活动bugs.csv ,但其元数据是 保留在项目目录中。 -
弃用的错误可以通过访问 已弃用-bugs.csv ,这也 详细说明不推荐使用错误的时间和原因。
在相应的问题跟踪程序中归档的问题,以及问题跟踪程序标识符 在修复提交消息中提到。 在一次提交中修复。 最小化:手动删除Defects4J维护人员 提交中不相关的更改(例如重构或功能添加)。 通过修改源代码(与配置文件相反, 文档或测试文件)。 存在在修复之前失败并在修复之后通过的触发测试 --测试失败不是随机的,也不是依赖于测试执行顺序的。
Java 1.8语言 Git>=1.9 SVN>=1.8 Perl>=5.0.12
-
克隆缺陷4J: git克隆 https://github.com/rjust/defects4j
-
初始化Defects4J(下载项目存储库和外部库,出于大小目的和避免冗余,git存储库中未包含这些库): 如果你没有 cpanm公司 安装后,使用cpan或cpan包装器安装中列出的perl模块 cpan文件 . cd缺陷4j cpanm—安装程序。 ./init.sh文件
-
将Defects4J的可执行文件添加到PATH: export PATH=$PATH:“path2defects4j”/framework/bin (“path2defects4j”指向您克隆Defects4J的目录;它 看起来像“/user/yourComputerUserName/desktop/defects4j”。)
-
检查安装: defects4j信息-p Lang
-
获取特定项目的信息(通用语言): defects4j信息-p Lang
-
获取特定错误的信息(commons lang,bug 1): defects4j信息-p Lang-b 1
-
签出一个有缺陷的源代码版本(commons lang,bug 1,bug版本): 缺陷4j检出-p Lang-v 1b-w/tmp/Lang_1_buggy
-
切换到工作目录,编译源代码和测试,并运行测试: cd/tmp/lang_1_buggy defects4j编译 缺陷4j试验
-
一些Defects4J命令将项目id作为命令行参数 (可能与其他参数一起)。 示例包括 信息 , 校验 , 和 查询 。请注意 信息 和 查询 导出的报告信息 来自Defects4J元数据,不需要访问 在项目的VCS中。 其他命令需要一个工作目录,或者显式设置 ( -w个 命令行参数)或隐式(从工作 目录)。 示例包括需要访问下文件的任何命令 版本控制,包括源代码和构建文件。 这包括所有 生成或测试代码的命令( 编译 , 测试 , 新闻报道 , 突变 ) 和返回版本特定信息的命令( 出口 ). -
中的脚本 框架/测试/ 是如何使用Defects4J的示例,您可能会发现这些示例很有用 当您使用Defects4J编写自己的脚本时,这是一种灵感。
|
|
|
|
-
将此行添加到用户级git属性文件中: *.java diff=java -
运行 git diff—无index 例如 git diff—无index/tmp/lang_1_buggy/tmp/lag_1_fixed . 在输出中,以“@”开头的每一行都给出了已更改方法的方法名。
-
“Defects4J:现有故障数据库,支持Java程序的受控测试研究” ReneéJust、Darioush Jalali和Michael D.Ernst, ISSTA 2014年 [下载] . -
“变异是软件测试中真实错误的有效替代品吗?” 勒内·贾斯特、达里奥乌什·贾拉利、劳拉·伊诺泽姆采娃、迈克尔·D·恩斯特、里德·霍姆斯和戈登·弗雷泽, 2014年FSE [下载] . -
“使用基于搜索的测试生成来识别Mockito中真实故障的挑战” 格雷戈里·盖伊, 2016年SSBSE [下载] . -
“通过基于搜索的单元测试生成检测Gson库中的实际故障” 格雷戈里·盖伊, 2018年SSBSE [下载] . -
“缺陷4J是基于搜索的软件工程社区的挑战案例” 格雷戈里·盖伊和雷内只是, 2020年SSBSE [下载] .
缺陷4j | |---project_repos:所提供项目的版本控制存储库。 | |---major:主要变异框架。 | |---框架:核心库和可执行文件、测试执行、, |和错误检测框架。 | |---bin:Defects4J的命令行界面。 | |---错误挖掘:错误挖掘框架。 | |---核心:核心框架的模块。 | |---lib:核心框架中使用的库。 | |---util:Defects4J使用的util脚本。 | |---项目:特定于项目的资源文件。 | |---test:测试框架的脚本。
|
|
|
|
---|---|---|---|