Skip to main content

自動採点

課題リポジトリで実行するテストを構成することで、学生から提出されたコードに対するフィードバックを自動的に提供できます。

Who can use this feature

Organization owners who are admins for a classroom can set up and use autograding on assignments in a classroom. クラスルーム管理者の詳細については、「クラスルームの管理について」を参照してください。

自動採点について

GitHub Classroom上で課題に対する学生の作業を自動的にチェックするために、自動評価を利用できます。 課題のためのテストを設定すると、それらのテストは学生が課題をGitHub.com上のリポジトリにプッシュするたびにすぐに実行されるようになります。 学生は、テストの結果を見て、変更を行い、新しい結果を見るためにプッシュできます。

学生が課題を受け入れた後、GitHub Actionsは、自動採点テストを行うコマンドを、課題リポジトリへの各プッシュに対して学生の最新コードを含むLinux環境で実行します。 GitHub Classroomは、 GitHub Actionsに必要なワークフローを作成します。 自動採点の使用にあたり、GitHub Actionsの経験は不要です。

テストフレームワークを使用したり、カスタムコマンドを実行したり、入出力テストを記述したり、さまざまなテスト方法を組み合わせたりすることができます。 自動採点用のLinux環境には、一般的なソフトウェアツールが数多く含まれています。 詳しくは、GitHub ホステッド ランナーの仕様に関する記事で Ubuntu の最新バージョンの詳細を参照してください。

GitHub Classroomの課題に移動して、自動採点テストでどの学生が合格したかの概要を表示できます。 緑色のチェックマークは、その学生がすべてのテストに合格したことを意味します。赤色のXは、その学生が一部またはすべてのテストで不合格だったことを意味します。 1つ以上のテストに得点を与えている場合、課題で獲得できる最高得点が吹き出しに表示されます。

自動採点結果を含む課題の概要

採点方法

採点方法には、入出力テストと実行コマンドテストの2つがあります。

入出力テスト

入出力テストは必要に応じてセットアップコマンドを実行してから、テストコマンドに標準出力を渡します。 GitHub Classroomは、テストコマンドの出力を期待する結果と照らし合わせて評価します。

設定説明
テスト名テストの名前。ログでテストを識別するためのものです。
セットアップ コマンドオプション。 コンパイルやインストールなど、テストを実行する前のコマンド。
実行コマンドテストを実行し、評価用の標準出力を生成するコマンド。
入力実行コマンドの標準入力。
想定される出力実行コマンドによる標準出力として期待する出力結果。
比較実行コマンドの出力と期待する出力との比較方法。

  • 含まれる: 予想される出力が
    実行コマンドからの標準出力のどこかに含まれていれば合格にします
  • 正確: 予想される出力が
    実行コマンドからの標準出力と完全に同じであれば合格にします
  • 正規表現: 予想される出力の正規表現が
    実行コマンドからの標準出力と一致していれば合格にします
タイムアウト失敗の結果が出るまでにテストを実行する時間(分単位)。
Pointsオプション。 テストの合計点に占める点数。

実行コマンドテスト

実行コマンドテストはセットアップコマンドを実行してから、テストコマンドを実行します。 GitHub Classroomは、テストコマンドの終了ステータスをチェックします。 終了コードが 0 の場合は成功、その他の場合は失敗です。

GitHub Classroomは、さまざまなプログラミング言語に対し、言語特有の実行コマンド用プリセットを提供しています。 たとえば、ノードの実行 テストでは、セットアップ コマンドには npm install が事前に入力され、テスト コマンドには npm test が事前に入力されます。

設定説明
テスト名テストの名前。ログでテストを識別するためのものです。
セットアップ コマンドオプション。 コンパイルやインストールなど、テストを実行する前のコマンド。
実行コマンドテストを実行し、評価用の終了コードを生成するためのコマンド。
タイムアウト失敗の結果が出るまでにテストを実行する時間(分単位)。
Pointsオプション。 テストの合計点に占める点数。

アシスタントのために自動採点テストを設定する

新課題の作成時に、自動採点テストを追加できます。 詳細については、「個人課題を作成する」か「グループ課題を作成する」を参照してください。

既存の課題用の自動採点テストを追加、編集、削除できます。 Classroom UI を介して行われたすべての変更は、既存の学生リポジトリにプッシュされるため、テストを編集するときは注意が必要です。

  1. GitHub Classroomにサインインしてください。 1. クラスルームのリストで、表示したいクラスルームをクリックしてください。 Organization のクラスルームのリスト内のクラスルーム 1. 編集したい課題の右で、をクリックしてください。 課題リスト中の課題を編集するための鉛筆アイコン
  2. 左側のサイドバーで、 [採点とフィードバック] をクリックします。 課題の基本の左側にある [採点とフィードバック]
  3. 自動採点テストを追加、編集、または削除します。
    • テストを追加するには、[自動採点テストの追加] で [テストの追加] ドロップダウン メニューを選択し、使用する採点方法をクリックします。 [テストの追加] ドロップダウン メニューを使用して、採点方法をクリックします テストを構成した後、 [テスト ケースの保存] をクリックします。 自動採点テストの [テスト ケースの保存] ボタン
    • テストを編集するには、テスト名の右側にある をクリックします。 自動採点テストを編集するための鉛筆アイコン テストを構成した後、 [テスト ケースの保存] をクリックします。 自動採点テストの [テスト ケースの保存] ボタン
    • テストを削除するには、テスト名の右側にある をクリックします。 自動採点テストを削除するためのゴミ箱アイコン
  4. ページの下部にある [課題の更新] をクリックします。 ページの下部にある [課題の更新] ボタン

自動採点テストの結果の表示とダウンロード

自動採点の結果をダウンロードする

[ダウンロード] ボタンを使用して、学生の自動採点スコアの CSV をダウンロードすることもできます。 これにより、学生のリポジトリへのリンク、学生の GitHub ハンドル、名簿識別子、提出タイムスタンプ、自動採点スコアを含む CSV が生成されてダウンロードされます。

[ダウンロード] ボタンが選択され、強調表示された [成績のダウンロード] と [リポジトリのダウンロード] の追加オプションが表示されています

個人のログを表示する

  1. GitHub Classroomにサインインしてください。 1. クラスルームのリストで、表示したいクラスルームをクリックしてください。 Organization のクラスルームのリスト内のクラスルーム 1. 課題のリスト中で、表示したい課題をクリックしてください。 クラスルームの課題リスト中の課題
  2. 提出の右側にある [テストの表示] をクリックします。 課題の提出の [テストの表示] ボタン
  3. テストの出力結果をレビューします。 詳細については、「ワークフロー実行ログを使用する」を参照してください。

参考資料