[Test]テストケースデータセット
3471 ワード
ユニットテストシステムテスト
ユニットテストunit testing
「ユニット」とは、関数やクラスなどのプログラムの構成部分を指し、ユニットを独立してテストすると、エラーが発生すると、どこでエラーを探しているのかを判断することができます.エラーは、私たちがテストしたユニットにあるに違いありません.
システムテストシステムtesting
システムテストは、ユニットテストが完了すると、システムテストでエラーが発見されると、ユニット間のインタラクションに問題が発生する可能性があることを示すだけです.
一般的なポリシー:自分で作成したユニットのテストを行う
ブラックボックステストホワイトボックステスト
ホワイトボックステスト
(被験ユニットの実装の詳細がわかります)
ブラックボックステスト
(測定ユニットのインタフェースしか見えません)
回帰テストregression testing
被験ユニットのコードが変更される可能性があります(あなたや他の人)、回帰テストが必要です.エラーが消えるまで無関係コードを除去し、最後に除去したコードを再追加します.候補コードが削除されるまで、このプロセスを継続します.
The way we find that minimal program is to keep removing code until the error disappears — and then reinsert the last bit of code we removed. This we do until we run out of candidates for removal.
使用例選択基準
ホワイトボックステスト
(被験ユニットの実装の詳細がわかります)
ブラックボックステスト
(測定ユニットのインタフェースしか見えません)
回帰テストregression testing
被験ユニットのコードが変更される可能性があります(あなたや他の人)、回帰テストが必要です.エラーが消えるまで無関係コードを除去し、最後に除去したコードを再追加します.候補コードが削除されるまで、このプロセスを継続します.
The way we find that minimal program is to keep removing code until the error disappears — and then reinsert the last bit of code we removed. This we do until we run out of candidates for removal.
使用例選択基準
データセット
テストコード
テストコードを書くのは「カットと貼り付け」式のプログラミングではなく、他のコードを書くようにテストプログラムを書くべきです.たとえば、シーケンスの2つのセグメントと中央からそれぞれ1つの値(シーケンスにない値)を選択し、テスト例を構築することは、数値シーケンスまたは数値範囲プログラムをテストする際に非常に役立ちます.
エラーコード
早期テスト
プログラムユニットを作成する前にユニットテストを作成しました
単純なシステム崩壊ではありません
「設計が悪い」(アルゴリズム以外のパフォーマンスの問題)
実行時間の表示 // Unix
g++ x.cpp
time g++ x.cpp
タイムレコード
コード#コード#
#include
#include
using namespace std;
void do_something() {}
int main()
{
int n = 10000000; // repeat do_something() n times
auto t1 = chrono::system_clock::now(); // begin time
for (int i = 0; i(t2-t1).count() << " milliseconds
";
}
しゅつりょく
do_something() 10000000 times took 32 milliseconds
オプションのパラメータ
chrono::duration_cast<:milliseconds>(t2-t1).count()
// Unix
g++ x.cpp
time g++ x.cpp
コード#コード#
#include
#include
using namespace std;
void do_something() {}
int main()
{
int n = 10000000; // repeat do_something() n times
auto t1 = chrono::system_clock::now(); // begin time
for (int i = 0; i(t2-t1).count() << " milliseconds
";
}
しゅつりょく
do_something() 10000000 times took 32 milliseconds
オプションのパラメータ
chrono::duration_cast<:milliseconds>(t2-t1).count()
seconds
milliseconds
nanoseconds