2018年01月28日

テスト プログラムに必須のコメント

テスト プログラム(以後、テスト)をどのように作成したらよいか分からない方もいらっしゃると思いますが、全てのテストは4つのステップの構成になっています。 それは、

・準備(Set up)
・テスト対象の実行(Test Main)
・期待した出力と合っているかチェック(Check)
・クリーン(Clean)

です。 よって、テストのコードは、次のコメントを付けるべきです。

/* Set up */
:

/* Test Main */
:

/* Check */
:

/* Clean */
:

こういうニュアンスのコメントを付けるのではなく、このままの文字列で標準化すべきです。 補足が必要なら、次の行に書きます。

テストによっては、Set up や Clean で行う処理がないことがありますが、そのときは、Set up や Clean を書かなくても構いません。 大事なのは、上記の4つ種類のうち、どの種類のコードであるかが示されることです。

たまに、Set up や Clean がないときは、ないことを示すために、Do Nothing というコメントを要求する人もいますが、ナンセンスです。 必要な Set up がなければ、テストは失敗しますし、必要な Clean がなければ、テスト終了時に余分なファイルが残ってバージョン管理ツールでコミットするときに気づきます。 もしくは、次のテストが開始できなくなります。

Test Main と Check が1つのコードになることがあります。 その場合、Test Main と Check の両方が含まれていることが分かるように、次のようなコメントをします。

/* Test Main and Check */
:

vbslib には、テストを自動実行する「テスト プロンプト (Test.vbs)」があります。 Test.vbs という名前のファイルに、Test_build, Test_setup, Test_start, Test_check, Test_clean の5つの関数を定義すると、テスト プロンプトから、それらの関数を呼び出します。 Test_build は、Test_setup を実行するのに必要な環境のビルド(コンパイル)などを行います。

しかし、現在では5つの関数の分類に従ってテストは作られていません。 Test_start 関数に、/* Set up */, /* Test Main */, /* Check */, /* Clean */ がすべて入るようになりました。 なぜなら、Set up で作成したオブジェクトを Test Main で使うようなことが普通にあるからです。 関数を分けてしまうと、作成したオブジェクトを渡すことが大変になってしまうからです。

Set up, Test Main, Check, Clean に分けると、テスト内容を知ることが簡単になります。 テスト対象は Test Main に書かれており、期待する出力は Check に書かれているからです。 もし、この分け方をしていなければ、何をテストしているのか分からなくなります。 たとえば、準備をしているコードを見て、何のチェックをしているのだろうと悩んでしまったらもう開発コストが爆発します。 何もチェックしていないのですから。

http://www.sage-p.com/vbslib/vbslib.htm
http://www.atmarkit.co.jp/ait/articles/0708/17/news078.html
http://www.itmedia.co.jp/im/articles/0303/07/news001.html

sage_p at 22:33│Comments(0) プログラミング 

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