Author/Authors :
Mousavi Esfahani ، Shahrzad Sadat Faculty of Computer Science and Engineering - Shahid Beheshti University , Vahidi-Asl ، Mojtaba Faculty of Computer Science and Engineering - Shahid Beheshti University , Khalilian ، Alireza Department of Computer Engineering - Islamic Azad University, Parand Branch , Alikhani ، Parastoo Faculty of Education and Psychology - Shahid Beheshti University , Abhari ، Bardia Faculty of Computer Science and Engineering - Shahid Beheshti University
Abstract :
The released software systems still involve some faults, for which debugging becomes necessary. On the one hand, manual software debugging remains an arduous, time-consuming, and expensive task. On the other hand, effective software debugging is organized around motivated and patient developers. In this paper, a novel approach, namely Gamifault, is provided to make debugging more attractive and enjoyable. Particularly, the objective of Gamifault is to make the developer more curious to proceed debugging, that is fault localization and program repair, enthusiastically. To achieve this objective, the concepts and potentials of gamification are adapted to the typical tasks of software debugging. In particular, Gamifault makes use of an existing fault localization technique to determine the likelihood to each statement may be faulty. Based on the likelihood, the developer then attempts to find the exact fault location and fix the fault. Next, Gamifault reacts to the developer with a gamified success rate. That is, it shows the number of test cases that have been passed on the modified program. This process is repeated until the program passes on every given test case. To evaluate Gamifault, a prototype web-based tool was implemented in Java that targets faulty software programs. Then, 16 developers were asked to employ gamified and non-gamified versions of the tool in their debugging activities on 46 subject programs taken from the Code4Bench suite of programs. Developers could successfully debug 7 and 95 faulty programs using the non-gamified and gamified tools, respectively. In addition, the gamified tool helped developers debug the faulty program in less than two minutes on average. These results suggest that Gamifault offers advantages over existing debugging systems.
Keywords :
Software fault , Debugging , Fault localization , Gamification