mcpField
M
mobile-testing

mobile-testing

github.com/proffesor-for-testingテスト・品質520171 回インストール1 日前に更新
リポジトリ

mobile-testing について

iOS、Android、ハイブリッドアプリ、モバイル Web アプリを検証するチーム向けのモバイルテストスキルです。デバイスのカバレッジ計画に加え、プラットフォーム差、ジェスチャー、通信、権限、中断時の確認方法を扱います。

主な機能

  1. 01デバイスカバレッジマトリクスの計画
  2. 02iOS と Android の差異確認
  3. 03タッチジェスチャーの検証
  4. 04オフラインと中断のシナリオ
  5. 05実機とエミュレーターの使い分け指針

活用シーン

  1. 01モバイルアプリのリリース向けデバイスカバレッジ計画
  2. 02プラットフォーム固有の操作と権限のテスト
  3. 03ジェスチャーとオフライン動作の検証
  4. 04アプリストア申請に向けた準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill mobile-testing

インストール後、Claude Code で/mobile-testingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
mobile-testing.yaml
schemas/
output.json
scripts/
validate-config.json

詳細

モバイルテスト

<default_to_action> モバイルアプリケーションをテストする際は、次の手順に従います。

  1. デバイスカバレッジマトリックスを定義します(Tier 1:60%、Tier 2:30%、Tier 3:10%)
  2. プラットフォームごとの差異をテストします(iOS ≠ Android:戻るボタン、権限、UI)
  3. タッチジェスチャーを検証します(タップ、スワイプ、ピンチ、長押し)
  4. モバイル固有のシナリオをテストします(オフライン、低バッテリー、中断)
  5. クリティカルパスには実機を、迅速なフィードバックにはエミュレーターを使用します

モバイルテストのクイックチェックリスト:

  • 最新のiOSとAndroidのフラッグシップデバイスでテストします
  • オフラインモードとネットワーク切り替えをテストします
  • プッシュ通知が機能することを確認します
  • ジェスチャー操作(スワイプ、ピンチ)をテストします
  • 権限のフロー(カメラ、位置情報、通知)を確認します

重要な成功要因:

  • テストの80%にはエミュレーターを、クリティカルパスの20%には実機を使用します
  • ユーザーが実際に使用しているデバイスでテストします(分析データを活用)
  • デバイスの断片化は、Androidにとって最大の課題です </default_to_action>

クイックリファレンスカード

使用する場面
  • ネイティブアプリ開発(iOS/Android)
  • ハイブリッドアプリ(React Native、Flutter)
  • モバイルウェブ/PWA
  • アプリストアへの申請準備
iOSとAndroidの違い
項目iOSAndroid
OSバージョン2~3種類をサポート10種類以上が使用中
デバイス約40モデル1000以上のバリエーション
戻るボタンジェスチャー/ナビゲーションハードウェア/ソフトウェア
権限単一のプロンプト実行時の詳細な権限
アプリストア厳格な審査Google Play + サイドロード
デバイスカバレッジのティア
ティアカバレッジデバイス
Tier 1ユーザーの60%iPhone 15、Galaxy S24、iPad
Tier 2ユーザーの30%iPhone 14/13、Pixel 8
Tier 3ユーザーの10%旧型デバイス、その他のメーカー

モバイル固有のシナリオ

// Offline mode testing
test('app works offline', async () => {
  await driver.toggleAirplaneMode();

  await driver.findElement('view-saved-items').click();
  const items = await driver.findElements('saved-item');
  expect(items.length).toBeGreaterThan(0);

  const banner = await driver.findElement('offline-banner');
  expect(banner.getText()).toContain('No internet');

  await driver.toggleAirplaneMode(); // Restore
});

// Location testing
test('location-based features', async () => {
  await driver.setGeoLocation({
    latitude: 37.7749,
    longitude: -122.4194,
    altitude: 0
  });

  const stores = await driver.findElement('stores-list');
  expect(stores.getText()).toContain('San Francisco');
});

// Permission testing (Android)
test('camera permission flow', async () => {
  await driver.findElement('take-photo').click();

  // Handle permission dialog
  await driver.findElement(
    'com.android.packageinstaller:id/permission_allow_button'
  ).click();

  expect(await driver.findElement('camera-view')).toBeDefined();
});

エージェント主導のモバイルテスト

// Cross-platform mobile testing
await Task("Mobile Test Suite", {
  platforms: ['iOS', 'Android'],
  deviceTiers: [1, 2],
  tests: 'regression-suite',
  parallelDevices: 5,
  deviceFarm: 'browserstack'
}, "qe-test-executor");

// Device farm integration
await Task("Device Farm Execution", {
  service: 'browserstack',
  devices: [
    'iPhone 15 - iOS 17',
    'Samsung Galaxy S24 - Android 14'
  ],
  recordVideo: true,
  captureNetworkLogs: true
}, "qe-test-executor");

エージェント連携のヒント

メモリの名前空間
aqe/mobile-testing/
├── device-matrix/*      - Device coverage strategy
├── platform-tests/*     - iOS/Android specific tests
├── gesture-library/*    - Reusable gesture patterns
└── performance/*        - Mobile performance metrics
フリート連携
const mobileFleet = await FleetManager.coordinate({
  strategy: 'mobile-testing',
  agents: [
    'qe-test-executor',       // Cross-platform execution
    'qe-performance-tester',  // Mobile performance
    'qe-visual-tester'        // Screen size validation
  ],
  topology: 'parallel'
});

関連スキル


忘れずに

クリティカルなフローは実機でテストしてください。 エミュレーターでバグの80%を検出できますが、実際のパフォーマンス、センサーの動作、プラットフォーム固有の挙動を確認するには実機が必要です。

エージェントを使用する場合: qe-test-executor がデバイスファーム全体のテストを統括し、プラットフォーム間の差異を管理して、10台以上のデバイスを並列でテストします。

コメント