「テスト (プログラム)」の版間の差分

imported>MikeCAT
作成
 
 
(2人の利用者による、間の3版が非表示)
10行目: 10行目:


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


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


===[[ユニットテスト]]===
===ユニットテスト===
プログラム中の個々の[[モジュール]](関数など)を対象にしたテスト。
[[ユニットテスト]]とは、プログラム中の個々の[[モジュール]](関数など)を対象にしたテストのことである。[[CppUnit]]や[[JUnit]]などのツールが使われることがある。
[[CppUnit]]や[[JUnit]]などのツールが使われることがある。


===[[単体テスト]]===
===結合テスト===
未稿
未稿


===[[結合テスト]]===
===負荷テスト===
未稿
未稿


===[[負荷テスト]]===
===正しさの証明===
未稿
 
===正しさの[[証明]]===
未稿
未稿


==主なテストケースの種類==
==主なテストケースの種類==
===サンプルケース===
===サンプルケース===
あらかじめ公開された入出力例。
サンプルケースとは、あらかじめ公開された入出力例。これに通らないと話にならないが、たまに通らないコードが提出される。
これに通らないと話にならないが、たまに通らないコードが提出される。


===最大ケース===
===最大ケース===
仕様上考えられる最大の入力。
最大ケースとは、仕様上考えられる最大の入力。大きい入力に対しても短時間で効率よく処理できるかをチェックする。
大きい入力に対しても、短時間で効率よく処理できるかをチェックする。
 
たとえば毎日実行される[[バッチ処理]]が「最大値入力だと24時間以上かかる」という場合は、それは「単に遅い」ではなく「不具合」であるといえる。多重起動防止などを実装していなければ、そのうちリソースを食いつぶすことになりかねない。


===コーナーケース===
===コーナーケース===
場合分けの境界などの特定の条件を満たすケース。
コーナーケースとは、場合分けの境界などの特定の条件を満たすケース。境界値での条件分岐の正しさを確認するものをいう。適当な入力に対しては正しい出力ができても、コーナーケースに対しては間違った出力になる場合がある。
適当な入力に対しては正しい出力ができても、コーナーケースに対しては間違った出力になる場合がある。
 
ほとんどは「<」と「<=」の記述ミスを検出する目的である。


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


==関連項目==
==関連項目==
* [[デバッグ]]
 
* [[オンラインジャッジ]]
*[[デバッグ]]
*[[オンラインジャッジ]]