[[SoftwareTest]]に戻る

[[なでしこ&葵まとめ>Nadeshiko_programming4JapaneseStyle]]に戻る

関数とかモジュール単位でやるのが単体テスト(Unit Test)。なでしこで、プログラムと作るときにも、細かく実験したりテストしたりしてるんだけれど、体系的にはやってない(おれが)。それを少しばかり、整理・改善してみたい。

#contents

*簡単な入門 [#t83fce0c]

-[[softwaretest - 日本語プログラミング言語「なでしこ」WIKIマニュアル:http://nadesi.com/wiki/index.php?softwaretest]] 「なでしこ単体テスト」による、ソフトウェアテストのススメ

*テスト支援命令 [#ff63f452]

公式リファレンスへのリンク。

|[[テストリセット:http://nadesi.com/man/page/%E3%83%86%E3%82%B9%E3%83%88%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88]]|テスト結果をリセットする|
|[[テスト実行:http://nadesi.com/man/page/%E3%83%86%E3%82%B9%E3%83%88%E5%AE%9F%E8%A1%8C]]|AとBが等しいかテストを実行する|
|[[テスト成功:http://nadesi.com/man/page/%E3%83%86%E3%82%B9%E3%83%88%E6%88%90%E5%8A%9F]]|テストが1つ成功したことにする|
|[[テスト失敗:http://nadesi.com/man/page/%E3%83%86%E3%82%B9%E3%83%88%E5%A4%B1%E6%95%97]]|テストが1つ失敗したことにする|
|[[テスト結果取得:http://nadesi.com/man/page/%E3%83%86%E3%82%B9%E3%83%88%E7%B5%90%E6%9E%9C%E5%8F%96%E5%BE%97]]|テスト結果をハッシュで返す。(ALL/NG/OK)」の形式で返す|
|[[テストログ取得:http://nadesi.com/man/page/%E3%83%86%E3%82%B9%E3%83%88%E3%83%AD%E3%82%B0%E5%8F%96%E5%BE%97]]|テスト結果のログを得る|
|[[プラグインDLL存在:http://nadesi.com/man/page/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3DLL%E5%AD%98%E5%9C%A8]]|プラグインフォルダに指定FILEのDLLがあるかどうか調べて、はいかいいえで返す|

*なでしこ単体テスト [#zdd3ca71]

なでしこで作った単体テストコードを、まとめて実行するプログラムです。といっても、なでしこ本体に付属の「全テスト実行」(test-all.nako)を、ほんのすこしだけ改変しただけ。

#ref(なでしこ単体テスト20100714a.lzh);

**サンプルテストについて [#wad622f5]

なお、本プログラムに付属のサンプルテストは、テストに失敗するよう記述してあります。テストを成功させるには、サンプルテストから、テスト失敗行をコメントアウトしてください。

**テストを作るには [#i569d0d3]

「AとBで実行テスト」のように書いてテストを実行します。

 A:実行するプログラム
 B:実行結果(予想)

Aの実行結果(戻り値)とBが一致すると、テスト成功(OK)となります。

**アプリケーションプログラムをテストする場合 [#r40d6a97]

サンプルとして以下のファイルを用意しました。

-本体.nako : テスト対象
-\test\sample-test\テスト_本体.nako : テストプログラム

本体.nakoの中にある「テキスト戻り」関数をテストします。

アプリケーションプログラムをテストする場合は、「対象を取り込み.nako」に、テスト対象の取り込みを記述しておきます。

**テストの配備 [#o99f9606]
テストは、testフォルダの下に配置します。
「do-test.nako」か「全テスト実行.bat」をダブルクリックすると、自動的に読み込んで実行します。

**変更履歴 [#a7272f01]

-2010/07/14 アプリケーションのテスト対応を追加
-2010/06/08 新規公開

*サンプルテスト [#g8679a2b]

なでしこプログラムのテストサンプル

** 単純なテキストテスト [#dcea2f70]

データをそのまま呼び出す

 テストデータ=「あいうえお」
 結果文=「あいうえお」
 (テストデータをテスト参照1する)と結果文でテスト実行
 テストログ取得
 それを表示
 
 ●テスト参照1(テスト文を)
 	テスト文で戻る

 #結果
 OK,(ファイルパス)\nako\テスト練習.nako.bak(8),テスト参照1,あいうえお

**複数行テキスト [#s32bda2e]

評価する関数で、「一行追加」命令を使っていると、末尾に「改行」がつく。

 テストデータ=「あいうえお
 かきくけこ
 さしすせそ」
 
 結果文=「あいうえお
 かきくけこ
 さしすせそ{改行}」
 
 (テストデータをテスト参照2する)と結果文でテスト実行
 テストログ取得
 それを表示
 
 ●テスト参照2(テスト文を)
 	結果文=「」
 	テスト文を反復
 		結果文に対象を一行追加	
 	結果文で戻る

 #結果
 OK,(ファイルパス)\nako\テスト練習 201.nako.bak(15),テスト参照2,あいうえお
 かきくけこ
 さしすせそ

**配列テスト [#c18f70fa]

複数行データを配列として渡す

 テストデータ=「あいうえお
 かきくけこ
 さしすせそ」
 テストデータ=テストデータを改行で区切る
 
 結果文=「あいうえお
 かきくけこ
 さしすせそ」
 結果文=結果文を改行で区切る
 
 (テストデータをテスト参照3する)と結果文でテスト実行
 テストログ取得
 それを表示
 
 ●テスト参照3(テスト文を)
 	テスト文\0=「あいうえお」
 	テスト文\1=「かきくけこ」
 	テスト文\2=「さしすせそ」
 	テスト文で戻る

 #結果
 OK,(ファイルパス)\nako\テスト練習301.nako.bak(16),テスト参照3,あいうえお
 かきくけこ
 さしすせそ


*おまけ:なでしこ本体のテスト [#e2bbd2b2]

-[[FAQ/インストールフォルダにあるtestフォルダは? - なでしこ リファレンス:http://nadesi.com/man/page/FAQ%252F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AB%E3%81%82%E3%82%8Btest%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AF%EF%BC%9F]]

*参考資料 [#qe1d99c0]

-[[ソフトウェアテスト基本テクニック:第5回 単体テスト|gihyo.jp … 技術評論社:http://gihyo.jp/dev/serial/01/tech_station/0005?page=1]]
-[[【中級】無駄なく確実にテストする I 単体テスト - ITエンジニアのスキル向上ゼミナール:selfup:http://itpro.nikkeibp.co.jp/article/COLUMN/20060418/235585/]]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS