このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。

2014年9月12日金曜日

単体テスト Genie でテストをしよう!

皆さん、単体テストしてますか? 
C#やVBなどの.NET Fromeworkのアプリケーションでは、NUnitやMSTestなどが有名ですが、dotTESTにも「単体テストGenie」という機能があります。
dotTEST の Genie を利用すると。。。
NUnit や MStest のようにコードを書く必要がなく、テストケースを作成することができます!

では、今回は、dotTEST の単体テストGenieについてご紹介します。
※Genie とは、アラジンのランプの魔人のことです。


■ 単体テストGenie
テストケースの作成には、2つの専用のビューを使用します。
単体テストGenieビュー
ビルダー 
























[単体テストGenie]ビューで、テストしたいメソッドを選択し、テストケースの入力値や期待値を[ビルダー]画面で入力していきます。

■ テストケースの作成
今回は、映画料金を計算する Chargeメソッドを例にご紹介します。

Chargeメソッドでは、入力値に「年齢」や「大学生かどうか?」など複数の引数を指定し、その結果、映画料金を返します。

【映画料金表】

一般 1,800 円
大学生 1,500 円
高校生 1,000 円
小人(3歳から中学生) 1,000円
シニア(60歳以上) 1,000円
障害者手帳をお持ちの方 1,000円


ビルダー画面は、複数のタブで構成されています。入力値(今回は、メソッドの引数)は、[入力]タブ、期待値(今回は、映画料金)は、[アサーション]タブで設定します。
















テストケースを作成するときは、同じ料金になるように、入力値を考えます。今回は年齢に着目して、60歳以上のシニア料金のパターンを考えてみましょう。



























入力値を任意の値で設定するために、「ユーザー定義値の使用」にチェックを入れ、(60,65,70,75)と60歳以上の年齢入力します。
※改行を入れると複数データを入力できます。

シニア料金の場合は、男性でも女性でも関係ないので、lady の設定だけ、true/falseを選択し、他の入力値はfalseを選択すると、8個のテストケースが作成されます。
Genieは、入力値のすべての値を組み合わせて、テストケースを作成します。今回は、年齢の4パターンと性別の2パターンを組み合わせて、8パターンとなります。

次は、期待値を入力します。
















シニアの場合は、一律1000円になります。種類を「アサート」に変更し、期待値に「1000」と入れて、生成ボタンをクリックするとテストケースが生成されます。

dotTESTは、NUnit形式のテストケースを作成してくれます。メソッド実行後の期待値をチェックするために、AreEqualメソッドを使用してます。もし映画料金が期待値と一致しない場合は、すぐに確認することができます。

■ テストの実行
では、作成したテストケースを実行してみましょう。
単体テストを実行するには、 ビルトインの[Run Tests and Check Assertions]をメニューから選択します。このテストコンフィギュレーションでは、単体テストの実行と、一緒にカバレッジも測定することができます。



■ まとめ
Genieを使うと、GUIで操作しながらテストケースを作成することができます。面倒なコードを書く必要がありません。また、テストケース内で、期待値と結果を判定しているので、結果をひと目で確認もできます。単体テストをやっていない人、まずはGenieを使って単体テストをはじめてみませんか?

テストケースを1つ1つ、Genieで作るのは、ちょっと大変じゃない?という人には、Genieで作ったテストケースを修正することで、Excelなどの外部ファイルに入力値や期待値のテストデータを定義して、テストを行うことも可能です。


















Excelを利用したテストケースの方法について弊社で作成した資料がありますので、気になる方は、Parasoft製品カスタマーセンターまでお問合せください。

Genieを使って単体テストをやってみたいという人は、dotTEST の体験版をご用意していますので、 Parasoft dotTEST 製品ページ をご確認ください。