testing-mobile-apps

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

1,868 stars

Best use case

testing-mobile-apps is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

Teams using testing-mobile-apps should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/testing-mobile-apps/SKILL.md --create-dirs "https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/main/plugins/testing/mobile-app-tester/skills/testing-mobile-apps/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/testing-mobile-apps/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How testing-mobile-apps Compares

Feature / Agenttesting-mobile-appsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Mobile App Tester

## Overview

Execute automated mobile application testing on iOS simulators and Android emulators covering UI interactions, navigation flows, gesture handling, and platform-specific behaviors. Supports Appium, Detox (React Native), XCUITest (iOS native), Espresso (Android native), and Maestro for cross-platform mobile testing.

## Prerequisites

- Mobile testing framework installed (Appium, Detox, Maestro, or native XCUITest/Espresso)
- iOS Simulator via Xcode (macOS only) or Android Emulator via Android SDK
- Application build artifact (`.app`, `.apk`, or `.ipa`) or bundled dev server (React Native)
- Appium drivers installed (`uiautomator2` for Android, `xcuitest` for iOS) if using Appium
- Node.js for JavaScript-based test runners

## Instructions

1. Configure the test environment:
   - List target devices/simulators: specify OS versions, screen sizes, and orientations.
   - Build the application for testing (`xcodebuild`, `./gradlew assembleDebug`, or `npx react-native build`).
   - Start the emulator/simulator or connect physical devices.
   - Install the app on the target device.
2. Create test cases for core mobile interactions:
   - **Tap and navigation**: Tap buttons, navigate between screens, verify back navigation.
   - **Text input**: Fill forms, verify keyboard behavior, test autocomplete and paste.
   - **Scrolling**: Scroll lists, verify lazy loading, test pull-to-refresh.
   - **Gestures**: Swipe (carousel), pinch-to-zoom, long press, drag-and-drop.
   - **System interactions**: Handle permission dialogs, push notifications, deep links.
3. Test platform-specific behaviors:
   - iOS: Safe area insets, notch handling, Dynamic Type, VoiceOver accessibility.
   - Android: Back button behavior, multi-window, different navigation patterns, TalkBack.
   - Both: Screen rotation (portrait/landscape), dark mode, low battery mode.
4. Implement device-specific test configurations:
   - Define capability sets for each device/OS combination.
   - Use test tagging to run subsets on specific platforms (`@ios`, `@android`).
   - Configure screenshot capture on failure for visual debugging.
5. Handle asynchronous mobile behaviors:
   - Wait for animations to complete before assertions.
   - Handle network loading spinners with explicit waits.
   - Account for system dialogs (permissions, updates) that interrupt test flow.
6. Run the test suite and capture results:
   - Execute tests per platform: `npx detox test --configuration ios.sim.debug`.
   - Collect device logs, screenshots, and crash reports.
   - Generate JUnit XML or Allure reports for CI integration.
7. Set up CI pipeline for mobile testing (GitHub Actions macOS runners for iOS, Linux for Android).

## Output

- Mobile test files organized by feature/flow in `tests/mobile/` or `e2e/`
- Device configuration profiles for each target device/OS combination
- Screenshot captures for visual validation and failure debugging
- Test results in JUnit XML format with device-specific metadata
- CI pipeline configuration for automated mobile test execution

## Error Handling

| Error | Cause | Solution |
|-------|-------|---------|
| Simulator/emulator fails to boot | Insufficient disk space or corrupted simulator image | Delete derived data and reset simulator; increase disk allocation; recreate the emulator AVD |
| App crashes on launch during test | Missing permissions or incompatible OS version | Check minimum deployment target; grant required permissions in test setup; verify app signing |
| Element not found | Element ID changed or screen did not finish loading | Use accessibility IDs instead of XPath; add explicit waits; verify element visibility before interaction |
| Test flaky on CI but passes locally | CI runner has slower CPU/GPU affecting animations and timing | Increase wait timeouts for CI; disable animations in developer settings; use dedicated CI hardware |
| Permission dialog blocks test | System alert appeared over the app UI | Auto-dismiss alerts in test setup; pre-grant permissions via `xcrun simctl` or ADB commands |

## Examples

**Detox test for React Native login flow:**
```javascript
describe('Login Flow', () => {
  beforeAll(async () => { await device.launchApp(); });
  beforeEach(async () => { await device.reloadReactNative(); });

  it('logs in with valid credentials', async () => {
    await element(by.id('email-input')).typeText('user@test.com');
    await element(by.id('password-input')).typeText('password123');
    await element(by.id('login-button')).tap();
    await expect(element(by.id('home-screen'))).toBeVisible();
  });
});
```

