著者:
(1) フィリップ・シュトラウビンガー、パッサウ大学、ドイツ。
(2)ゴードン・フレイザー、パッサウ大学(ドイツ)
3 継続的インテグレーションのゲーム化と 3.1 ソフトウェアテストの指導における課題
5.1 RQ1: 学生はコース中に Gamekins をどのように使用しましたか?
5.3 RQ3: 学生は、Gamekins をプロジェクトに統合することをどのように認識しましたか?
テストはソフトウェア開発において重要な役割を果たしており、ソフトウェア エンジニアリングの学生が適切なテスト教育を受けることは不可欠です。しかし、ソフトウェア開発中に学生にテストの作成と自動テストの使用を動機付けることは困難な場合があります。この問題を解決し、コードの作成時にテストへの学生の関与を高めるために、継続的インテグレーションをゲーム化することで、学生がより多くのテストを行うように動機付けることを提案します。これには、Jenkins 継続的インテグレーション プラットフォームにシームレスに統合され、ソース コード リポジトリへのコミットに基づいてゲーム要素を使用するツールである Gamekins を使用します。開発者は、Gamekins によって生成されたテスト チャレンジとクエストを完了することでポイントを獲得し、リーダーボードで他の開発者やチームと競争し、テスト関連の成果に対してアチーブメントを受け取ることができます。この論文では、Gamekins をソフトウェア テストに関する学部レベルのコースに統合した方法を紹介します。学生によるコードのテスト方法と Gamekins の使用には相関関係があり、ゲーミフィケーションのないコースの以前の反復と比較して結果の精度が大幅に向上していることがわかりました。このアプローチがテスト行動をどのように改善するかを示すさらなる指標として、学生たちは Gamekins でテストを書くのが楽しいと報告しました。
CCSコンセプト
• ソフトウェアとそのエンジニアリング → ソフトウェアのテストとデバッグ。 • 社会的および専門的なトピック → ソフトウェアエンジニアリング教育
キーワード
ソフトウェアテスト、ゲーミフィケーション、継続的インテグレーション、教育
ACMリファレンスフォーマット:
Philipp Straubinger と Gordon Fraser。2024。継続的インテグレーションによるソフトウェアテストコースのゲーム化。第 46 回国際ソフトウェア工学会議: ソフトウェア工学教育およびトレーニング (ICSESEET '24)、2024 年 4 月 14 ~ 20 日、ポルトガル、リスボン。ACM、ニューヨーク、ニューヨーク、米国、12 ページ。https://doi.org/10.1145/3639474.3640054
ソフトウェアテストは確立された概念であり、業界で広く使用されています [13]。しかし、統合開発環境(IDE)でのテストサポート [26] や継続的インテグレーション(CI)プラットフォームでの自動テスト実行 [8] など、テストプロセスを容易にするさまざまなツールが利用可能であるにもかかわらず、テストは実際には見過ごされがちです。この理由として推測されているのは、開発者がテスト活動に従事する意欲がないことと、ソフトウェアテストに関する教育が不足していることです [14、30、41、49、50]。高等教育におけるテストの扱いが不十分なことが多い [41] は、最近、テストの重要性の認識が高まったことで改善されましたが [9、29、35]、それでも、開発者と同様に学習者もテストを退屈でつまらないものと認識する傾向があるため、妨げられています [32]。その結果、業界はソフトウェアの品質が不十分でテストが不十分なために大きな損失を被っています [31]。
ゲーミフィケーションの手法は、学生がテストを退屈または面倒だと感じているにもかかわらず、テストを行う動機を与える機会を提供します。ゲーミフィケーションでは、リーダーボードや実績など、ゲームでよく見られる要素をゲーム以外のコンテキストに組み込むことが含まれます [15]。このアプローチは、講義やソフトウェアテストを教えるツールをゲーミフィケーションするなど、学生をソフトウェアエンジニアリング教育に参加させることが実証されています [24]。しかし、学生がテストを内面化し、開発アプローチの不可欠な部分として確立するためには、テストのゲーミフィケーションをソフトウェア開発プロセスにシームレスに統合する必要があると私たちは主張します。
これを実現するために、我々は学生が使用する継続的インテグレーション(CI)システムにゲーミフィケーションを統合する。具体的には、広く使用されているCIプラットフォームJenkins[1]用に設計されたプラグインであるGamekins [47]を使用し、ゲーミフィケーションをソフトウェア開発ワークフローにシームレスに統合する。Gamekinsは、ソースコードとテスト結果を分析することにより、コードカバレッジ[53]またはミューテーション分析[28]に基づいてテストを改善できる領域を特定し、チャレンジやクエストなどのゲーミフィケーションの概念を使用して改善を奨励し、優れたテストにポイント、実績、リーダーボードランキングで報酬を与える。我々は、学部レベルのソフトウェアテストコースにGamekinsを統合することの利点を評価し、コースの学習目標と学生の行動への影響を調査した。詳細には、この論文の貢献は以下のとおりである。
• CI におけるテスト活動にインセンティブを与え、報酬を与える手段として、ゲーミフィケーションの使用を提案します。
• 学部レベルのソフトウェアテストコースで使用するツールとしてGamekinsを紹介します。
• ゲームキンをソフトウェア テスト コースに統合した場合の効果を、ゲーミフィケーションを導入していない以前のコホートと比較し、学生にアンケートを実施して実証的に評価します。
調査の結果、学生のテスト行動と Gamekins の使用には相関関係があり、同じ課題でゲーミフィケーションが使用されなかった以前のコースと比べて、正解率が大幅に向上していることが示されました。Gamekins のすべての側面が学生に広く受け入れられたわけではありませんが、全体として、学生はコース全体を通じてその使用を楽しんでおり、Gamekins が実用的な教育ツールであることが確認されました。
この論文は、CC BY-SA 4.0 DEED ライセンスの下でarxiv で公開されています。
[1] https://www.jenkins.io/