モバイルアプリは、銀行サービスからゲーム、マーケットプレイスまで、あらゆる場所で私たちを取り巻いています。しかし、開発者やテスターにとって、これは一つのことを意味します。すべてのアプリケーションが同じようにうまく機能する必要があるということです。 数十種類のデバイス、OSバージョン、画面でこの課題にどう対処すれば、混乱に溺れることなく済むでしょうか?一緒に考えてみましょう!

モバイルテストが難しいのはなぜですか?
異なるバージョンのAndroidとiOS。
さまざまな「ハードウェア」を備えた数百種類のスマートフォンモデル。
さまざまな画面サイズとピクセル密度。
ネットワークのパフォーマンスと速度は大きく異なります。
プッシュ通知、カメラへのアクセス、ジオロケーション、バックグラウンド作業を追加すると、チェックする必要のあるシナリオがたくさんあります。
テストへのアプローチ
1.実際のデバイスでの手動テスト
最も信頼性が高いですが、最も手間のかかる方法です。テスターはさまざまなスマートフォンやタブレットを使用して、インストール、ログイン、ボタン操作、応答速度などのシナリオを手動でチェックします。
マイナス: 数十台のデバイスが必要です。
プラス: これは現実に近いものです。
2.エミュレータとシミュレータ
AndroidエミュレーターとiOSシミュレーターを使用すると、物理デバイスなしで基本的なロジックをテストできます。これは、開発の初期段階に便利です。
プラス: 迅速かつ無料で。
マイナス: カメラ、センサー、バッテリーの動作を確認することはできません。
3. クラウドデバイスファーム
サービスの例 BrowserStack, Sauce Labs または Firebase Test Lab 「クラウド」内の数百の実際のデバイスへのアクセスを提供します。自動テストを実行するか、ブラウザから直接目的の電話に手動で接続できます。
プラス: ハードウェアの予算節約。
マイナス: 小規模チームにとっては、サブスクリプションは高価になる可能性があります。
自動化は救いですか?
手動テストは重要ですが、自動化なしでは十分ではありません。最もよく使用されるのは次のとおりです。
Appium — AndroidとiOSに対応した汎用ツール
Espresso (Android) と XCUITest (iOS) — 高速でネイティブなフレームワーク
Detox — React Nativeアプリケーション用。
自動テストを使用すると、起動と登録、画面間の移動、エラー処理、さまざまな解像度でのUIの正確性をワンクリックで確認できます。

気が狂わないためのクールなライフハック
デバイスに優先順位を付けます。 すべてのモデルをテストするのではなく、オーディエンスの上位10モデルをテストします。
メソッドを組み合わせます。 自動テスト+実際のデバイスでの手動チェック=速度と品質のバランス。
メトリックを監視します。 クラッシュ、応答時間、バッテリーテストは、隠れた問題を見つけるのに役立ちます。
実際の状況でテストしてください。 インターネットが弱い、GPSがオフ、メモリが不足しているなど、これらはすべて典型的な状況です。
モバイルテストは、ストレスを感じながら、テーブルの上にたくさんの携帯電話を置いて行うものではありません。 エミュレーター、クラウドサービス、自動化、チームの神経を維持しながら、高品質の製品を達成することができます。
また、リリース後にバグを修正するよりも、テスト段階でバグをキャッチする方が安価であることを覚えておくことも重要です。
モバイルテスト、自動化、QAのベストプラクティスなどのトピックは、当社の Kodikのテレグラムチャンネル.
一緒に学びましょう!
