テスト (プログラム)

提供: MonoBook
移動: 案内検索

テストとは、書かれたプログラムが正しいかどうかチェックすることである。

主なテストの種類[編集]

サンプルテスト(仮)[編集]

あらかじめ与えられたサンプル入力をローカルでプログラムに入力し、 プログラムの出力が対応するサンプル出力と一致するか、強制終了しないかをチェックする。

ただし、サンプルは通っても、もっと大きいテストケースでは強制終了したり、 処理が長時間かかったり、誤答になる場合があるので注意が必要である。

プレテスト[編集]

Codeforcesにおいて行われる、用意されたテストケースの一部を用いたテスト。 このテストに通ると一応得点が決まり、問題をLockできるようになるが、 撃墜システムテストで不正解になるとその問題の得点は無くなる。

システムテスト[編集]

ジャッジ側に用意された全テストケースを用いたテスト。 このテストにより、最終的にそのプログラムが正解かどうかが決まる。 ただし、たまにミスジャッジが発覚し、リジャッジが行われることがある。

ユニットテスト[編集]

プログラム中の個々のモジュール(関数など)を対象にしたテスト。 CppUnitJUnitなどのツールが使われることがある。

単体テスト[編集]

未稿

結合テスト[編集]

未稿

負荷テスト[編集]

未稿

正しさの証明[編集]

未稿

主なテストケースの種類[編集]

サンプルケース[編集]

あらかじめ公開された入出力例。 これに通らないと話にならないが、たまに通らないコードが提出される。

最大ケース[編集]

仕様上考えられる最大の入力。 大きい入力に対しても、短時間で効率よく処理できるかをチェックする。

コーナーケース[編集]

場合分けの境界などの特定の条件を満たすケース。 適当な入力に対しては正しい出力ができても、コーナーケースに対しては間違った出力になる場合がある。

ランダムケース[編集]

プログラムなどでランダムに生成したケース。 細かい場所に紛れ込んだバグがある場合、これに引っかかり落ちることが期待される。

関連項目[編集]