Skip to main content

自動採点

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

この機能を使用できるユーザーについて

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の経験は不要です。 ワークフローと 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にサインインしてください。

  2. クラスルームのリストで、表示したいクラスルームをクリックしてください。

  3. 編集したい課題の右側にある をクリックします。

  4. 左側のサイドバーで、 [採点とフィードバック] をクリックします。

  5. 自動採点テストを追加、編集、または削除します。

    • テストを追加するには、[自動採点テストの追加] で [テストの追加] ドロップダウン メニューを選び、使う採点方法をクリックします。 テストを構成して [テスト ケースの保存] をクリックします。

    • テストを編集するには、テスト名の右側にある をクリックします。 テストを構成して [テスト ケースの保存] をクリックします。

    • テストを削除するには、テスト名の右側にある をクリックします。

  6. ページの下部にある [課題の更新] をクリックします。

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

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

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

個人のログを表示する

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

参考資料