# Mobile Testing Overview

{% hint style="info" %}
**Who is this for?** SDETs and QA managers who need to test iOS and Android apps without maintaining a local device lab or writing platform-specific automation code.
{% endhint %}

ContextQA extends its no-code AI test automation to native mobile applications. You can upload an APK or IPA, select a real device from the cloud device farm, generate test steps from a plain-English prompt, and execute across multiple device/OS configurations — all without writing a single line of code.

## What Mobile Testing Covers

ContextQA supports the full mobile QA lifecycle:

* **Platform support**: Android (APK) and iOS (IPA)
* **Real device farm**: Tests run on physical devices, not simulators or emulators, giving accurate performance and rendering results
* **AI test generation**: Describe a user journey in plain English; ContextQA generates and executes the steps against your uploaded app build
* **Mobile gestures**: Tap, swipe, scroll, long press, pinch, and zoom are all supported as first-class test actions
* **Session recording**: Every execution is video-recorded; review replays and AI logs from the Run History page
* **Parallel execution**: Run the same suite across multiple devices simultaneously using mobile concurrency slots
* **Test plans**: Combine multiple device configurations (iOS 16, iOS 17, Android 13, Android 14) in a single orchestrated test plan

## How Mobile Testing Differs from Web Testing

| Aspect            | Web Testing           | Mobile Testing                             |
| ----------------- | --------------------- | ------------------------------------------ |
| App entry point   | URL                   | APK or IPA file upload                     |
| Device selection  | Browser + OS          | Real device from device farm               |
| Interaction model | Click, type, navigate | Tap, swipe, scroll, long press, pinch/zoom |
| iOS signing       | Not applicable        | Provisioning profile required              |
| Concurrency unit  | Browser session       | Device slot                                |

When creating a test case, selecting **Mobile Application** as the target platform switches the UI from URL input to app build selection.

## Key Concepts

### Device Farm

ContextQA operates a cloud-hosted fleet of physical Android and iOS devices. You do not need to provision, maintain, or connect any local hardware. Devices are identified by make, model, and OS version (for example, Pixel 5 on Android 14, or iPhone 14 on iOS 17).

### Mobile Concurrency

Each workspace has a fixed number of concurrent mobile device slots. When a test plan runs with parallel execution enabled, ContextQA distributes test cases across available slots. Use the `get_mobile_concurrency` MCP tool to check how many slots are available before triggering a large run.

```python
# MCP tool call — check available mobile concurrency
get_mobile_concurrency()
```

### Provisioning Profiles (iOS Only)

iOS apps distributed outside the App Store must be signed with an Apple Developer provisioning profile. Before running any iOS test, upload the `.mobileprovision` file to ContextQA via **Settings → Provisioning Profiles**. ContextQA stores it securely and applies it automatically when installing your IPA on the device farm.

### App Builds

Uploaded APK and IPA files are called "app builds" within ContextQA. Each build is stored centrally in **Test Development → Uploads** and can be referenced by name across test cases and test plans. You can maintain multiple versions of the same app and select the correct build per test run.

## Navigation Map

Mobile testing spans several areas of the ContextQA workspace:

| Task                         | Navigation path                                                       |
| ---------------------------- | --------------------------------------------------------------------- |
| Upload APK / IPA             | Test Development → Uploads                                            |
| Manage provisioning profiles | Settings → Provisioning Profiles                                      |
| Create a mobile test case    | Test Development → New Test Case → Mobile Application                 |
| Filter mobile test cases     | Test Development → Filter → Test Type: Mobile                         |
| Create a test suite          | Test Development → Test Suites → Create Test Suite (Platform: Mobile) |
| Build a test plan            | Test Development → Test Plans → Create Test Plan                      |
| View execution results       | Test Development → Test Plans → View                                  |

## In This Section

* [Prerequisites](https://learning.contextqa.com/mobile-testing/prerequisites) — app file requirements, iOS provisioning profiles, device farm regions
* [Uploading Apps](https://learning.contextqa.com/mobile-testing/uploading-apps) — APK and IPA upload workflow, versioning, file size limits
* [Creating Mobile Tests](https://learning.contextqa.com/mobile-testing/creating-mobile-tests) — test case creation, device selection, gesture support, AI generation, execution
* [Mobile Test Plans](https://learning.contextqa.com/mobile-testing/mobile-test-plans) — test suites, multi-device test plans, concurrency, environment setup, scheduling

{% hint style="info" %}
**Test iOS and Android in parallel — same workflow as web** [**Book a Demo →**](https://contextqa.com/book-a-demo/)
{% endhint %}
