noqa

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 8 GitHub stars
Code Uyari
  • Code scan incomplete — No supported source files were scanned during light audit
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Agentic QA automation for mobile apps and games

README.md

noqa

Agentic QA automation for mobile apps and games

noqa.ai · Documentation · Download

noqa is an AI agent that tests mobile apps and games from natural-language test cases. It works purely from screenshots — with no accessibility tree or view hierarchy — and controls the real app on iOS and Android devices, simulators, or in the cloud, returning per-step pass/fail with video and screenshots.

  • Any framework, even games — no locators — native, React Native, Flutter, Unity, Unreal, and non-native UI (maps, canvases, WebViews, ads) all test the same, with no locators or scripts.

  • CLI with automatic grounding — your coding agent drives a real device from the terminal: read the screen, act by plain-language description (noqa grounds it — no coordinates), and manage test cases.

    noqa action tap -d "Blue login button at the bottom"

  • Runs on real devices — plus simulators, emulators, and cloud devices.

noqa CLI grounding demo

Purely visual test automation

noqa works from screenshots, unlike locator-based tools (Appium · Maestro · XCUITest).

Locator-based noqa
Native apps
iOS & Android
Cross-platform apps
React Native, Flutter
Partial
Non-native UI
webviews, canvases, ads, maps
Games
Unity, Unreal, Godot
Alerts & pop-ups
permissions, system dialogs
Flaky
Natural-language tests
no code
Real devices
physical phones, not just simulators
Partial

Quick start

1. Install the app. Download noqa and keep it running — the CLI talks to it locally.

2. Create a free account.

3. Install the CLI and skill. In the app, open Settings → Tools → Install CLI (adds noqa to your PATH) — and click Install skill too, so your coding agent knows the commands out of the box. Restart your terminal afterward. The skill also lives here in skills/noqa-testing if you'd rather add it manually.

4. Connect a device. List devices, pick one, and connect:

noqa devices ios                       # list iOS devices & simulators (or: noqa devices android)
noqa devices connect <device-id>       # connect to one from the list

5. Get your app on the device. Install your build (Xcode, Expo, Android Studio) and bring it to the foreground:

noqa action activate-app --bundle-id com.example.app

6. Debug it in an inspect → act → verify loop.

noqa screen                                    # inspect: read the current UI as a structured element tree
noqa action tap -d "Login button"              # act: one step, by description — grounding (recommended)
noqa action tap --x 500 --y 320                # …or by relative coordinates (0–1000) as a fallback
noqa screen                                    # verify: confirm the state changed as expected

CLI

Point your coding agent at the CLI and it drives the device in a tight inspect → act → verify loop — read the screen, take one action, check the result, repeat. Two command groups make up the loop.

Reading the screen

noqa screen                 # cleaned element tree — meaningful elements with relative coordinates (0–1000)
noqa screen --full          # raw Appium accessibility tree, unfiltered
noqa screenshot ./shot.png  # save a screenshot for a visual check

Your agent reads the screen on every step, so read cost dominates. The cleaned tree keeps the meaningful elements with exact positions — far lighter than the raw tree, cheaper than a screenshot. Measured on one paywall screen:

Screen read Tokens vs noqa screen
noqa screen ~800
noqa screenshot ~1,500 ~2×
noqa screen --full ~5,600 ~7×

Actions

Every gesture targets an element two ways. Working out pixel coordinates is error-prone for a coding agent, so it's easier to use automatic grounding — describe the element in plain language and noqa places it on screen.

noqa action tap -d "Blue login button at the bottom"    # tap
noqa action tap -d "Login button" --double              # double tap
noqa action tap -d "Login button" --duration 2          # long-press, in seconds
noqa action swipe -d "photo carousel, swipe left"       # swipe
noqa action drag -d "card onto the drop zone"           # drag
noqa action input -d "email field" --text "[email protected]"  # type into a field

Or target by coordinates (0–1000, read from noqa screen) as a fallback:

