Authors:
(1) Philipp Straubinger, University of Passau, Passau, Germany;
(2) Gordon Fraser, University of Passau, Passau, Germany.
Interruptions and context switches resulting from meetings, urgent tasks, emails, and queries from colleagues contribute to productivity losses in developers’ daily routines. This is particularly challenging for tasks like software testing, which are already perceived as less enjoyable, prompting developers to seek distractions. To mitigate this, applying gamification to testing activities can enhance motivation for test writing. One such gamification tool is Gamekins, which integrates challenges, quests, achievements, and leaderboards into the Jenkins CI (continuous integration) platform. However, as Gamekins is typically accessed through a browser, it introduces a context switch. This paper presents an IntelliJ plugin designed to seamlessly integrate Gamekins’ gamification elements into the IDE, aiming to minimize context switches and boost developer motivation for test writing.
CCS CONCEPTS
• Software and its engineering → Software testing and debugging; Integrated and visual development environments.
KEYWORDS
Gamification, IDE, IntelliJ, Software Testing, Continuous Integration
ACM Reference Format:
Philipp Straubinger and Gordon Fraser. 2024. An IDE Plugin for Gamified Continuous Integration. In 2024 First IDE Workshop (IDE ’24), April 20, 2024, Lisbon, Portugal. ACM, New York, NY, USA, 4 pages. https://doi.org/10.1145/ 3643796.3648462
Gamekins [3] is a tool that integrates gamification into the software testing process within the Jenkins continuous integration platform, to encourage developers to improve their testing practices. Addressing the challenge of achieving high software quality and recognizing the common lack of motivation for testing among developers, Gamekins incorporates gamification elements like challenges, quests, leaderboards, and achievements. Developers earn points by completing test-related challenges and quests, engaging in leaderboard competition, and seeking achievements, with the integration into Jenkins aiming to make gamification easily accessible to developers without additional training or resources.
In a recent study [4] we integrated Gamekins into an undergraduate software testing course to motivate students to engage more with testing. This study revealed a positive correlation between students’ testing behavior and the use of Gamekins, resulting in a significant improvement in correct results compared to a nongamified cohort. Additionally, students expressed satisfaction with the tool, confirming its effectiveness as a teaching tool.
However, a notable issue reported by the students in this experiment was the necessity to switch from their Integrated Development Environment (IDE) to a browser with Gamekins open, causing a productivity dip and time loss navigating to Jenkins. Such context switches, which represent a known productivity challenge [2], are a concern not only for students but also for developers, who spend approximately 50% of their work time in the IDE [1].
In other work, we established that gamification of testing is possible directly in the IDE. Our IntelliGame plugin for the IntelliJ Java IDE[1] implements a multi-level achievement system rewarding positive testing behavior [5]. In a controlled experiment with 49 participants IntelliGame demonstrated clear improvements in testing behavior, for example, causing users to write more tests, achieve higher coverage and mutation scores, run tests more frequently, and achieve functionality earlier.
In this paper, we aim to use the experience of gamifying testing directly in the IDE to address the problem of context switches caused by gamification in the CI. We therefore developed a new plugin for the IntelliJ Java IDE that seamlessly integrates the functionality of Gamekins directly into the IDE, offering enhanced features to improve developers’ workflow.
This paper is available on arxiv under CC BY-SA 4.0 DEED license.
[1] https://www.jetbrains.com/idea/