2008年9月25日木曜日

テストソリューション

さまざまなセッションの中でGenexusを使った開発でのテストに関するソリューションがありましたので、ここで紹介します。

・GxTest

 GxTestのサムネール画像

Abstracta社の製品で、モデルベースのテスト製品です。

 この製品はGeneXus XのExtension(拡張モジュール)ではなく、独立したアプリケーションです。

テストケースごとにキャンバスに画面遷移をモデル図として描き、そのモデルに従ってテストが自動で行われます。
GxTest2

テストの結果はこのようなレポート画面として出力されます。

GxTest3


GxTest4


  • GxUnit

もう一つテスト系ソフトを。

こちらは単体テスト用のExtensionです。

GxUnitではプロシージャオブジェクトを対象にブラックボックステストを行うテストツールです。


GxUnit2


テスト対象となるプロシージャを指定すると、そのインターフェイス(Parmルール)を読み取って、インプット値をセットする項目が設定されます。


GxUnit3


テストケースごとにインプット項目に値を設定し、テストを実行するとケースごとにテストが行われ、結果が記録されます。


GxUnit4



レポートもこのように表示されます。

GxUnit5




一般の開発ですと、xUnit(JUnitやNUnitなど)が単体テストのフレームワークとして普及していますが、それと同様のテストがこのGxUnitにて可能になるわけです。



単体(Unit)テストについて補足を・・・

もともとXP(エクストリーム・プログラミング)では、


  • 単体テストを自動化する

  • 単体テストはブラックボックステストにする

  • インターフェイス(パラメータ)が変わらない間は何度でも(しかも自動で)テストが可能

  • よって、(テスト対象となるモジュールの)ソースコードはどんどん変更してもよく

  • 一度テストが通ったコードでも、きれいに書き直す - リファクタリング - を推奨する

というポリシーがあります。

実際にはテストファースト(プログラムコードの前にテストコードを書く)というのもありますが、ここでは割愛します。



日本においては、「自動化」という言葉にどうしても抵抗感がある方々がいますが、上記のようにXPの世界では、自動化自体は目的ではなく、自動化することにより


  • 繰り返し(手間無く)テストが可能

  • ビックバンテストではなく、ちょっと作ってすぐテストが可能(常に動作し、テストにパスしているコード)

  • テストを行えば、結果(エラーが)がすぐわかるので、ソースコードの修正を推奨し、誰が見てもわかりやすいソースを目指すことができる

といった事を狙っています。





0 件のコメント:

コメントを投稿