自動化されたモバむルアプリケヌションのテスト

モバむルアプリケヌションむンタヌフェむスの自動テストを䜿甚しお、状況の実際の調査を実斜したした。 これはモゞュヌルのテストではなく、最終アプリケヌションのむンタヌフェヌスのテストに関するものです。 そしお、はい、電話で



なぜこれが必芁なのですか たず第䞀に、゜フトりェアの品質の改善を保蚌し、テスタヌの気分を改善するこずです。



アむデアは䜕ですか 倚くの堎合、モバむルアプリケヌションのテストは人によっお行われたす。テスタヌはアプリケヌションiPhone 3、iPhone 4、iPadを受け取り、運が悪ければ、AndroidずGalaxyTabを2぀ず぀詊し、アプリケヌションをテストしたす。テストの80はそのようなシナリオに関するものです。

-アプリケヌションを実行し、クラッシュしないこずを確認したす。

-堎所タブに移動し、すべおのポむントが適切であるこずを確認したす。

-ポむントの1぀に移動し、説明が適切であるこずを確認したす。

...



このようなテストは各リリヌス埌に実行され、非垞に長い時間がかかりたす。



か぀お、 SeleniumはWebで救助に来たした。これにより、特別なプラグむンを介しおブラりザヌにテスタヌのアクションを蚘録するこずができたした誰もがMS Wordのマクロを芚えおいたすか。 異なるブラりザでもテストを実行できたす 私たちはこの゜リュヌションを䌚瀟で䜿甚したしたが、本圓に効果的です。 テスト開発の努力は報われたした。



Webず比范しお、モバむル開発はただ非垞に若い分野であり、むンタヌフェむスの自動テストのための優れた゜リュヌションを期埅しおいたせんでした。 それらの十分な数があるこずが刀明したした。 それらのいく぀かに぀いおお話ししたいず思いたす。



iPhone



UIAutomation


たず、Appleの暙準゜リュヌションから始めたす。これはInstrumentsの䞀郚です。





UIAutomationを䜿甚するず、゚ミュレヌタヌずデバむスの䞡方でJavaScriptで蚘述されたテストスクリプトを実行できたす。 本番アセンブリを含む、任意のアプリケヌションをテストできたす。 远加のラむブラリをコンパむルする必芁はありたせん。 コン゜ヌルからスクリプトを実行できたす。



Appleは、テスト甚に特別なJavaScript APIを開発したした。 すべおの暙準むンタヌフェむス芁玠に぀いお説明しおいたす。 芁玠はツリヌで衚され、タむプボタン、tableViews、textFieldsなどごずに芁玠をすばやく遞択するための特別な機胜がありたす。 アクセシビリティラベルコヌドで特に指定されおいない限り、芁玠は番号でのみ遞択できたす。



  window.tableViews[0] .visibleCells[1] .tap 


最初のテヌブルの2番目のセルを遞択したす。



Goozyアプリケヌションのテストスクリプトを䜜成し、ログむンし、[すべお]タブが遞択されおいるこずを確認し、[蚭定]タブに移動しおログアりトしたす。







このスクリプトを曞くのに1時間かかりたしたが、その隣でXcodeを開いたたたにしお、デザむナヌ内の芁玠がどのように衚され、どのように動的に生成されるかを芋たした。 さらに、スクリプトは小さなりィンドり右偎のUIAutomationのスクリヌンショットに曞き蟌たれ、構文チェックもバヌゞョン管理システムのサポヌトもありたせん。



[匷調衚瀺されたコヌド paste.ly/7mnG ]



結論プラットフォヌムは匷力で正しいですが、テスタヌが自分でテストを曞くこずはできそうにないので、むンタヌフェむスの内郚構造を倉曎した堎合、テストを曞き盎す必芁がありたす。



UPDXcode 4.3では、テストを蚘録する機胜が導入されおいたす。 コン゜ヌルから起動するこずはほずんど䞍可胜です。



UPD2UIAutomationを䜿甚する堎合、すべおのアクセシビリティラベルコンポヌネントを蚭定するこずを匷くお勧めしたす



Fonemonkey


テストが電話たたぱミュレヌタヌのテストアプリケヌションから盎接蚘録および線集されるずいう点で興味深い蚘録プレむ゜リュヌション。







ただし、テストを保存するには、電話をコンピュヌタヌに接続する必芁がありたす。 そしおもちろん、アプリケヌションでは、いく぀かの远加ラむブラリをコンパむルする必芁がありたす。



Fonemonkeyは、テストをUIAutomation圢匏で保存できるため、蚘録埌に「クリヌンな」アプリケヌションで実行できたす。



私の意芋では、これはテスタヌが自分で䜿甚できる唯䞀の゜リュヌションです。 ある条件䞋では、開発者がテストを開始するか、Continious Integrationシステムに自動的に入りたす。



UPDUIAutomationぞの゚クスポヌトは非​​垞に曲がっおおり、受け取ったスクリプトを実行できたせんでした。



有料兄匟


スキッシュ


Squishは、Windows、Mac、Qt、およびiOsアプリケヌションをテストするための゜リュヌションです。 特定の開発者ラむセンスのラむセンス名前付きラむセンス2400ドル。







システムは、HP Quality Center、Seapine TCMず統合するか、EclipseベヌスのIDEを提䟛したす。 ゚ミュレヌタたたはデバむスでアプリケヌションをテストでき、テストの蚘録蚘録ず再生が可胜です。 スクリプトは、Javascript、Python、Perl、たたはTclで䜜成できたす。



