テスト (プログラム)

提供: MonoBook
2013年8月22日 (木) 08:36時点におけるimported>MikeCATによる版 (作成)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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

主なテストの種類

サンプルテスト(仮)

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

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

プレテスト

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

システムテスト

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

ユニットテスト

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

単体テスト

未稿

結合テスト

未稿

負荷テスト

未稿

正しさの証明

未稿

主なテストケースの種類

サンプルケース

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

最大ケース

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

コーナーケース

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

ランダムケース

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

関連項目