Index: [Article Count Order] [Thread]

Date:  Wed, 26 Feb 2003 17:50:10 +0900
From:  "小井土亨" <koido@....jp>
Subject:  [XP-jp:04118] Re:NUnit ガイド Ver2
To:  <extremeprogramming-jp@....jp>
Message-Id:  <001d01c2dd74$1205a5a0$26230e0a@koido044664>
References:  <20030226160358.1E62.TOGAWA@....com> <JO20030226171656.449887884@....jp>
X-Mail-Count: 04118

小井土です。

> 渋川です。
渋川君、アイデアありがとうです。

> > > 正直な話、UIのテスト方法はまだ十分ではなく、課題であると思ってい
> > > ますので、良いやり方があったら、テストカタログで紹介したいと考えて
> > >います。
> > 
> > そうなのですね。
> > UIに関しても簡単でよい方法があればぜひ紹介ください。
> 
> いっそのこと、テストファーストしやすいGUIライブラリというものを考えてみ
> るのも楽しいと思います。実際に作るかどうかは別にして、頭の体操に。
> 
> ★アイディアその1
> 
> GUIライブラリ上で動くマクロ言語を搭載して、ユーザ操作等をシミュレーショ
> ン。MS Officeで、VBAでテスト書くようなもんです。受入テスト用に。ユーザ操
> 作をマクロ化できれば、バグの発生パターンをユーザに作ってもらうこともでき
> るかも。
私が作った昔のアプリケーションは、これと同じ機能を実装していました。
再現できるバグは、夜中に再実行してテストしていました。
 
> ★アイディアその2
> 
> テスト時は実際に画面に表示しないで、画面の値を見たり書いたりできるモード
> を搭載する。Strategyパターンを派手にしたイメージです。
これは、大変そう。
メール送信のコンポーネントで、テキストに出力してチェックするというような
ものの画面版でしょうか。
 
> ★アイディアその3
> 
> 表示用のデータの参照しか持たないGUIツールキット。つまりGUIのライブラリ自
> 身は状態は持たず、モデルのデータを参照してその通りに表示する。つまりモデ
> ル部分のテストだけでOK。単純な画面表示系ならば良いかも。ツリーコントロー
> ルとかは大変そう。
> 
> ネタ元はFOXのデータターゲットです。
> http://www.asahi-net.or.jp/~cv8t-hdk/fox/fox-doc.ja/datatarget.ja.html
モデル部分のテストが重要なので、各画面ではテストなしになりますね。
似たような画面が多い場合、実装することがあります。
#経験あり。
 
> ★アイディアその4
> 
> リンクするライブラリを変えるだけで、CGIやHTTPサーバになってくれる(Window
> を出す代わりにHTMLを出す)ようなお洒落なライブラリにする。そうすれば、
> WebUnitとかを使って通常のGUIのテストもできる。作るの大変そう。.NETフレー
> ムワークってこういう風になってるんでしたっけ?追っかけていませんが。
NUnit.ASPが似ている感じでしょうか。
 
> ★アイディアその5
> 
> OSが発行するイベント、メッセージを、プログラマが同じように簡単に発行でき
> る仕組みを整える。他のアイディアとセットかな。テストメソッドの中で、ウイ
> ンドウをテスト用に初期化し、メッセージを送って、画面の表示内容をassert文
> でチェック。
.NETでは、SendKeys.SendWait( "123{ENTER}" );見たいにこれを再現することができます。
問題は、再生中にブレイクポイントを入れるとOSがハングする場合があります。
#今日、この方法でテストして、不用意にバングさせてしまいました。

なかなか面白ので、皆さん一度体験してみてください。
工夫次第でUIもそれなりにはテストできますが、まだ決定打がありません。

#結構、いろいろやってるな。