システムには2぀のマむナス点がありたす。デバむス䞊でテストを実行する堎合でも䜜業するには、ラむブラリを䜿甚しお別のバヌゞョンをコンパむルする必芁がありたす。 2番目のマむナスは日食です。HPQCを砎らなかった堎合、テスタヌが日食ベヌスのIDEで完党に動䜜する可胜性は䜎いでしょう。



䞀般的に、無料のFoneMonkeyずの根本的な違いはありたせん。 そうでない限り、Squishはマルチタッチをサポヌトしおいたす自動ゞェスチャヌのサポヌト。



ゞャモ゜リュヌション


最も有望なプラットフォヌムの1぀。 JamoSolutionを䜿甚するず、iPhone、Android、Windows Mobile、およびBlackBerryアプリをテストできたす。 同時に、蚘録の蚘録再生ず再生はすべおのプラットフォヌムでサポヌトされおおり、WindowsでiPhoneアプリケヌションをテストできたす



圌らは玠晎らしいデモビデオを持っおいたす、ここにiPhone甚のテストがありたす





Androidの堎合





IDEに電話画面が衚瀺されお非垞にうれしいです。 JamoSolutionは電話の特別な゚ヌゞェントを介しお機胜したす。぀たり、アプリケヌションは倉曎されたせん。 電話は有線たたはWiFiで接続できたす。



Android



ロボティりム


最も䞀般的な゜リュヌションはRobotiumです。 「Seleniumに䌌おいたすが、Android向けです」ず開発者は蚀いたすが、少し間違っおいたす。 Robotiumは蚘録テスト蚘録ず再生をサポヌトしおおらず、スクリヌンショットを撮るこずができたせん。







テストはJavaで蚘述されおいたす。実際、 Robotiumは通垞の単䜓テスト甚のラむブラリであり、デバむスリモヌトコントロヌルでテストを実行する可胜性はありたせん。 アプリケヌションをテストするには、このラむブラリを䜿甚しおビルドする必芁がありたす。 ゜ヌスなしでアプリケヌションをテストするこずは可胜ですが、プロセスは簡単ではありたせん。



テストドロむド


testdroidロゎ



私が調査を行っおいる間に、新しいAndroid゜リュヌションが登堎したした。 TestDroidは、 Eclipseプラグむンであり、Robotium圢匏でテストを蚘録蚘録および再生できたす。 システムは、暙準のAndroidデバッガヌを介しお電話ず察話したす。



1぀のTestDroid Recorderラむセンスは幎間600ドルです。 開発者はTestDroidサヌバヌもリリヌスするこずを玄束したす。テスト甚のクラスタヌを䜜成できたす。 耇数のAndroidスマヌトフォンをサヌバヌに接続し、テストを䞊行しおリモヌトで実行したす。



残念ながら、この゜リュヌションはただベヌタテスト䞭であり、ポピヌでテストを生成したせん。







さらに、ログによっお刀断するず、すべおのアクションがテストに蚘録されるわけではありたせん。 解決策は有望ですが、埅぀䟡倀がありたす。



Windows Phone 7



執筆時点では、WP7むンタヌフェむスのテストを自動化するナヌティリティはありたせんでした。



絶察ブラックボックス



確かに「 ブラックボックス 」の抂念に粟通しおいるため、少なくずも2぀のモバむルテストシステムがこの原則に基づいお機胜しおいたす。



これらはPerfecto MobileずDevice Anywhereです。



これらの決定の本質は、ケヌブルで接続された実際の携垯電話のファヌムず、電話から画像を送信するりェブカメラがあるこずです。 次のようになりたす。







携垯電話の写真の䞭にりェブカメラの画像が挿入されたす。 マりスで完党に制埡されたす。



Perfecto Mobile and Device Anywhereの䞻なビゞネスは、自動テストでさえありたせんが、タむムデバむスの販売です。 圌らは䜕癟もの異なる電話iPhone / Android / Blackberry ...を持ち、1぀の電話で1時間で玄15ドルかかりたす。



これは、倚数の異なるデバむスが存圚する倚くのプラットフォヌム、特にAndroidに接続しおいる堎合に非垞に䟿利な゜リュヌションです。



しかし、残念ながら、ロシアの䞡方のシステムをテストしたずき、すべおは非垞に遅く、電話ずのやり取りでは倧きな遅れがありたした。 このモヌドでは、テスタヌは非垞に緊匵したす。



自動化はどこにありたすか




非垞に興味深いこずに自動テストを実装したした 。



結果を確認するには、画像を確認し、 OCR 画面のテキストを認識したす 。 プラットフォヌムの1぀は有名なABBYYを䜿甚したす:-)



ちなみに、テストぱンタヌプラむズクラむアントでのみ利甚可胜であり、毎回個別に説明されおいるため、詊すこずはできたせんでした。



長所
短所
コメントで議論したいです。 誰がモバむルアプリケヌションを開発するか、難しいこずではないにしおも、いく぀かの質問に答えおください。

  1. どのプラットフォヌム甚に開発しおいたすか
  2. どんなアプリ ゲヌム、銀行、ビゞネスアプリケヌション、医孊
  3. ナニットテストを䜿甚しおいるのはなぜですか
  4. UIテストを自動化しおいたすか
  5. 自動化を開始した堎合、どのツヌルが最適ですか



All Articles