私の目標は:
- お客様は新しいWebテストを生成できます。
- 継続的インテグレーションサーバーは、テスト環境の展開を行います。それに対してテストを実行する必要があります
- テストは、他の環境に対して実行することもできます。
(最終的な受け入れテストは、フォントなどをテストするためにお客様が行う必要がありますが、これは、テスト環境の受け入れ前チェックとして最適です。お客様は、現在以外のことに集中できます。)
通常、一部のプロパティ(テキストフィールドIDなど)が変更されたかなどがあり、テストは数週間で失敗します。記録されたテストは頻繁に失敗したようです。したがって、古いテストを保守および変更しようとするよりも、新しいテストを簡単に記録する方が適切です。
今、私はまったく新しいアプローチを見つけました。たぶん録音は正しい方法ではありません。もし私たちの顧客が人間が読める形式のユースケースを作成し、それをマシンが理解してWebレコーディング(ドメイン固有言語、DSLを使用)にコンパイルできるとしたらどうでしょう。これはSFではなく、すでに作成されているので、読み進めてください。:-)
私はこれらの自動Webテストフレームワークを使用しようとしました:
- Visual Studio Webテスト(お客様は実行できません)
- Selenium(Firefoxでのみ動作します。お客様はIEを使用しています)
- WatiN(Watirの.NETバージョン、レコーダーは少しバグがあるようです)
- HP Quick Test Pro(新しいテストを行うのに十分簡単ではありません)
これらのどれも私が実際に必要なものを提供していません...しかしセレンは最も近いものです。
お客様はフィンランド語を話すため、ソフトウェアプロジェクトの開始時、仕様段階で、ユーザーは次のようなユースケースを作成します。
- Avaa「OmaLomake」
- Syötä"Tuomas"kohtaan "nimi"
- パイナ「スラーヴァ」
翻訳:
- 「MyForm」を開く
- フィールド「name」に「Tuomas」を挿入します
- 「次へ」を押します
さて...これは人間が読める形式のユースケースですが、自動Web受け入れテストにコンパイルすることもできます。Open、Insert、into field、Pressはキーワード、その他は値です。
これにはどのようなDSLツールが適していますか?
Microsoftは、MGrammarと呼ばれるOsloプロジェクトで新しいDSL作成ツールを作成しています。これは、カスタム言語を作成して、技術者以外の人が機械を簡単に操作できるようにすることができることを意味します。(CobolとVisual Basicであった(そして失敗した)同じ基本的な考え方。)
誰かがすでにMGrammarでこの種のDSLを作成していることがわかりましたが、これはSeleniumではなくWatin用です:http: //www.codinginstinct.com/2008/11/creating-watin-dsl-using-mgrammar.html
したがって、継続的インテグレーションサーバーのプロセスは次のようになります。
- (通常どおり)ソース管理から新しいバージョンを取得します。
- 単体テストをビルドして実行し、コードを分析します(通常どおり)。
- (通常どおり)バージョン管理でインストールパッケージとタグバージョンを作成します。
- ユースケースをWebテストにコンパイルする
- Webテストを実行する
- ソフトウェアを承認/拒否します:-)
継続的インテグレーションサーバーでWebテストを実行すると、通常、多くの構成作業が必要になります。それで、これを試す前に、私は興味があります、あなたはどう思いますか?同じ種類のセットアップを使用しましたか?また、どのような経験がありますか?(正確な環境は?)
DSLはどうですか、それはユースケースに十分なパワーを持っているのでしょうか、それとも別の無限の開発タスクになるのでしょうか?顧客はテストを生成しますか?