2010年8月28日土曜日

設計者のお気に入り

こんにちは、小菅です

お気に入りのツールの話です。僕が一番使っている時間が長いツールはもちろんエディタなのですが、その次は何だろうってことです。僕は実装者なのですが、最低限の設計はします。嫌いですけど(笑

で、しょうがなく設計をしている時に使っているツールは何かというと、スプレッド・シートなんですね。実装者がする設計って言うのはデータベースのスキーマだったり、テスト設計(テストケース作り)だったりするんですけど、そのときに一番役立つのがスプレッド・シートです。
例えば、こんなクラスがあります。このクラスの単体テストを作る例で話をしてみましょう。

このクラスは、「データが範囲内に入っているかを確認するためのクラス」なので、ブラックボックス・テスト的には
・範囲の設定
・データが範囲内に入っているかの確認
を試す必要があります
「範囲の設定」に関しては
・コンストラクタ(2番目)
・setLowLimit、setHighLimit、setLimit メソッド
の機能を試すのですが、これを確認するためには、
・getLowLimit、getHighLimit メソッドをまず試す必要があります
「データが範囲内に入っているかの確認」に関しては、
・同値クラステスト、境界値テストの手法でテスト・ケースを作ります

まず、「JudgeRange obj = new JudgeRange();」と、デフォルトのコンストラクタで、インスタンスを作ると、範囲の下限と上限はそれぞれ0になるので、getLowLimit、getHighLimit で下限と上限を読み出して、それぞれ0になっていることを確認することで、getLowLimit、getHighLimi の動作を確認します。
次に、「JudgeRange obj = new JudgeRange(lowLimit, highLimit);」で下限と上限を設定した、インスタンスから下限と上限を読み出し、コンストラクタの動作を確認します。
そして、setLowLimit、setHighLimit、setLimit で下限と上限を設定してみて、設定できるかの確認
最後に、下限と上限を設定済みのインスタンスに対して、isRangeの確認(同値クラス、境界値)
ってストーリーができます。
また、異常な下限と上限(上限<下限)という値を設定した時に、IllegalArgumentException がスローされるかも確かめなければなりません。

で、このテストケースを作る時に、スプレッド・シートが便利なんです。
じゃ、実際にはどのようテストケースを作るか・・・ここまで書くので疲れたので、それは次回にしましょう(笑

0 件のコメント:

コメントを投稿