defects4j部分
defects4j checkout -p Chart -v20b -w ./Chart20
# -p 后面接具体的项目名
# -v 接具体的版本号
# -w 后面表示要将这个项目的错误版本导出的路径
# 这里表示将Chart项目的20b版本导入到当前目录下的Chart20文件夹下
导出具体的项目之后,对项目进行测试
defects4j test -s
(这里提一下参数defects4j test -s 和defects4j test -r是不同的
defects4j test -s:仅运行项目版本的开发人员编写的测试
defects4j test -r:运行项目版本的整个测试套件,其中包括开发人员编写的测试以及Defects4J测试生成脚本生成的任何其他测试。
也就是说,-r选项会运行更多的测试用例以更全面地测试程序的缺陷,而-s选项则只运行开发人员编写的测试用例以测试程序的基本功能
)
测试用例执行完成后会生成这样的两个文件all_tests和failing_tests
那么all_tests中表示的就是所有的测试用例
failing_tests中表示的就是失败的测试用例
GSA_Gen
谓词转换部分
使用下面条命令对.java文件进行谓词转换。
java -cp control-statement-parser-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.parse.TaskExecutor predicates/$project$version/ /home/osboxes/Desktop/$programOut/modified_classes/
# predicates/$project$version/ 这个表示转换之后的文件存储的路径,比如你需要转换的Java名为ShapeUtilities.java 那么在这个文件夹中会生成ShapeUtilities.txt 这里面就是谓词转换后的结果
# /home/osboxes/Desktop/$programOut/modified_classes/ 这个表示你要进行转换的Java文件所在的位置
问题
TestFileModify.java - 用于在每次测试后,插入测试所涉及的变量的记录调用。
ProcessDataProfile.java(使用StructuredDataCollector.java)--用于处理与故障版本相关的数据配置文件,它创建了CausalMap.txt,其中包含一个因果DAG。
output.txt文件是在哪一步命令生成的