テストの整理
以下の計画のヒントは、Eggplant Functionalをより効果的に使うのに役立ちます。
計画を立てる
テストスクリプトの開発を始めるときには、すでにテスト対象のアプリケーションに精通していて、具体的に何をテストするつもりかを知っている必要があります。簡単に言えば、テスト計画が必要です。
以前にソフトウェアの手動テストを実施したことがある場合は、手動テストスクリプトを開発したことがあるかもしれません。これは、システムの特定の部分が正しく機能していることを確認するために、人が実行できる手順の書面による手順です。Eggplant Functionalは、ソフトウェアとまさに人が行うように対話するので、これらの手動テストスクリプトは、自動テストスクリプトを開発するための理想的な出発点です。
すでに正式なテストが存在しない場合は、どこから始めればいいのか疑問に思うかもしれません。一部の人々は、アプリケーション全体をモデル化し、それを網羅的に実行する戦略を立てることを選択します。また、システムの最もリスクの高い領域に焦点を当てることを選択する人もいます。最もリスクが高いとは、失敗の潜在的なコストが最も大きいこと、またはバグが含まれている可能性が最も高いことを意味します。
どのようなアプローチを取ろうとも、最も生産的な方法は、小さなスタートから始め、簡単なテストを機能させ、進行するにつれてより大きく、より野心的なテストを構築することです。自動化の 少ない分がすでにないよりは良いことを覚えておきましょう。そして、小さくて管理しやすいステップが、最終的な目標に近づけてくれます。
エンドユーザー機能の観点で考える
Eggplant Functionalは、テスト対象のシステム(SUT)と"仮想ユーザー"として対話するため、ユーザーレベルの機能をテストするのに理想的です。ソフトウェアでユーザーが実行する高レベルのタスクの観点で考えてください:製品から価値を得るために、エンドユーザーにとってどの主要な機能が動作している必要がありますか?これらの機能をどのようにテストできますか?時間がある場合は、レベルを下げて、このプロセスを繰り返します。
ケント・ベックは、彼の著書Extreme Programming Explained(Addison Wesley Longman、2000)で、このテストの概念を非常にうまく説明しています。多くの人々は、テストカバレッジをアプリケーションのパーセンテージに関連付けたいと考えています。ベックは、測定できない目標を設定しないことを提案しています。彼らがアプリケーションの80%をテストすると言うとき、彼らは具体的に何を数えているのでしょうか?100%のテストは、すべての有効および無効なデータケースがテストされたことを意味しますか?それとも、システムオプションとアプリケーションオプションのすべての順列がテストされたことを意味しますか?より意義のある目標は、アプリケーションのすべての基本機 能をテストすることです。
可視インターフェイスに注意する
Eggplant Functionalによる自動化されたテストでは、実際のユーザーがどのようにテストしたい手順を実行するかを常に意識する必要があります。ユーザーが画面上で実際に表示されているものを見て、どのように操作するかを常に考慮しなければなりません。
例えば、次の操作をテストするとします。
- アイコンをダブルクリックしてウェブブラウザを起動します。
- アドレスフィールドにURLを入力します。
- Returnキーを押してページを読み込みます。
これらの操作が早すぎると、テキストが入力される前にブラウザが開かない可能性があります。人間のユーザーは、URLを入力する前にブラウザが開くのを待つことがわかっているので、スクリプトもそれを知る必要があります。WaitFor "Address field"コマンドがこれを解決します。
一貫したインターフェイスを確立する
ほとんどのオペレーティングシステムでは、インターフェイスをある程度カスタマイズできます。これは非常にユーザーフレンドリーですが、画像ベースのテストにはそうではありません。例えば、Macでは、現在選択されているメニューアイテムを示す色を選択できます。青でハイライトされたメニュー アイテムの画像をキャプチャしてから、ハイライトの色を灰色に変更すると、Eggplant Functionalは青を探し続け、おそらく失敗します。
SUTが制御するコンピュータであることが最善です。これにより、テストサイクルの間に他のユーザーによってカスタマイズされることはありません。そうでない場合は、使用するSUTのすべてに対して標準的な視覚設定を確立しようとしてください。設定をチェックし、標準と異なる設定を元に戻すスクリプトを作成することもできます。
ほとんどのオペレーティングシステムでは、デフォルトの設定が最適です。これにより、新しいSUTがすぐに使用できるようになり、使用されているSUTでもデフォルトの設定が多く使用される可能性があります。
Macの場合、System Preferences > Generalで以下の設定を見つけます:
- 外観:
青またはグラファイト,(外観で) - 利用可能な場合にLCSフォントの滑らかさを使用する(外観で)