2

こんにちは自動化/iOSエキスパート、

最近、新しいiPhoneアプリプロジェクトを立ち上げました。AppleのUIAutomation Instrumentsを使用して、いくつかの基本的な受け入れテストを自動化したいと考えています。これで、このタスクの非常に基本的なフレームワークができました。このフレームワークは、Appleが提供する基盤となるJS関数をJavaでカプセル化し(デバッグ機能を提供するため)、Junitによるテストを推進します。テストはiPhoneシミュレーターで実行されます。

つまり、背景はInstruments + Eclipse + Java + Junit +iPhoneSimulatorです。

テストを書いているときに、テストはアプリの「状態」に大きく影響されることがわかりました。たとえば、アプリは最初の実行時にある種の「利用規約」ページを表示しますが、iPhoneシミュレーターがリセットされるまで表示されません。ユーザーが「利用規約」に同意すると、「ホームページ」ページに移動します。ここで、検索条件を入力して「検索」をクリックすると、検索結果ページに移動します。次に、彼女は「詳細の表示」ページに移動できます。

TOU->ホーム->検索結果->詳細の表示。

これは私の実際のアプリの非常に単純化されたバージョンにすぎないことに注意してください。

ここで質問があります:ビュー詳細機能を自動的にテストするために、私のテストは前のすべてのステップを実行しますか(アプリが状態を保存せずに常に新しく起動されると仮定します)?または、テストでいくつかの前提条件を想定する必要がありますか(アプリが「検索結果」にあると想定した「詳細の表示」テストなど)?

理由を教えてください。そして、私の母国語ではないので、私の英語が理解しにくい場合は申し訳ありません。

ありがとう!

ヴィンス

4

1 に答える 1

0

「前提条件」/「既知のベースライン」/「既知の状態」は自動化に最適です。UIテストの場合はさらに多くのバリエーションがあり、テストの実行内容とは関係のない問題でテストが失敗する可能性があります。

したがって、自動化の観点から、「詳細の表示」テストに直接進みます。自動テストスクリプトの大部分は、これらのタイプの機能領域にあります。TOUなどはリセット/インストールごとに1回です。したがって、2つのオプション:

  1. 最初に自動スクリプトを実行してTOUをクリアして終了し、次にホームページや検索などを処理する他のすべてのテストを実行します。または...
  2. TOUを手動でクリアしてから、他のすべてのテストを実行します。
  3. ボーナスオプション:TOUが表示されるべきではないため、リセットごとにTOUが複数回表示されないことをテストすることもできます。これは、毎回実行する1回目と2回目のテストである可能性があります。次に、残りのテストを実行します。

自動化されたものが常に表示されるTOUに依存している場合、最初のテストの後、TOUは次のリセット/テストサイクルまで表示されないため、他のテストは失敗します。すべての自動テストの開始時に「ハンドラー」を配置して、TOUページを条件付きで管理できます。この状況では、上記のオプション#1を使用します。

于 2012-07-24T10:12:38.473 に答える