Forfattere:
(1) Philipp Straubinger, University of Passau, Tyskland;
(2) Gordon Fraser, University of Passau, Tyskland.
2.2 Gamificering af softwaretest
3 Gamifying Continuous Integration og 3.1 udfordringer i undervisning i softwaretest
3.2 Gamification-elementer af Gamekins
3.3 Gamified Elements og Test Curriculum
4 Eksperimentopsætning og 4.1 Softwaretestkursus
4.2 Integration af Gamekins og 4.3 Deltagere
5.1 RQ1: Hvordan brugte eleverne Gamekins under kurset?
5.2 RQ2: Hvilken testadfærd udviste eleverne?
5.3 RQ3: Hvordan opfattede eleverne integrationen af Gamekins i deres projekter?
7 Konklusioner, anerkendelser og referencer
Test spiller en afgørende rolle i softwareudvikling, og det er vigtigt for softwareingeniørstuderende at modtage ordentlig testuddannelse. Det kan dog være en udfordring at motivere elever til at skrive test og bruge automatiseret test under softwareudvikling. For at løse dette problem og øge elevernes engagement i test, når de skriver kode, foreslår vi at tilskynde eleverne til at teste mere ved at gamify kontinuerlig integration. Til dette bruger vi Gamekins, et værktøj, der er problemfrit integreret i Jenkins kontinuerlige integrationsplatform og bruger spilelementer baseret på commits til kildekodelageret: Udviklere kan optjene point ved at gennemføre testudfordringer og quests genereret af Gamekins, konkurrere med andre udviklere eller hold på en rangtavle og modtage præstationer for deres testrelaterede præstationer. I dette papir præsenterer vi vores integration af Gamekins i et kursus på bachelorniveau om softwaretest. Vi observerer en sammenhæng mellem, hvordan elever tester deres kode og deres brug af Gamekins, samt en væsentlig forbedring i nøjagtigheden af deres resultater sammenlignet med en tidligere iteration af kurset uden gamification. Som en yderligere indikator for, hvordan denne tilgang forbedrer testadfærd, rapporterede eleverne om glæde ved at skrive test med Gamekins.
CCS KONCEPT
• Software og dets konstruktion → Softwaretest og fejlretning; • Sociale og faglige emner → Softwareingeniøruddannelse
SØGEORD
Softwaretest, Gamification, Kontinuerlig Integration, Uddannelse
ACM-referenceformat:
Philipp Straubinger og Gordon Fraser. 2024. Gamifying af et softwaretestkursus med kontinuerlig integration. I den 46. Internationale Konference om Software Engineering: Software Engineering Education and Training (ICSESEET '24), 14.-20. april 2024, Lissabon, Portugal. ACM, New York, NY, USA, 12 sider. https://doi.org/10.1145/3639474.3640054
Softwaretest er et veletableret koncept og er flittigt brugt i industrien [13]. Men på trods af tilgængeligheden af forskellige værktøjer, der letter testprocessen, såsom testsupport i integrerede udviklingsmiljøer (IDE) [26] og automatiseret testeksekvering i kontinuerlig integration (CI) platforme [8], bliver test ofte overset i praksis. Spekulerede årsager til dette inkluderer udvikleres manglende motivation til at deltage i testaktiviteter og mangel på uddannelse i softwaretest [14, 30, 41, 49, 50]. Selvom den ofte utilstrækkelige behandling af test på de videregående uddannelser [41] for nylig er blevet imødegået med en voksende erkendelse af vigtigheden af test [9, 29, 35], hæmmes dette ikke desto mindre af, at elever ligesom udviklere har en tendens til at opfatte test som kedelige og kedelige. kedeligt [32]. Som følge heraf lider industrien betydelige tab på grund af utilstrækkelig softwarekvalitet og utilstrækkelig test [31].
Gamification-teknikker giver mulighed for at motivere eleverne til at teste på trods af deres opfattelse af, at det er kedeligt eller kedeligt. Gamification involverer at inkorporere elementer, der almindeligvis findes i spil, såsom leaderboards og præstationer, i ikke-spilkontekster [15]. Det er blevet påvist, at denne tilgang hjælper med at engagere studerende i softwareingeniøruddannelse [24], for eksempel ved at gamify forelæsninger eller værktøjer til at undervise i softwaretest [7, 12, 16, 22, 36]. Men for at eleverne kan internalisere test og etablere det som en integreret del af deres udviklingstilgang, argumenterer vi for, at problemfri integration af gamification af test i softwareudviklingsprocessen er nødvendig.
For at opnå dette, integrerer vi gamification i kontinuerlig integration (CI) systemer, der bruges af studerende. Specifikt bruger vi Gamekins [47], et plugin designet til den meget brugte CI-platform Jenkins[1], som problemfrit integrerer gamification i softwareudviklingens workflow. Ved at analysere kildekode og testresultater identificerer Gamekins områder, hvor test kan forbedres baseret på kodedækning [53] eller mutationsanalyse [28] og tilskynder derefter til forbedring ved hjælp af gamification-koncepter såsom udfordringer og quests, belønning af god test med point, præstationer, og ranglister på ranglisten. Vi evaluerede fordelene ved at integrere Gamekins i et bachelor-softwaretestkursus og undersøgte dets indvirkning på kursets læringsmål og elevernes adfærd. I detaljer er bidragene fra dette papir som følger:
• Vi foreslår brugen af gamification som et middel til at stimulere og belønne testaktiviteter i CI.
• Vi introducerer Gamekins som et værktøj, der skal bruges i et softwaretestkursus på bachelorniveau.
• Vi evaluerer empirisk effekterne af at integrere Gamekins i softwaretestkurset, sammenligner med en tidligere kohorte uden gamification og undersøger eleverne.
Undersøgelsens resultater viser en sammenhæng mellem elevernes testadfærd og brugen af Gamekins, samt en væsentlig forbedring af korrekte resultater i forhold til den tidligere udgave af kurset, hvor der ikke blev brugt gamification på de samme opgaver. Selvom ikke alle aspekter af Gamekins var universelt elsket af studerende, nød de generelt brugen af det gennem hele kurset, hvilket bekræfter, at Gamekins er et levedygtigt undervisningsværktøj.
Dette papir er tilgængeligt på arxiv under CC BY-SA 4.0 DEED-licens.
[1] https://www.jenkins.io/