コーディング問題のテストケースの定義
Last updated: March 10, 2026
概要
テストケースは候補者のコードの検証に役立ちます。これらは候補者のコードの自動評価の基礎となります。テストケースは、コードへの入力と期待される出力で構成されます。候補者がコードを提出すると、それはすべてのテストケースに対して実行されます。候補者のコードからの出力は、期待される出力と比較され、テストケースが合格か不合格かを判断します。
説明付きのサンプルテストケースも、問題を候補者により良く理解させるのに役立ちます。理想的には、問題を理解するのに役立つ2〜3のサンプルテストケースを使用すべきです。すべてのシナリオをカバーするために、合計8〜15(理想的には合計10)のテストケースを持つことをお勧めします。テストケースは、異なるレベルの複雑さをカバーするさまざまなサイズである必要があります。2つのテストケースが同じ概念をテストしてはいけません。
注意:ハッカートラックのコーディング問題を作成する際のテストケースの使用方法については、コーディング問題のテストケースを参照してください。
テストケースの種類
各問題には2種類のテストケースがあります。サンプルテストケースと隠しテストケースです。
サンプルテストケース
サンプルテストケースは、候補者が閲覧してコードの検証に使用できるテストケースです。これらのテストケースには、入力値と期待される出力値の両方が表示されます。テストケースを作成する際に、特定のテストケースをサンプルテストケースとしてマークできます。
例えば、以下のコーディング問題のサンプルテストケースの例を参照してください。この問題では、候補者に与えられた文字列の最初の非繰り返し文字を見つけるコードを書くことが求められます。
テストでは、候補者が問題のコードを書いてコンパイルすると、そのサンプルテストケースが候補者のコードに対して検証されます。候補者は、入力と期待される出力値を含むサンプルテストケースの実行結果を見ることができます。サンプルテストケースの実行結果を見ることで、候補者は自分のコードの期待される結果を理解できます。候補者はまた、自分のサンプルテストケースをダウンロードすることもできます。
隠しテストケース
コーディングの質問にテストケースを追加する際に、それをサンプルテストケースとしてマークしない場合、それは隠しテストケースと見なされます。隠しテストケースは、競技プログラミングの時代から進化してきました。
さまざまなコーナーケースを隠しテストケースとして含めることで、候補者をさまざまなシナリオに対して評価できます。候補者がコードを実行すると、隠しテストケースはロック アイコンによって示されます。
サンプルテストケースとは異なり、候補者はこれらの隠しテストケースの入力値と期待される出力値を見ることはできません。ただし、候補者は隠しテストケースのいずれかをクリックすると、自分の出力とデバッグ可能な出力を見ることができます。この機能は、候補者により良いデバッグ体験を提供するために用意されています。
テストでは、候補者がこの質問のコードを書いて実行すると、隠しテストケースは候補者のコードに対して検証され、テストケースの実行結果が返されます。候補者のコードが隠しテストケースを正常に実行し、期待される出力を返す場合、その候補者はこのテストケースに割り当てられたスコアを獲得します。
隠しテストケースの出力を無効にする
候補者のために隠しテストケースの出力を表示しないことも選択できます。隠しテストケースの出力を無効にするには、以下の手順に従います。
- テストホームページで、希望のテストをクリックします。
- 質問をクリックした後、設定タブをクリックし、左側の質問オプションを選択します。
- 質問タブをクリックした後、下にスクロールすると、隠しテストケースの出力を無効にするオプションが表示されます。ただし、これは推奨されません 出力を表示することで候補者がコードのデバッグを効果的に行えるためです。出力を表示するオプションはデフォルトで選択されています。出力を非表示にしたい場合は、隠しテストケースの出力を表示のチェックボックスの選択を解除してください。
注意: 私たちのレポートによると、候補者は隠しテストケースのために解決策を見つけたりデバッグしたりするのに多くのテスト時間を失う傾向があります。 この課題を軽減し、候補者により良いデバッグ体験を提供するために、HackerRankは将来的に隠しテストケースから離れ、ブレークポイントベースのデバッグ可能な体験を候補者に導入することを検討しています。
スコアリング
すべてのテストケースが同じ難易度ではありません。テストケースを作成する際には、難しいテストケースにより多くのポイントを割り当てる必要があります。これにより、優れた、良い、平均的なプログラマーの区別がより明確になります。すべてのテストケースのスコアの合計が特定の質問に割り当てられる総スコアです。必要に応じてサンプルテストケースにゼロポイントを割り当てることもできます。コーディング問題の総合スコアは、正常に通過したすべてのテストケースのスコアの合計です。
コードスタブと同期させるテストケース
自動生成されたコードスタブを使用している場合は、入力と期待される出力がコードスタブと同期していることを確認してください。これについては、末尾の部分を参照してください。
例として:
配列の場合は、最初に「n」(配列のサイズを示す)を読み取り、その後「n」個の配列要素を「n」行に分けて読み取ります。これは、異なる言語間で入力を一貫して読み取るために必要です。
リンクリストの場合は、「n」(追加する要素の数を示す)を常に読み取り、その後「n」行に分けて「n」個の要素を読み取ります。
詳細については、新しいテストケースの追加方法を参照してください。