Shahrzad Sadat Mousavi Esfahani; Mojtaba Vahidi-Asl; Alireza Khalilian; Parastoo Alikhani; Bardia Abhari
The released software systems still involve some fault, for which debugging becomes necessary. On the one hand, manual software debugging remains an arduous, time-consuming and expensive ...
The released software systems still involve some fault, 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 likelihoods to which each statement may be faulty. Based on the likelihoods, 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. In order 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 Code4Bench suite of programs.