Locating Faults not Mentioned in Bug Reports
收藏资源简介:
Project Summary This project studies bug localization when bug reports do not explicitly mention buggy file names. We propose BisL, an Issue-Fix-Graph-based approach. Instead of directly matching bug reports with source files, BisL compares a target bug report with historical fixed issue reports, ranks similar issues, and derives suspicious files through issue-file links. We also provide an LLM-based evaluation package for reproducibility. Subjects Project Git Repository ARIES https://github.com/apache/aries.git CALCITE https://github.com/apache/calcite.git CASSANDRA https://github.com/apache/cassandra.git FLINK https://github.com/apache/flink.git GEODE https://github.com/apache/geode.git HBASE https://github.com/apache/hbase.git HIVE https://github.com/apache/hive.git NUTCH https://github.com/apache/nutch.git Folder: Dataset/ Dataset/ stores the bug-report datasets (XML) for 8 Apache projects. For each project: Fixed Bug/: fixed issue reports. Selected Bug/: selected reports that do not mention buggy file names. versions.txt: selected versions and release mapping. Each XML report includes fields such as opendate, fixdate, summary, description, fixedVersion, and fixedFiles. Folder: Bisl/ Bisl/ contains the Java implementation of our approach and preprocessing/evaluation utilities. Bisl/src/bug_loc_v0/ Approach.java: entry for one version-selection strategy. Approach_all.java: entry for another version-selection strategy. CAL_result.java: generates final recommended buggy files from intermediate ranked issues. issue_report.java, title_similar.java, word2vec_class.java: core data structures and similarity components. Bisl/src/tool/ general_csv_xml.java: convert crawled CSV bug data to XML format. DeleteXml.java: filter reports that mention faulty code names. import_graphDatabase.java: import data into Neo4j. link_bugreport_java.java: link bug reports to faulty files. CAL_mrr_map.java, CAL_MRR_MAP_ALL.java: MAP/MRR computation scripts. How to Use Bisl/ Prepare XML data (or directly use Dataset/). Set Java runtime and Neo4j connection parameters in source code. Optionally run tools under Bisl/src/tool/ for conversion/filtering/import. Run Approach.java / Approach_all.java to produce intermediate ranked issue lists. Run CAL_result.java to generate final file recommendations. Environment note: Java 1.7 and Neo4j > 5.13.0 are required (as described in README). Folder: llm_experiment/ llm_experiment/ contains scripts, source code, and released outputs for LLM baselines with two prompt modes: full_report: Bug ID + title + description. title_only: Bug ID + title. llm_experiment Structure llm_experiment/ ├── README.md ├── requirements.txt ├── configs/ │ └── default.yaml ├── scripts/ │ ├── run_project_round_robin.py │ └── run_all_8projects.sh ├── src/ │ ├── data/ │ ├── retrieval/ │ ├── llm/ │ ├── pipeline/ │ └── utils/ ├── results/ │ ├── Aries/ │ ├── Calcite/ │ ├── Cassandra/ │ ├── Flink/ │ ├── Geode/ │ ├── Hbase/ │ ├── Hive/ │ └── Nutch/ ├── results_summary_llm.csv └── results_summary_llm.json results/ Pattern results/<Project>/ ├── BUG_<PROJECT-ID>/ │ ├── full_report/ │ │ ├── prompt.txt │ │ ├── raw_response.txt │ │ ├── parsed_ranking.json │ │ ├── metrics.json │ │ └── result.json │ └── title_only/ │ ├── prompt.txt │ ├── raw_response.txt │ ├── parsed_ranking.json │ ├── metrics.json │ └── result.json └── round_robin_runs/ ├── full_report_results.json ├── full_report_summary.json ├── title_only_results.json ├── title_only_summary.json ├── overall_summary.json └── status.json How to Use llm_experiment/ Environment setup: cd llm_experiment python -m venv .venv source .venv/bin/activate pip install -r requirements.txt export OPENAI_API_KEY="<your_api_key>" Run one project (example): python scripts/run_project_round_robin.py \ --data_root ../Dataset \ --project Aries \ --bug_source selected \ --modes full_report title_only \ --sampling random \ --sample_seed 20260324 \ --require_description \ --max_bugs 50 \ --top_k_output 20 \ --model gpt-5-mini \ --llm_timeout_sec 120 \ --output_dir outputs_selected_8proj Run all projects: bash scripts/run_all_8projects.sh ../Dataset gpt-5-mini outputs_selected_8proj Folder: issue report example/ This folder contains sample images of issue reports used for illustration in the documentation. Folder: README_md_files/ This folder stores images referenced by the original README (e.g., path/configuration screenshots). Notice This release is designed for artifact inspection and reproducibility support. Some Java source files use local absolute paths; users should replace them with their local paths before execution.