noqa action tap --x 500 --y 320                         # tap
noqa action swipe --x1 500 --y1 800 --x2 500 --y2 200   # swipe between two points
noqa action drag --x1 300 --y1 500 --x2 700 --y2 500    # drag between two points
noqa action input --x 500 --y 640 --text "[email protected]"   # tap a field and type

App and system controls take no target:

noqa action activate-app --bundle-id com.example.app    # bring an app to the foreground
noqa action terminate-app --bundle-id com.example.app   # force-quit an app
noqa action restart-app --bundle-id com.example.app     # terminate and relaunch
noqa action background-app                              # send the current app to the background
noqa action open-url --url "https://appium.io"          # open a deep link or URL
noqa action alert --action accept                       # accept a system alert (or --action dismiss)

Full command reference: docs.noqa.ai/docs/cli.

Test cases

A test case is a title, optional tags, and one or more flows. Each flow is written in plain language — no code, no selectors.

A noqa test case
  • Title — a short name for the test.
  • Tags — optional labels to group and filter cases (smoke, regression, …).
  • Instructions — what the agent should do, step by step.
  • Expected result — what it should verify after each step (optional).

Create and manage them in the app or from the CLI:

noqa cases create myapp '{"title": "Login", "tags": ["smoke"], "flows": [{"instructions": "tap Sign in, enter credentials", "result": "home screen shows"}]}'
noqa cases list myapp                       # list cases (ID, TITLE, TAGS)
noqa cases get myapp 42                      # show a case as JSON
noqa cases update myapp 42 '{"title": "…"}'  # edit fields of a case

See Writing good test cases.

Production-ready testing

Beyond the free CLI, a subscription unlocks noqa's own agent and, for teams, the full platform.

noqa agent

Our own agent, built specifically for mobile testing rather than a general-purpose model driving a device. Hand it your test cases and it runs them autonomously on the device, returning per-step pass/fail.

  • Fast — 5–10s per action, dropping to 1–2s on screens it has already seen.
  • Cheaper per action than a frontier LLM API.
  • Reports — per-step pass/fail with video and screenshots.

Agentic QA platform

Everything in the noqa agent, scaled for teams — run the whole suite in the cloud and wire it into your workflow.

  • 1000+ cloud devices.
  • Unlimited seats, with shared test cases and builds.
  • Integrations — Slack, Jira, CI/CD, Webhooks, API, MCP server.
  • Priority support.

Full pricing → noqa.ai/pricing.

Requirements

The app

  • Mac with Apple Silicon (M1 or later)
  • macOS 13 or later

iOS testing — real devices & simulators

  • Xcode 16.0+ with Command Line Tools
  • Apple Developer account (for signing and provisioning)
  • A real device on iOS 15+ (trusted, visible in Finder), or an iOS Simulator

Android testing — real devices & emulators

  • Android Studio 2023.1+ (Android SDK + adb)
  • A real device on Android 6.0 (API 23)+ with USB debugging enabled, or an emulator with Google Play Services

Learn more

New to agentic testing? The guide covers it end to end:

FAQ

Which devices and platforms are supported?
iOS and Android — real devices, simulators, and emulators locally, plus cloud devices. noqa drives them through Appium (XCUITest on iOS, UiAutomator2 on Android).

Which frameworks and engines are supported?
All of them. noqa works purely from screenshots, so it doesn't depend on how the app is built: native, React Native, Flutter, Unity, Unreal, and non-native UI like maps, canvases, WebViews, and ads.

Do I need to integrate an SDK or change my app?
No. Nothing to add or change in your app.

Do I need an account, and do I have to pay?
An account is required — grounding and test cases run through noqa's servers — but a free one is enough. You only pay to run the noqa agent and use cloud features.

Does noqa work on Windows or Linux?
Not yet — the app currently runs only on Mac with Apple Silicon.

Can I use it with Claude Code / Cursor / Codex?
Yes, through the CLI. Any coding agent that can run shell commands drives noqa; install the noqa-testing skill so it knows the commands.

Yorumlar (0)

Sonuc bulunamadi