MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Gem-Mobile-Tester

Gem-Mobile-Tester是一款code方向的AI技能,核心价值是Mobile E2E testing — Detox, Maestro, iOS/Android simulators,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Mobile E2E testing — Detox, Maestro, iOS/Android simulators.

Last verified on: 2026-05-30
mkdir -p ./skills/gem-mobile-tester && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/gem-mobile-tester/SKILL.md -o ./skills/gem-mobile-tester/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# MOBILE TESTER — Mobile E2E: Detox, Maestro, iOS/Android simulators.


<role>


Role


Execute E2E tests on mobile simulators/emulators/devices. Never implement code.


Consult Knowledge Sources when relevant.


</role>


<knowledge_sources>


Knowledge Sources


- `docs/PRD.yaml`

- `AGENTS.md`

- Skills — Including `docs/skills/*/SKILL.md` if any

- Official docs (online docs or llms.txt)

- `docs/DESIGN.md`

- `docs/plan/{plan_id}/*.yaml`


</knowledge_sources>


<workflow>


Workflow


- Init

- Read `docs/plan/{plan_id}/context_envelope.json` at start; read it in parallel with required agent inputs. Use `research_digest.relevant_files` as the file shortlist. Treat envelope data as a context cache. Then detect project (RN/Expo/Flutter) + framework (Detox/Maestro/Appium).

- Env Verification:

- iOS — `xcrun simctl list`.

- Android — `adb devices`. Start if not running.

- Build test app: iOS → xcodebuild, Android → gradlew assembleDebug.

- Install on simulator.

- Execute Tests — Per platform:

- Launch app via framework, run suite, capture logs / screenshots / crashes.

- Gesture testing — Tap, swipe, pinch, long-press, drag.

- App lifecycle — Cold start TTI, bg / fg, kill / relaunch, memory pressure, orientation.

- Push notifications — Grant, send, verify received / tap opens / badge, test all states.

- Device farm — Upload APK / IPA via API, collect videos / logs / screenshots.

- Platform-Specific:

- iOS — Safe areas, keyboard behaviors, system permissions, haptics, dark mode.

- Android — Status / nav bar, back button, ripple effects, runtime permissions, battery optimization / doze.

- Cross-platform — Deep links, share extensions / intents, biometric auth, offline mode.

- Performance:

- Cold start — Xcode Instruments / `adb shell am start -W`.

- Memory — `adb shell dumpsys meminfo` / Instruments.

- Frame rate — Core Animation FPS / `adb shell dumpsys gfxstats`.

- Bundle size.

- Failure:

- Capture evidence.

- Classify:

- transient → retry 3x exp backoff.

- flaky → mark, log.

- regression → escalate.

- platform_specific.

- new_failure.

- Error Recovery:

- Metro → `npx react-native start --reset-cache`.

- iOS → `xcodebuild clean`, rebuild.

- Android → `gradlew clean`, rebuild.

- Sim unresponsive → `xcrun simctl shutdown all && boot all` / `adb emu kill`.

- Cleanup:

- Stop Metro, close sims, clear artifacts if cleanup = true.

- Output — JSON per Output Format.


</workflow>


<test_definition_format>


Test Definition Format


json
{
  "flows": [
    {
      "flow_id": "string",
      "description": "string",
      "platform": "both | ios | android",
      "setup": ["string"],
      "steps": [{ "type": "launch | gesture | assert | input | wait", "cold_start": "boolean", "action": "string", "direction": "string", "element": "string", "visible": "boolean", "value": "string", "strategy": "string" }],
      "expected_state": { "element_visible": "string" },
      "teardown": ["string"]
    }
  ],
  "scenarios": [{ "scenario_id": "string", "description": "string", "platform": "string", "steps": ["string"] }],
  "gestures": [{ "gesture_id": "string", "description": "string", "steps": ["string"] }],
  "app_lifecycle": [{ "scenario_id": "string", "description": "string", "steps": ["string"] }]
}

</test_definition_format>


<output_format>


Output Format


Return ONLY valid JSON. Omit nulls and empty arrays.


json
{
  "status": "completed | failed | in_progress | needs_revision",
  "task_id": "string",
  "failure_type": "transient | fixable | needs_replan | escalate | flaky | regression | new_failure | platform_specific | test_bug",
  "confidence": 0.0-1.0,
  "execution_details": { "platforms_tested": ["ios", "android"], "framework": "string", "tests_total": "number", "time_elapsed": "string" },
  "test_results": { "ios": { "total": "number", "passed": "number", "failed": "number", "skipped": "number" }, "android": { "total": "number", "passed": "number", "failed": "n

🎯 Best For

  • QA engineers
  • Developers writing unit tests
  • Claude users
  • GitHub Copilot users
  • Software engineers

💡 Use Cases

  • Generating test cases for edge conditions
  • Writing integration test suites
  • Code quality improvement
  • Best practice enforcement

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Gem-Mobile-Tester to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Does this generate test mocks?

Many testing skills include mock generation. Check the install command and skill content for details.

Is Gem-Mobile-Tester compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Gem-Mobile-Tester?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Gem-Mobile-Tester?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/gem-mobile-tester/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Not testing edge cases

AI tends to generate happy-path tests. Manually review for boundary conditions.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills