Test infrastructure for desktop apps

Parallel VMs with configurable Windows and macOS images for testing native apps.

Invite your agent to the pack

Run every test, all at once

QA Wolf runs your whole suite in parallel, each test on its own Windows or Mac VM, booted and logged in before the test asks for it. Every VM is used once and destroyed, so no test inherits another's files, settings, or logins.Read more

One desktop suite of 100 tests, each two to ten minutes long. QA Wolf starts every test at the same time, each on its own Windows or Mac VM, so they finish one after another and the suite is done when the longest is, in 10 minutes. Done yourself on a grid of 4 parallel VMs, each running one test at a time, it takes 2 hours and 31 minutes.

Pre-installed test dependencies

Configure your setup script to load Windows and Mac images with licensed add-ins, runtimes, other apps, certificates, and settings.

A fresh VM, Windows or macOS, boots, and its software is installed before its test starts: the tools every image has, like Chrome and Adobe Acrobat, and the ones your own setup script adds, like Office, a licensed add-in, a runtime, or your certificates. Then it's ready for its test. After the test, that VM is gone, and the next one starts the same way.

Control your app and the OS

Build and run complex tests that drive everything your users touch, from your app's menus to the installer, the file system, and OS notifications.

  • Installers

    Install your app from an .exe, .msi, .msix, .dmg, or .pkg, the way your users do.

  • Menus and the menu bar

    Open your app’s menus, from the Mac menu bar to Windows context menus, and pick any item.

  • First-run dialogs

    Start every test past welcome screens and setup prompts, cleared in the machine image.

  • Licensed software

    Run apps that need licensed add-ins or your own setup, in a private machine image.

  • Files in and out

    Push a file onto the machine to import, then pull the export back and check it.

  • PDF checks

    Check the PDFs your app exports for PDF/A compliance, with veraPDF on the machine.

  • OS notifications

    Check the notifications your app sends to Windows or macOS, not just its own screens.

  • Several apps in one test

    Hand data from your app to another, like an export into Excel, and check it landed.

  • Screenshots that match

    Pin each app's window to one size, so screenshot baselines match on every run.

  • Legacy Win32 apps

    Drive older Win32 and Delphi apps, even fields that have no name.

  • Apps behind your firewall

    Reach internal APIs and license servers from one IP range you allowlist.

  • Commands on the machine

    Run PowerShell or shell commands on the machine to set up state or check it.

Run Rules orchestrate VMs, browsers, APIs, and mobile devices

Modern apps collaborate with multiple users on desktops, browsers, and phones. With QA Wolf's multi-platform infrastructure you can test an integrated experience across all of them, not just separate steps.

One test across a desktop app on a Windows computer, a web app in a browser, an iPhone, and the back-end systems they share: an API, a database, and a push service. Sam, signed in to the desktop app, saves an invoice, and the API stores it in the database; the test checks it through the API, which answers 200; the web app, signed in as Sam too, shows the invoice; and the push service sends the notification to Sam's iPhone. The test passes.

Options for secure and private apps

Build your back end into the VM image, keep a private pool just for your team, or connect to your network over VPN.

SOC 2 Type 2 · HIPAA

Three options, one after another. Back end in the image: your app, your server and its database are copied from your image onto a fresh VM, so the app and its back end run side by side and the test never leaves the VM. Private pool: in QA Wolf's cloud, other teams' VMs come and go, while your tests run only on your team's VMs, inside a ring with a lock on it. VPN: your team's VM connects through a VPN to your network, and your license server, internal API and database answer.

Every run gets a clean machine

Every test, and every retry, gets a new Windows or Mac VM that's used once and destroyed, so no installed files, settings, saved logins, or stray processes carry over. A failure points to your app, not to the last run.

An exploded view of a desktop VM, Windows or Mac: the machine, and above it a layer for each thing a run can leave behind: files, running processes, saved logins, settings, the app's data, and the app itself. Between runs the layers spread apart, each is cleared, the app is installed new, and they close up again, so the next run starts clean.

Test artifacts that show devs exactly what broke

Every run keeps a video of the whole desktop, the app's logs, and every check it made, so you can see why a test failed without running it again.

The bug report QA Wolf filed when run 4471 of a desktop invoicing app's test failed: saving a new invoice times out after an import. It carries the run's video, trace, code and logs. Its recording plays the Windows desktop the test ran on, from installing the app, through signing in, importing last month's invoices and filling in a new invoice, to the save failing at 1:59, which is marked on the seek bar, where the app's status bar says it couldn't save the invoice. Under it, the test's six steps: the first four passed; saving the invoice failed, its check that the status bar says "Invoice saved" failing, with SyncError: save timed out in the app's log; and exporting it as a PDF didn't run.

The desktop test infrastructure you'd otherwise build

Running desktop tests yourself means a fleet of Windows VMs, racks of Macs, images to keep current, and engineers to keep it all running. QA Wolf has built all of it, and it's included.

What a team needs to run its own desktop app tests at scale: a Windows VM fleet with warm pools, Mac hardware within Apple's two-VM limit, OS images with the automation tools built in, logged-in desktop sessions, app delivery onto new machines, screen streaming and recording, cleanup, network allowlisting, and engineers to run it. All of it is included on QA Wolf.

For developers

Introduce your agent to QA Wolf.

Add this server to Claude Code, Codex, Cursor or any MCP client, then ask for your first test.

  • Claude CodeInstall
  • CodexInstall
  • Other agentshttps://app.qawolf.com/api/mcp
Setup for each agent

For engineering leaders

See QA Wolf on your app.

Get a walkthrough on your own product and a plan for the coverage you need.

Contact sales
Ask from
  • Slack
  • Teams
  • GitHub
  • GitLab
  • Claude Code
  • Codex
  • Cursor
Send bugs to
  • Linear
  • Jira
Your data

QA Wolf doesn’t train or fine-tune models on customer data. Privacy Policy