**Maestro flow file:**
```yaml
appId: com.example.myapp
---
- launchApp
- tapOn: "Sign In"
- inputText:
    id: "email-input"
    text: "user@test.com"
- inputText:
    id: "password-input"
    text: "password123"
- tapOn: "Submit"
- assertVisible: "Welcome"
```

## Resources

- Appium documentation: https://appium.io/docs/en/latest/
- Detox (React Native): https://wix.github.io/Detox/
- Maestro mobile testing: https://maestro.mobile.dev/
- XCUITest: https://developer.apple.com/documentation/xctest/user-interface-tests
- Espresso (Android): https://developer.android.com/training/testing/espresso

Related Skills

testing-visual-regression

1868
from jeremylongshore/claude-code-plugins-plus-skills

Detect visual changes in UI components using screenshot comparison. Use when detecting unintended UI changes or pixel differences. Trigger with phrases like "test visual changes", "compare screenshots", or "detect UI regressions".

performing-security-testing

1868
from jeremylongshore/claude-code-plugins-plus-skills

Test automate security vulnerability testing covering OWASP Top 10, SQL injection, XSS, CSRF, and authentication issues. Use when performing security assessments, penetration tests, or vulnerability scans. Trigger with phrases like "scan for vulnerabilities", "test security", or "run penetration test".

testing-load-balancers

1868
from jeremylongshore/claude-code-plugins-plus-skills

Validate load balancer behavior, failover, and traffic distribution. Use when performing specialized testing. Trigger with phrases like "test load balancer", "validate failover", or "check traffic distribution".

testing-browser-compatibility

1868
from jeremylongshore/claude-code-plugins-plus-skills

Test across multiple browsers and devices for cross-browser compatibility. Use when ensuring cross-browser or device compatibility with BrowserStack, Sauce Labs, LambdaTest, or Kobiton. Trigger with phrases like "test browser compatibility", "check cross-browser", "validate on browsers", "test on real devices", "kobiton test".

automating-api-testing

1868
from jeremylongshore/claude-code-plugins-plus-skills

Test automate API endpoint testing including request generation, validation, and comprehensive test coverage for REST and GraphQL APIs. Use when testing API contracts, validating OpenAPI specifications, or ensuring endpoint reliability. Trigger with phrases like "test the API", "generate API tests", or "validate API contracts".

performing-penetration-testing

1868
from jeremylongshore/claude-code-plugins-plus-skills

Perform security testing on web applications, APIs, and codebases. Use when the user asks to "run a security scan", "check for vulnerabilities", "audit dependencies", "check security headers", "find security issues", "pentest", "security audit", or "scan for secrets". Trigger with "pentest", "security scan", "vulnerability check", "audit dependencies", "check headers", "find secrets".

backtesting-trading-strategies

1868
from jeremylongshore/claude-code-plugins-plus-skills

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

load-testing-apis

1868
from jeremylongshore/claude-code-plugins-plus-skills

Execute comprehensive load and stress testing to validate API performance and scalability. Use when validating API performance under load. Trigger with phrases like "load test the API", "stress test API", or "benchmark API performance".

api-testing-helper

1868
from jeremylongshore/claude-code-plugins-plus-skills

Api Testing Helper - Auto-activating skill for API Development. Triggers on: api testing helper, api testing helper Part of the API Development skill category.

performing-visual-regression-testing

1868
from jeremylongshore/claude-code-plugins-plus-skills

This skill enables Claude to execute visual regression tests using tools like Percy, Chromatic, and BackstopJS. It captures screenshots, compares them against baselines, and analyzes visual differences to identify unintended UI changes. Use this skill when the user requests visual testing, UI change verification, or regression testing for a web application or component. Trigger phrases include "visual test," "UI regression," "check visual changes," or "/visual-test".

performance-testing

1868
from jeremylongshore/claude-code-plugins-plus-skills

This skill enables Claude to design, execute, and analyze performance tests using the performance-test-suite plugin. It is activated when the user requests load testing, stress testing, spike testing, or endurance testing, and when discussing performance metrics such as response time, throughput, and error rates. It identifies performance bottlenecks related to CPU, memory, database, or network issues. The plugin provides comprehensive reporting, including percentiles, graphs, and recommendations.

automating-mobile-app-testing

1868
from jeremylongshore/claude-code-plugins-plus-skills

This skill enables automated testing of mobile applications on iOS and Android platforms using frameworks like Appium, Detox, XCUITest, and Espresso. It generates end-to-end tests, sets up page object models, and handles platform-specific elements. Use this skill when the user requests mobile app testing, test automation for iOS or Android, or needs assistance with setting up device farms and simulators. The skill is triggered by terms like "mobile testing", "appium", "detox", "xcuitest", "espresso", "android test", "ios test".