「テスト (プログラム)」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) (→最大ケース) |
||
(同じ利用者による、間の1版が非表示) | |||
32行目: | 32行目: | ||
===最大ケース=== | ===最大ケース=== | ||
− | + | 最大ケースとは、仕様上考えられる最大の入力。大きい入力に対しても短時間で効率よく処理できるかをチェックする。 | |
+ | |||
+ | たとえば毎日実行される[[バッチ処理]]が「最大値入力だと24時間以上かかる」という場合は、それは「単に遅い」ではなく「不具合」であるといえる。多重起動防止などを実装していなければ、そのうちリソースを食いつぶすことになりかねない。 | ||
===コーナーケース=== | ===コーナーケース=== |
2021年2月3日 (水) 05:14時点における最新版
テストとは、書かれたプログラムが正しいかどうかチェックすることである。
目次
主なテストの種類編集
サンプルテスト(仮)編集
あらかじめ与えられたサンプル入力をローカルでプログラムに入力し、 プログラムの出力が対応するサンプル出力と一致するか、強制終了しないかをチェックする。
ただし、サンプルは通っても、もっと大きいテストケースでは強制終了したり、 処理が長時間かかったり、誤答になる場合があるので注意が必要である。
プレテスト編集
プレテストとは、Codeforcesにおいて行われる用意されたテストケースの一部を用いたテストのことである。このテストに通ると一応得点が決まり、問題をLockできるようになるが、撃墜やシステムテストで不正解になるとその問題の得点は無くなる。
システムテスト編集
システムテストとは、ジャッジ側に用意された全テストケースを用いたテストのことである。このテストにより最終的にそのプログラムが正解かどうかが決まる。ただし、たまにミスジャッジが発覚し、リジャッジが行われることがある。
ユニットテスト編集
ユニットテストとは、プログラム中の個々のモジュール(関数など)を対象にしたテストのことである。CppUnitやJUnitなどのツールが使われることがある。
結合テスト編集
未稿
負荷テスト編集
未稿
正しさの証明編集
未稿
主なテストケースの種類編集
サンプルケース編集
サンプルケースとは、あらかじめ公開された入出力例。これに通らないと話にならないが、たまに通らないコードが提出される。
最大ケース編集
最大ケースとは、仕様上考えられる最大の入力。大きい入力に対しても短時間で効率よく処理できるかをチェックする。
たとえば毎日実行されるバッチ処理が「最大値入力だと24時間以上かかる」という場合は、それは「単に遅い」ではなく「不具合」であるといえる。多重起動防止などを実装していなければ、そのうちリソースを食いつぶすことになりかねない。
コーナーケース編集
コーナーケースとは、場合分けの境界などの特定の条件を満たすケース。境界値での条件分岐の正しさを確認するものをいう。適当な入力に対しては正しい出力ができても、コーナーケースに対しては間違った出力になる場合がある。
ほとんどは「<」と「<=」の記述ミスを検出する目的である。
ランダムケース編集
ランダムケースとは、プログラムなどでランダムに生成したケース。細かい場所に紛れ込んだバグがある場合、これに引っかかり落ちることが期待される。