@conference {MTMT:35073962,
	title = {Context Switch Sensitive Fault Localization},
	booktitle = {Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering},
	year = {2024},
	pages = {110-119},
	abstract = {Spectrum-Based Fault Localization (SBFL) is a popular technique to assist developers in pinpointing faulty elements within their code based on test outcomes and code coverage. In this paper, we examine the impact of context switching, i.e., when developers must frequently shift their attention between different code parts (such as methods and classes) while going down the SBFL ranked list to find the faulty statement. The basis of our study is the observation that it requires less effort to investigate statements that are next to each other rather than those in different methods and classes. In particular, we analyse the number of visited methods and classes, as well as the frequency of switches between them during the fault localization process. We found that, in programs from the Defects4J benchmark, developers need to explore 40 methods and 12 classes on average, before finding the faulty statement, leading to 53 method- and 40 class switches, respectively. We introduce a novel context-aware metric that better approximates the total cost of finding a bug than traditional metrics that solely count the number of statements. Our metric considers both the statement number and the added cost of context switches. We also propose a new strategy for reducing the cost by optimizing the traversal of the elements in the ranked list based on the new context-aware metric. The algorithm not only lowers the number of statements that need to be investigated by 12\% but also significantly reduces the number of class and method switches by 52\%.},
	doi = {10.1145/3661167.3661181},
	url = {https://m2.mtmt.hu/api/publication/35073962},
	author = {Horv{\'a}th, Ferenc and Aszmann, Roland and Soha, P{\'e}ter Attila and Besz{\'e}des, {\'A}rp{\'a}d and Tibor Gyim{\'o}thy}
}
@article {MTMT:33041903,
	title = {Using contextual knowledge in interactive fault localization},
	journal = {EMPIRICAL SOFTWARE ENGINEERING},
	volume = {27},
	year = {2022},
	abstract = {Tool support for automated fault localization in program debugging is limited because state-of-the-art algorithms often fail to provide efficient help to the user. They usually offer a ranked list of suspicious code elements, but the fault is not guaranteed to be found among the highest ranks. In Spectrum-Based Fault Localization (SBFL) {\textendash} which uses code coverage information of test cases and their execution outcomes to calculate the ranks {\textendash}, the developer has to investigate several locations before finding the faulty code element. Yet, all the knowledge she a priori has or acquires during this process is not reused by the SBFL tool. There are existing approaches in which the developer interacts with the SBFL algorithm by giving feedback on the elements of the prioritized list. We propose a new approach called iFL which extends interactive approaches by exploiting contextual knowledge of the user about the next item in the ranked list (e. g., a statement), with which larger code entities (e. g., a whole function) can be repositioned in their suspiciousness. We implemented a closely related algorithm proposed by Gong et al. , called Talk . First, we evaluated iFL using simulated users, and compared the results to SBFL and Talk . Next, we introduced two types of imperfections in the simulation: user{\textquoteright}s knowledge and confidence levels. On SIR and Defects4J, results showed notable improvements in fault localization efficiency, even with strong user imperfections. We then empirically evaluated the effectiveness of the approach with real users in two sets of experiments: a quantitative evaluation of the successfulness of using iFL , and a qualitative evaluation of practical uses of the approach with experienced developers in think-aloud sessions.},
	issn = {1382-3256},
	doi = {10.1007/s10664-022-10190-x},
	url = {https://m2.mtmt.hu/api/publication/33041903},
	author = {Horv{\'a}th, Ferenc and Besz{\'e}des, {\'A}rp{\'a}d and Vancsics, B{\'e}la and Balogh, Gerg{\H o} and Vid{\'a}cs, L{\'a}szl{\'o} and Tibor Gyim{\'o}thy}
}
@article {GVS20,
	title = {BugsJS: a Benchmark and Taxonomy of JavaScript Bugs},
	journal = {Software Testing, Verification and Reliability},
	volume = {n/a},
	number = {n/a},
	year = {2020},
	note = {e1751 stvr.1751},
	pages = {e1751},
	doi = {10.1002/stvr.1751},
	url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/stvr.1751},
	author = {Gyimesi, P{\'e}ter and Vancsics, B{\'e}la and Stocco, Andrea and Mazinanian, Davood and Besz{\'e}des, {\'A}rp{\'a}d and Ferenc, Rudolf and Mesbah, Ali}
}
@conference {MTMT:31665090,
	title = {Leveraging Contextual Information from Function Call Chains to Improve Fault Localization},
	booktitle = {2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)},
	year = {2020},
	pages = {468-479},
	doi = {10.1109/SANER48275.2020.9054820},
	url = {https://m2.mtmt.hu/api/publication/31665090},
	author = {Besz{\'e}des, {\'A}rp{\'a}d and Horv{\'a}th, Ferenc and Di Penta, Massimiliano and Tibor Gyim{\'o}thy}
}
@conference {VSB20,
	title = {Relationship Between the Effectiveness of Spectrum-Based Fault Localization and Bug-fix Types in JavaScript Programs},
	booktitle = {Proceedings of the 27th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER{\textquoteright}20)},
	year = {2020},
	month = {feb},
	pages = {308-319},
	author = {Vancsics, B{\'e}la and Szatm{\'a}ri, Attila and Besz{\'e}des, {\'A}rp{\'a}d}
}
@conference {VGB20,
	title = {Simulating the Effect of Test Flakiness on Fault Localization Effectiveness},
	booktitle = {Proceedings of the 3rd International Workshop on Validation, Analysis and Evolution of Software Tests (VST{\textquoteright}20)},
	year = {2020},
	pages = {28-35},
	author = {Vancsics, B{\'e}la and Gergely, Tam{\'a}s and Besz{\'e}des, {\'A}rp{\'a}d}
}
@article {MTMT:3289296,
	title = {Code Coverage Differences of Java Bytecode and Source Code Instrumentation Tools},
	journal = {SOFTWARE QUALITY JOURNAL},
	volume = {27},
	year = {2019},
	pages = {79-123},
	issn = {0963-9314},
	doi = {10.1007/s11219-017-9389-z},
	url = {https://m2.mtmt.hu/api/publication/3289296},
	author = {Horv{\'a}th, Ferenc and Gergely, Tam{\'a}s and Besz{\'e}des, {\'A}rp{\'a}d and Tengeri, D{\'a}vid and Balogh, Gerg{\H o} and Tibor Gyim{\'o}thy}
}
@article {MTMT:30379629,
	title = {Differences between a static and a dynamic test-to-code traceability recovery method},
	journal = {SOFTWARE QUALITY JOURNAL},
	volume = {27},
	year = {2019},
	pages = {797-822},
	issn = {0963-9314},
	doi = {10.1007/s11219-018-9430-x},
	url = {https://m2.mtmt.hu/api/publication/30379629},
	author = {Gergely, Tam{\'a}s and Balogh, Gerg{\H o} and Horv{\'a}th, Ferenc and Vancsics, B{\'e}la and Besz{\'e}des, {\'A}rp{\'a}d and Tibor Gyim{\'o}thy}
}
