●プログラムのテスト

テスト内容(仕様)は、作成物の仕様が決った直後に行います。 テストプログラムは、作成物のプログラムよりも先に作成するとよいでしょう。 テストとは、デバッグするためではなく、正常を証明するために行います。


テストの手順

  1. 『仕様作成』
  2. 手動テスト作成』:特定の条件について
  3. 自動テスト作成』:すべての条件について
  4. 最終テスト』(出荷モード)


テスト・ケース

基本的にテストケースは、仕様書に書かれていることそのままです。
開発期間全体を使って、随時テスト項目を作成していきます。
テストケースを欲張るとハマります。なるべく複合しないように選びます。
ホワイトボックステストは、テストケースを絞り込みます。 ブラックボックステストは、使用状況に合わせたものと、合わせないものにします。
トップダウンにテストケースを選び、内部のテストを兼ねるようにします。

テストするときのチェック項目は次のようなものがあります。


チェック方法

テストケースに対応したチェックリストを作成する。 なかなか解決しないものは後回しする。
作成したテストプログラムや、テストデータ、正常な出力データは取っておく。
自動テストは止まらないようにして、ログに記録する。

以下に、それぞれのテストケースのチェックの仕方を説明する。

『出力結果を直接見ることによるチェック』

『出力結果の流用によるチェック』

『別アルゴリズムによるチェック』


アサート

アサートとは、作成しているプログラムのデバッグ版に チェックコードを入れて、チェックすることです。 通常、デバッグ版とリリース版を 作成し、その切替えは NDEBUG が #define されているかどうかを #ifdef 〜 #endif を用いて行います。 アサートは、クイックテストを行っていることと同じです。 C 言語の標準ライブラリに assert マクロがあります。

事前条件表明のアサート
処理の実行前に満たさなければならない条件をアサートします。 引数の定義域をチェックします。
事後条件表明のアサート
処理の実行後に満たさなければならない条件をアサートします。 出力の値域をチェックします。
オブジェクトの正規条件表明のアサート
事前条件表明、事後条件表明のどちらにも共通に使えるチェックが、 オブジェクトの正規条件表明です。 オブジェクト属性値に対してチェックするメソッドを作成します。

その他


written by m.toda Jun.24.1997 〜 Aug.18.1997