# Frequently asked questions Source: https://www.minitap.ai/docs/minitest/get-started/faq Short answers to what QA leads and engineers ask before and after they start with Minitap, each with the page that holds the details. The questions teams ask us most, from the first evaluation to the hundredth run, each with a short answer and a link to the page that goes further. Can't find yours? [Book a call](https://cal.com/team/minitap/minitap-get-access?overlayCalendar=true) or ask in your Slack channel with the team. ## Evaluating Minitap > [accordion] How is Mini different from scripted test automation? > > A scripted test replays fixed steps against fixed elements, so someone updates it every time a screen changes. Mini starts from a scenario written in plain English, with acceptance criteria. At every step it reads the screen, acts toward the goal of the scenario and checks what changed, so a moved button or a new pop-up leaves the run on track. When your app changes for good, Mini drafts the update to the scenario itself. See [How Mini tests your app](/docs/minitest/get-started/how-mini-tests). > [accordion] Where does our QA team fit in? > > Mini takes on the repetitive work: writing scenarios, running them on every build, keeping them current and triaging what fails. Your QA and engineering teams keep the calls that matter: what to cover, what counts as a bug and when to ship. In practice they review Mini's drafts, answer its questions during a run and correct it with a **Not a bug** note when it gets a result wrong. See [Meet Mini](/docs/minitest/get-started/meet-mini). > [accordion] Which platforms and devices does Mini test on? > > iOS apps run on cloud iPhone and iPad simulators, Android apps on cloud phone and tablet emulators, and both can run on physical phones assigned to your workspace (in beta, requested from the device picker). Web apps run in Chrome, Firefox and Edge at desktop, tablet and mobile sizes, plus Safari on iPhone and Chrome on Android. You pick the devices for each run in **Run tests → Choose devices**. See [Devices](/docs/minitest/setup/devices) and [Web apps](/docs/minitest/setup/web-apps). > [accordion] What can't Mini test yet? > > Face ID, fingerprint, NFC and Bluetooth pairing, real SMS and calls (a static code covers phone sign-in), push notifications on Android, and real money (sandbox payments work). For backend questions, Mini checks the screen against the API responses your app receives and can call your test backend API; it doesn't read your database or server logs. Unit, integration, load and security testing are out of scope. A criterion that needs one of these comes back **Not tested**. The full list is in [Capabilities](/docs/minitest/reference/capabilities). > [accordion] What does Mini need from us to get started? > > An app to test: a branch of your repository, an `.ipa`, `.apk` or `.aab` you upload, or your web app's URL. Then a test account for each kind of user Mini should sign in as, some context about your product, and your existing test cases if you have them. You can skip anything you don't have yet: Mini asks again when it needs it. The [quickstart](/docs/minitest/get-started/quickstart) walks through the setup in the order the dashboard shows it. ## Setting up > [accordion] Do we have to connect our repository? > > Either way works. You can upload a build from the dashboard or the CLI, or point physical iPhones at a TestFlight link. Connecting GitHub, GitLab or Bitbucket lets Mini build your iOS and Android app from the commit each run needs. On GitHub it also posts a check on your pull requests and keeps your suite in step with what lands on the default branch. See [Builds from your repository](/docs/minitest/setup/builds-from-repo) and [Upload a build](/docs/minitest/setup/upload-a-build). > [accordion] We already have a test plan. Can Mini start from it? > > Yes. Hand Mini a spreadsheet, a document or a zip of your tests during onboarding, or later in **Ask Mini**, and it turns every case into scenarios. Your case IDs, test values and expected results are kept as written, and you can check that every case made it. See [Import your tests](/docs/minitest/suite/import-tests). > [accordion] How does Mini get past sign-in, email codes and phone OTP? > > Attach a test account to each scenario that needs one. Email codes and magic links go to `@qa.minitap.ai` test inboxes that Mini reads during the run, and your team can read the same emails in **View emails** on the account or in the run report's **Emails** tab. Phone sign-in works with a static code you pin for a test number in staging, and Google sign-in uses accounts Minitap maintains for you. See [Test accounts](/docs/minitest/setup/test-accounts) and [Test inboxes](/docs/minitest/setup/test-inboxes). > [accordion] Should Mini test production or a staging environment? > > Point Mini at a staging URL or a pull-request preview that our cloud can reach, and give it test accounts made for testing. Keep production data and production credentials on your side: Mini never asks for them. Real payment card data, health data and children's data don't belong in a test either; sandbox test cards are fine. See [what not to give Mini](/docs/minitest/workspace/security#what-not-to-give-mini). > [accordion] Our app sits behind a firewall, a VPN or a country restriction. > > Each case has its own way in. For an app that blocks some countries or cloud traffic, turn on **Proxy: test from another country** in **App settings → General**. For hosts that only exist inside your network, a private network connector runs on your side (Enterprise plan). For an IP allowlist, ask the Minitap team for the addresses to allow, and a staging password goes in **Test suite → Knowledge**. See [Private apps](/docs/minitest/setup/private-apps). > [accordion] Can Mini test in-app purchases? > > Yes, with sandbox buyers so nobody is charged. On iOS cloud simulators purchases work with nothing to set up. Physical iPhones need a TestFlight or Ad Hoc build and a Sandbox Apple Account, and purchases on Android run on physical Android phones, since cloud emulators run without Google Play. Set it up per app in **Builds & test data → In-app purchases**; the feature is in beta. See [In-app purchases](/docs/minitest/setup/in-app-purchases). ## Runs and results > [accordion] How long does a run take? > > It depends on how long your scenarios are and how many run at once. Scenarios that don't depend on each other run in parallel, each on its own device, up to the parallel capacity of your plan. A run also includes the time to get the build ready, wait for a free device or test account, install the app and score each failure, so it takes longer than its videos. Splitting long scenarios into short, independent ones is the first thing to try when runs feel slow. See [Why is my run so long?](/docs/minitest/troubleshooting/runs#why-is-my-run-so-long) > [accordion] Can Mini run in our CI and block a merge? > > Yes. On GitHub Actions, the Minitap GitHub Action signs in with the workflow's OIDC token; GitLab CI, CircleCI, Jenkins and every other CI use the `minitest` CLI with a workspace API key. Both can wait for the verdict and fail the job when a scenario fails. On pull requests, turn on **Block merge on failing tests** in **Workbench → CI & Maintenance** and add the check to your required status checks. See [Run Mini from your CI](/docs/minitest/runs/ci) and [Pull request checks](/docs/minitest/runs/pull-request-checks). > [accordion] What do we get when a scenario fails? > > The recording of the device, with **Expected** and **Actual** side by side for each failed criterion, the steps to reproduce and Mini's analysis of the root cause. The timeline under the video jumps to the moment each criterion was decided. Every failure also comes with a fix prompt you can paste into Cursor or Claude. See [Read a run report](/docs/minitest/runs/run-report). > [accordion] Can we trust a failure? How flaky is Mini? > > Mini gives a failure only with evidence specific to that criterion. When the call depends on interpretation, it gets a second reading with a different method, and when its own action could explain the failure, it redoes the step cleanly before it blames your app. A device problem restarts the scenario on a fresh device, while a failure in your app is reported as it happened. When Mini can't prove an outcome either way, the criterion shows **Not tested** and Mini tells you what stopped it. See [how each criterion is judged](/docs/minitest/get-started/how-mini-tests#how-each-criterion-is-judged). > [accordion] What happens when Mini gets a result wrong? > > Click **Not a bug** on the finding and say why in a sentence, the way you'd explain it to a new tester. Mini checks your note against the recording, clears the issue when it agrees, and keeps what it learned for the scenario, for every scenario with one of its tags, or for the whole app. The same false alarm doesn't come back on the next run. See [How Mini learns from your feedback](/docs/minitest/get-started/how-mini-learns). > [accordion] Who keeps the tests up to date? > > Mini does, with your team approving what matters. It watches what lands on your default branch and opens a draft in **Workbench → Proposed changes** with new scenarios, retired ones and criteria rewritten for the new UI. Each change is checked on a device first; drafts that need nobody merge on their own, and a draft that removes a scenario or found what looks like a bug waits for you. New test accounts and device files are the two things you add by hand. See [Mini maintains your suite](/docs/minitest/suite/mini-maintains-your-suite). > [accordion] How do we know Mini tested the right build? > > Click **Run info** on the run page: it shows the app version, build number, build source, build ID, commit and branch. For a TestFlight build on a physical iPhone, the scenario view also shows the version the phone installed. To test one exact commit, start the run from that commit with the GitHub Action or `minitest run from-commit`. See [Did Mini run the right build?](/docs/minitest/troubleshooting/runs#did-mini-run-the-right-build) ## Security and data > [accordion] Where does Minitap run? > > On every plan, in Minitap's managed cloud, in the EU or the US, your choice, with data encrypted in transit and at rest. On Enterprise, you can have a dedicated instance in your region, or run Minitap in your own cloud or on your own servers. See [Where it runs](/docs/minitest/workspace/security#where-it-runs). > [accordion] Do the AI models train on our data? > > Minitap doesn't use customer content to train models, on any plan, and your content is never shown to another customer or sold. Mini sends a model only what a test needs: screenshots and page text, the scenario and its criteria, and code or ticket context when it writes or updates a test. Zero data retention at the model providers is available on request on Scale and Enterprise. See [What the models see](/docs/minitest/workspace/security#what-the-models-see). > [accordion] How long do you keep our data? > > Test results and recordings are kept 90 days at most, sensitive test data 30 days at most, and your content is deleted within 30 days of the end of your contract. Test account passwords are encrypted per workspace and never shown in a report. See [What we keep, and for how long](/docs/minitest/workspace/security#what-we-keep-and-for-how-long). > [accordion] Do you support single sign-on, and how do we run a security review? > > Every plan signs in with email and password, Google or GitHub, with Owner, Admin and Member roles. Single sign-on with SAML or OIDC, SCIM provisioning and audit-log streaming are part of the Enterprise plan. Our SOC 2 Type II audit is in progress; the subprocessor list and the documents we share under NDA are in the [trust center](https://trust.minitap.ai). Bring your questionnaire to a call and we sign the DPA with your contract. See [Request a security review](/docs/minitest/workspace/security#request-a-security-review). ## Pricing > [accordion] How much does Minitap cost? > > The plan depends on your apps, so we size it with you: how many apps and platforms, how many tests each release needs and how often you ship. Team, Scale and Enterprise run the same Mini and differ in parallel capacity, service and hosting. Team runs 6 mobile devices and 10 web browsers at once, Scale runs 8 and 15, and Enterprise is scoped to your release program. You can pay monthly or annually. See [Pricing](https://www.minitap.ai/pricing). > [accordion] Do you charge per user or per build? > > Every plan includes every user, build, recording and report, so developers, QA engineers, product managers and support can all have an account. Extra parallel sessions are a line you can add on any plan, for the months you need them. [Plans, usage and billing](/docs/minitest/workspace/billing) says what counts as usage. To invite your team, see [Members and roles](/docs/minitest/workspace/members). > [accordion] Can we try it on our own app first? > > Yes. During a pilot of about two weeks, Mini learns your app, writes a suite and runs it on your builds. Bring a build and a test account. Minitap is invite-only for now: [book a call](https://cal.com/team/minitap/minitap-get-access?overlayCalendar=true) and we send your invitation after a short walkthrough. ## Next steps > [card] [Quickstart for mobile](/docs/minitest/get-started/quickstart) > > Connect your iOS or Android app and watch Mini run your first regression. > [card] [What Mini can and can't do](/docs/minitest/reference/capabilities) > > Every ability, platform by platform, and the limits. > [card] [Security and data](/docs/minitest/workspace/security) > > Where Minitap runs, what it stores, and what the models see. > [card] [Troubleshooting runs](/docs/minitest/troubleshooting/runs) > > Long runs, Mini's questions, the wrong build and false failures. # How Mini learns from your feedback Source: https://www.minitap.ai/docs/minitest/get-started/how-mini-learns What happens when you mark a result Not a bug, where Mini keeps what it learned, and how to see or undo the change. Every time you tell Mini a result was wrong, it learns from it, so the same false alarm doesn't come back on the next run. This page covers the **Not a bug** note, where Mini keeps what it learned, and the two places to check it: **Test suite → Knowledge** and a criterion's history. ## Tell Mini it got something wrong On an issue, open **What happened?** and click **Not a bug**. The same button sits on each finding in the run's scenario view. Mini asks **Why is this not a bug?**: answer in a sentence or two, the way you'd explain it to a new tester, or pick one of the answers **Suggested by Mini**. ```text theme={"theme":{"light":"github-light","dark":"vesper"}} The banner is supposed to stop after the last slide. That's the new design. ``` When the panel shows **Applies to**, say where the note holds: **This scenario**, every scenario with one of its tags, or **The whole app**. Then click **Submit feedback**. The steps and the other triage actions are on [Issues](/docs/minitest/triage/issues#mark-it-not-a-bug). ## What Mini does with your note Mini reads your note against the evidence of the run and replies in the issue's **History**: * **Not a bug**: Mini agrees, and the issue is cleared. * **Failure is real**: the recording still shows a problem. Mini says why, and the issue stays open for you to triage. Then it keeps what your note taught it, where it belongs: * **For the whole app.** A rule about how your app works, like "prices include VAT", goes into what Mini knows about the app. Every scenario benefits from it. * **For a scenario or a tag.** Something true only there is kept with that scenario, or with every scenario carrying the tag, and Mini reads it the next time it runs them. * **For the criterion.** If the criterion's wording led to the wrong verdict, Mini suggests a new one. **History** shows **Suggested editing this criterion**, and the change only applies once someone accepts it. Your note is context for the next run, never an automatic pass. Mini still judges every criterion from what it sees on the device. ## See what Mini learned **Test suite → Knowledge** shows what Mini reads before every run, and where each piece came from. Two parts matter here: * **Recently learned** lists what Mini changed in its knowledge on its own. Open one to see the change. * Each change names its source, and a change that came from your triage reads **Not a bug feedback**. **History** on each tab lists every change, and **Restore this version** puts an earlier one back from the next run. The full tour of the page, and what to write down yourself, is on [Knowledge](/docs/minitest/setup/knowledge). ## See how a criterion changed Every acceptance criterion keeps its versions. Open the scenario from **Tests**, click **More actions** (the **⋯** button), then **Criteria history**, and pick the criterion. Each version shows its number, **Current** on the latest, when it changed, who changed it, and where the change came from: | Source | What it means | | - | - | | **Initial** | The criterion as it was first written. | | **Manual edit** | Someone on your team edited it. | | **Mini suggestion accepted** | Mini proposed the wording and someone accepted it. | | **Mini suggestion (edited) accepted** | Someone adjusted Mini's proposal before accepting it. | | **Reverted** | Someone went back to an earlier version. | Each version also counts the runs where it passed and failed. **Revert** brings an earlier wording back as a new version, so the history stays intact. Like a manual edit, it moves the criterion's open issues to **Fixed**, waiting for the next run to confirm. ## When the same issue comes back If a criterion you marked **Not a bug** fails again, its issue opens flagged **Came back after "Not a bug"**, with your earlier note under **Prior feedback**. Two actions help: **Improve the feedback**, to give Mini the context it missed, and **Reconsider the criterion** when it keeps flipping between pass and fail, which usually means it needs rewording. ## Feedback inside a draft When a check on a draft fails and you think Mini is wrong, click **Not a bug** and tell Mini what it got wrong. Mini fixes the scenario and checks it again, without using up a fix attempt. See [Working with Mini](/docs/minitest/suite/workbench). ## Next steps > [card] [Knowledge](/docs/minitest/setup/knowledge) > > What Mini knows about your app, and how to edit it. > [card] [Triage issues](/docs/minitest/triage/issues) > > Fix, file a ticket, set aside or mark Not a bug. > [card] [Verdicts and severity](/docs/minitest/runs/verdicts) > > What each verdict means, and when to override one. # How Mini tests your app Source: https://www.minitap.ai/docs/minitest/get-started/how-mini-tests What Mini does while it runs a scenario. How it reads the screen, decides what to do next, checks every action, and decides each acceptance criterion. Mini tests your app the way a careful QA engineer would. It reads the screen, does one thing, checks what happened, and repeats until it has a result for every acceptance criterion. Every verdict comes with the moment in the video it's based on. This page explains that loop at a high level, so you know what to expect from a run and how to read its results. We don't publish the models or prompts behind Mini. They change as we improve it. ## What happens when a run starts For each scenario in a [run](/docs/minitest/runs/triggering-a-run), before Mini does anything: 1. A device or browser is ready, with your [build](/docs/minitest/setup/builds-from-repo) installed and the app launched, or your web app open. 2. The screen recording starts. It runs until Mini has finished the scenario. Scenarios that depend on each other, like sign-in then checkout, run one after another on the same device, so the next one starts where the previous one left the app. Other scenarios run on their own devices, in parallel. See [dependencies](/docs/minitest/suite/anatomy). Mini then reads the scenario, its acceptance criteria, and [Mini's memory](#what-mini-knows-before-it-starts) for your app. If the scenario has a [test account](/docs/minitest/setup/test-accounts), Mini signs in with it. Email codes, phone OTP, and Google sign-in are handled for it. ## The test loop ```text theme={"theme":{"light":"github-light","dark":"vesper"}} Observe → Act → Check → (repeat) → Judge each criterion ``` **Observe.** Mini reads the screen the way a person does: it looks at what's rendered, the text, images, colors, and layout, and understands what's in front of it. On top of that, it uses the accessibility services of the device, the same ones screen readers rely on. They tell Mini exactly which buttons, fields, and text are on screen, so it can move through the app quickly and confirm the app's state precisely, for example that a field holds the right value or a toggle is really on. Mini uses whichever fits the question, and often both. Some screens expose nothing to accessibility services, like games, canvases, or some web views. There, Mini works from what it sees, and finds what to tap by describing it, the way you'd point at it. **Act.** Mini taps, types, swipes, and scrolls like a user. It works toward the goal of the scenario, so a moved button or a new pop-up doesn't break the run. When the next steps are predictable, like filling a field and pressing **Continue**, Mini can do them together. Each step still has to succeed before the next one runs, and the check is part of the same move. **Check.** After every action, Mini confirms what changed before it decides anything else. What it read about the screen before an action is never reused after it, because the screen may have moved. For loading, Mini waits for the thing it expects to appear, or for the screen to settle. ## When the app does something unexpected * **Pop-ups and permission dialogs.** Mini handles them the way a real user would. If a criterion is about the dialog itself, Mini judges that first, then moves on. * **Short messages.** Toasts and snackbars can disappear before anyone looks. Mini can review the recording to catch them. * **An action had no effect.** Mini doesn't repeat the same tap blindly, since that could submit a form twice. It looks again, waits, or tries a different gesture. * **Mini can't get past something.** A missing account, test data it doesn't have, or a wall a user couldn't pass either. Mini stops and asks you instead of inventing a workaround a real user would never try. ## How each criterion is judged Mini gives every acceptance criterion its own verdict, while the evidence is fresh. * **Passed** means Mini did every part of the criterion and saw the outcome. A message saying "Saved" isn't enough: Mini checks the thing was actually saved. * **Failed** needs evidence specific to that criterion. When the call depends on interpretation, Mini gets a second reading with a different method before it reports. If something is supposed to be missing, Mini confirms it's really missing in two different ways. * **Mini rules itself out first.** If a failure could be explained by Mini's own action, like a mistyped value or a tap that didn't land, Mini redoes the step cleanly before it blames your app. * **Not proven isn't failed.** If Mini couldn't prove the outcome either way, or something outside your app got in the way, it doesn't report a failure. It tells you what stopped it, and asks you when it needs something. See [when the verdict is Unprocessable](/docs/minitest/runs/run-report#when-the-verdict-is-unprocessable). * **One bug stays one bug.** When a failure makes the next criteria impossible to reach, those are marked as skipped rather than failed again. Criteria that don't depend on the failure are still tested. * **When Mini stops early.** If the app won't start, or the build is clearly broken from the first step, Mini reports that and skips the rest instead of guessing. Each failure then gets a **severity** (Critical, Warning, or Pass) based on what your app does and what matters in it. A failure Mini couldn't verify is never marked Pass. Those add up to the scenario's [verdict](/docs/minitest/runs/run-report). ## What you get For every scenario in a run: * The video of the device. Each verdict points at the stretch of the video it's based on, so you can watch exactly what Mini saw. * The steps Mini took. * What Mini observed for each criterion, and why it reached its verdict. * A [fix prompt](/docs/minitest/runs/run-report#fix-prompt) for each failure, ready to paste into Cursor or Claude. A failure in your app is never retried until it passes: it's reported. Mini may also notice UX problems you didn't ask it to check. Those become [suggestions](/docs/minitest/triage/suggestions) and never change a verdict. ## Why a run takes longer than its videos The video only covers the time Mini spends in your app. A run also includes: * **Before the video:** getting the build ready (or building it from your repo), waiting for a free device or a free test account, waiting for the scenarios it depends on to finish, then installing and launching the app. * **After the video:** saving the recording and scoring each failure's severity before the verdict appears. * **Retries:** if a device or our infrastructure has a problem, the scenario runs again from the start on a fresh device. The run page shows an estimate of the time left while the run is in progress. The videos are shorter than the time Mini spent on the device too, on purpose. We cut the stretches where nothing moves on screen, like loading or waiting, so you can review a scenario as fast as possible. Each video is also split into segments that take you straight to the moments that matter, like the step behind a failed criterion. ## What Mini knows before it starts Before every run, Mini reads two things: * **[Knowledge](/docs/minitest/setup/knowledge)** about the app: what the app does, how it's organized, which accounts to use for what, and your app's own names for its screens and features. You can edit it, and Mini adds to it as it learns. * **What it learned about this scenario** from past runs and from your triage. When you mark a result as not a bug or explain a failure, Mini keeps that for the next run. See [How Mini learns from your feedback](/docs/minitest/get-started/how-mini-learns). Both are context, not answers. Mini still judges every criterion from what it sees on the device in this run, so a run always tests the build in front of it. ## Writing criteria Mini can judge well Mini judges what it can observe on the device. The clearer the criterion, the more reliable the verdict. | Instead of | Write | | - | - | | The checkout works | After tapping **Pay**, the order confirmation screen shows an order number | | The page loads fast | The product list appears without an error message | | The test account looks good | The test account shows the name and email used to sign up | | The notification is sent | A banner saying "Order shipped" appears in the app | See [how to write a scenario](/docs/minitest/suite/anatomy) for more. # Meet Mini Source: https://www.minitap.ai/docs/minitest/get-started/meet-mini The AI QA engineer on your team. What it takes off your plate, where it runs, and where you'll work with it. ![Mini, the Minitap AI QA engineer](https://mintcdn.com/minitap-30239763/wLvqfpOkfUc7rcKB/minitest/images/meet-mini.svg?fit=max\&auto=format\&n=wLvqfpOkfUc7rcKB\&q=85\&s=bdf7a08369be50a4f802d1e20b632c9b) Mini is the AI QA engineer that joins your team. It writes your scenarios, runs them on every build, keeps them in step with the app and triages whatever fails. Your QA and engineering teams keep the calls that matter: what to cover, what counts as a bug, and when to ship. ## What Mini takes off your plate > [card] [Writing the suite](/docs/minitest/suite/anatomy) > > Mini reads your code, your docs and your existing test plan, explores the app, and drafts the scenarios worth running. > [card] [Running it](/docs/minitest/runs/triggering-a-run) > > On every pull request, on a schedule, from Slack, Jira or the CLI. Scenarios that don't depend on each other run in parallel. > [card] [Keeping it current](/docs/minitest/suite/mini-maintains-your-suite) > > A screen moves or a feature ships, and Mini updates the scenarios to match this week's build. > [card] [Triaging failures](/docs/minitest/triage/issues) > > Each failure comes with the video, the criterion that broke, device logs and a fix prompt for Cursor or Claude. Mini also points out what you didn't ask it to check, like a button below the fold or a confusing empty state. Those land as [suggestions](/docs/minitest/triage/suggestions), and you decide which are worth your time. ## Where Mini runs | App | Devices | | - | - | | **iOS** | Cloud simulators, or iPhones assigned to your workspace | | **Android** | Cloud emulators, or Android phones assigned to your workspace | | **Web** | Chrome, Firefox and Edge, plus Safari on iPhone and Chrome on Android | Mini [builds your app from your repository](/docs/minitest/setup/builds-from-repo) or takes the build you upload. It signs in with the [test accounts you attach](/docs/minitest/setup/test-accounts), and handles email codes, phone OTP and Google sign-in on its own. For Google sign-in, Minitap maintains the accounts for you. ## Mini learns from your team When you mark a result as **Not a bug** and say why, Mini keeps that for the next run, for the whole app or for that one scenario. The same false alarm doesn't come back. See [How Mini learns](/docs/minitest/get-started/how-mini-learns). ## Where you'll work with Mini > [card] [In the dashboard](https://app.minitap.ai) > > Chat with Mini, review scenarios, watch runs and triage issues. > [card] [In Slack](/docs/minitest/integrations/mini-in-slack) > > Live progress for every run, runs started from a message, and triage in the thread. > [card] [On your pull requests](/docs/minitest/integrations/github) > > A Minitap check on every PR, green when the suite passes on that build. > [card] [From your editor](/docs/minitest/integrations/cursor-and-claude) > > Your coding agent writes scenarios and starts runs through the CLI. # Quickstart: mobile app Source: https://www.minitap.ai/docs/minitest/get-started/quickstart From your invitation to the first regression run of your iOS or Android app. About ten minutes of your time; Mini does the rest. You give Mini an app, a few accounts and some context. Mini explores the app, writes the scenarios, checks each one on a device and runs your first regression. This page walks through that path for an iOS or Android app, in the order the dashboard shows it. Testing a web app? Follow the [web quickstart](/docs/minitest/get-started/quickstart-web). > [!NOTE] > > Minitap is invite-only for now. [Book a call](https://cal.com/team/minitap/minitap-get-access?overlayCalendar=true) and we'll send your invitation after a short walkthrough. **1. Accept your invitation** Open the invitation email, sign in, and click **Get started** on the welcome screen. Your workspace is already created; you land straight in the setup. **2. Connect your code and your tools** Three optional screens, each with a **Set up later** button: * **Your repository** on GitHub, GitLab or Bitbucket. Mini builds your iOS and Android apps from any commit and posts a check on your pull requests. See [GitHub](/docs/minitest/integrations/github). * **Slack**, for live run updates in a channel and runs started from a message. See [Mini in Slack](/docs/minitest/integrations/mini-in-slack). * **Jira and Confluence, Linear or Notion**, so Mini reads your tickets and docs and files what it finds in your tracker. You can connect any of them later from **Settings → Integrations**. **3. Tell Mini about your app** **Let's get Mini ready** is a short conversation. Mini asks for: * **The app**: a name, the **Mobile app** type, and its platforms. * **What to test**: a branch of your repository, or an `.ipa`, `.apk` or `.aab` you upload. See [Upload a build](/docs/minitest/setup/upload-a-build). * **Test accounts**, one per kind of user Mini should sign in as. Pick **My app has no sign-in** if there's nothing to sign in to. * **Context** about your product: special flows, expected behaviors, environment details. Documents work too. * **Your existing tests**, if you have any. Upload a CSV export or a zip and Mini imports them, case IDs included. Skip anything you don't have yet. Mini asks again later when it needs it. **4. Mini explores your app** Mini installs the build on a device and walks through the app screen by screen. You can watch it live. When it's done, it shows you the map of screens it found and asks **Happy with the map?** **5. Review the scenarios** From the map and everything you shared, Mini drafts the scenarios worth running, each with its acceptance criteria. Every draft is checked on a device before it counts as ready. If Mini hits something it can't guess, like a missing account or an ambiguous expected result, it asks you in the chat. **6. Run your first regression** Click **Approve & run first regression**. If a few questions are still open, **Skip & run** starts the scenarios that are ready now and keeps the others as drafts until you answer. ## What you get back A run report: a verdict for every scenario, the video of the device, and for each failure the criterion that broke, the device logs and a [fix prompt](/docs/minitest/runs/run-report#fix-prompt) ready for Cursor or Claude. ![A scenario in the run report: the device recording on the left, a warning finding with Expected and Actual, the other criteria passed, and the timeline of criteria at the bottom](https://mintcdn.com/minitap-30239763/QCLbAMcddko_3eZy/minitest/images/app/run-report-scenario.png?fit=max\&auto=format\&n=QCLbAMcddko_3eZy\&q=85\&s=e29cbaa93ed7a8984ad774595e443c06) A scenario in the run report. ## Next steps > [card] [Check every pull request](/docs/minitest/runs/pull-request-checks) > > Get a verdict on each PR before it merges. > [card] [Read a run report](/docs/minitest/runs/run-report) > > What each verdict means and how to act on a failure. > [card] [Shape your scenarios](/docs/minitest/suite/anatomy) > > What a scenario contains, and the parts only you can provide. > [card] [Work with Mini in the chat](/docs/minitest/get-started/working-with-mini) > > Ask for new scenarios, import a test plan, explain a result. # Quickstart: web app Source: https://www.minitap.ai/docs/minitest/get-started/quickstart-web From your invitation to the first regression run of your web app, on the browsers and screen sizes your users have. You give Mini a URL or a repository, a few accounts and some context. Mini opens your site in a browser, explores it, writes the scenarios, checks each one and runs your first regression. This page walks through that path for a web app, in the order the dashboard shows it. Testing an iOS or Android app? Follow the [mobile quickstart](/docs/minitest/get-started/quickstart). > [!NOTE] > > Minitap is invite-only for now. [Book a call](https://cal.com/team/minitap/minitap-get-access?overlayCalendar=true) and we'll send your invitation after a short walkthrough. **1. Accept your invitation** Open the invitation email, sign in, and click **Get started** on the welcome screen. Your workspace is already created; you land straight in the setup. **2. Connect your code and your tools** Three optional screens, each with a **Set up later** button: * **Your repository** on GitHub, GitLab or Bitbucket. For a web app, Mini builds and serves each commit it tests, so you don't need a deployed URL, and it posts a check on your pull requests. See [GitHub](/docs/minitest/integrations/github). * **Slack**, for live run updates in a channel and runs started from a message. See [Mini in Slack](/docs/minitest/integrations/mini-in-slack). * **Jira and Confluence, Linear or Notion**, so Mini reads your tickets and docs and files what it finds in your tracker. You can connect any of them later from **Settings → Integrations**. **3. Tell Mini about your app** **Let's get Mini ready** is a short conversation. For a web app, Mini asks for: * **The app**: a name, and **Web app** as its kind. * **Where people open it**: pick the devices and browsers your users have, and Mini tests the same ones. You need at least one. * **Your repository**, if you didn't connect it earlier. With a repository, Mini builds every commit itself. * **The URL** to open, when there's no repository: your production site, a staging host or any address Mini can reach. * **Test accounts**, one per kind of user Mini should sign in as. Pick **My app has no sign-in** if there's nothing to sign in to. * **Context** about your product: specs, designs, boards. Documents work too. * **Your existing tests**, if you have any. Upload a zip, a CSV export, Markdown or a PDF and Mini starts from there. * **Files** your scenarios upload, like a photo or a document. Skip anything you don't have yet. Mini asks again later when it needs it. **4. Mini explores your app** Mini opens your site in a browser and walks through it page by page. You can watch it live. When it's done, it shows you the map of screens it found and asks **Happy with the map?** **5. Review the scenarios** From the map and everything you shared, Mini drafts the scenarios worth running, each with its acceptance criteria. Every draft is checked in a browser before it counts as ready. If Mini hits something it can't guess, like a missing account or an ambiguous expected result, it asks you in the chat. **6. Run your first regression** Click **Approve & run first regression**. If a few questions are still open, **Skip & run** starts the scenarios that are ready now and keeps the others as drafts until you answer. ## Browsers you can pick | Device | Browsers | | - | - | | **Desktop** | Chrome, Firefox, Edge | | **Tablet** | Chrome, Firefox, Edge | | **Mobile** | Chrome on Android, Safari on iPhone | Each browser you pick becomes a default target for the app's runs. You can change the list later and pick other targets for a single run. See [Web apps](/docs/minitest/setup/web-apps). ## What you get back A run report: a verdict for every scenario and browser, the recording of the session, and for each failure the criterion that broke, the logs and a [fix prompt](/docs/minitest/runs/run-report#fix-prompt) ready for Cursor or Claude. ## Next steps > [card] [Test staging and preview URLs](/docs/minitest/setup/web-apps) > > Point a run at a preview deployment and pick browsers per run. > [card] [Reach a private site](/docs/minitest/setup/private-apps) > > For a site behind a firewall, a VPN or a country restriction. > [card] [Run on every pull request](/docs/minitest/runs/triggering-a-run) > > Add the GitHub Action so each PR gets a verdict before it merges. > [card] [Read a run report](/docs/minitest/runs/run-report) > > What each verdict means and how to act on a failure. # Ask Mini Source: https://www.minitap.ai/docs/minitest/get-started/working-with-mini Talk to Mini about your app in plain language, what it asks your OK for, what it never does on its own, and how to point it at a run or a scenario with @. **Ask Mini**, at the top of your app's sidebar, is where you talk to Mini in plain language: ask why a run failed, what your suite misses, or have it write and change scenarios. This page covers what to ask, how Mini checks with you before it acts, and how to point it at the exact run or scenario you mean. ![Ask Mini: What do you want to know?, the message box with what Mini knows, and starters App health, Last failure, Run tests, Coverage and Open issues](https://mintcdn.com/minitap-30239763/QCLbAMcddko_3eZy/minitest/images/app/ask-mini.png?fit=max\&auto=format\&n=QCLbAMcddko_3eZy\&q=85\&s=39193ba468a5e3d946fb4d154df81e24) Ask Mini, with a few starters. ## Where to find it Click **Ask Mini** at the top of the app sidebar. The conversation sits in the middle and your **Chat history** on the right; **New chat** starts a fresh one. Other pages open the same conversation when they hand you to Mini, like **Tests → New test → Ask Mini** or **Ask Mini about this scenario** in a draft, so you can move between pages without losing a reply in progress. Mini knows which page you're on. On a run, "why did this fail?" is about that run. ## What to ask An empty conversation suggests a few starters under **Try Mini for…**. A few things Mini is good at: | You want | Ask, for example | | - | - | | Where the app stands | "How is this app doing right now?" | | To understand a failure | "Explain the last failed run and what to do about it." | | To triage | "Summarise the open issues, most critical first." | | Coverage | "Which flows of this app have no test scenario yet? List them, most important first." | | A new scenario | "On Android, search for a phone and turn on the filter switch." | | Better criteria | "Review the acceptance criteria of my test scenarios and tighten the vague ones." | | Flaky scenarios | "Which test scenarios are flaky or blocked, and how do I fix them?" | | A test account | "Create a test account for a returning customer, with the account and data it needs." | When you ask how to set something up, Mini answers and links the page of these docs that covers it. To hand Mini your existing test plan, attach the file with the paperclip or drop it on the chat: see [Import your existing tests](/docs/minitest/suite/import-tests). ## Point at things with @ Type `@` in the message box to mention something from your app. A list opens above the box, with a tab per type: **Scenarios**, **Criteria**, **Runs**, **Issues**, **Builds** and **Test accounts**. During onboarding, **Screens** from the [screen map](/docs/minitest/suite/exploration) are there too. ```text theme={"theme":{"light":"github-light","dark":"vesper"}} Did @Checkout with saved card pass on @v2.3.1 (57)? If it failed, which criterion broke? ``` Arrow keys move through the list, Enter inserts the mention, Tab switches type and Escape closes it. A mention becomes a chip that you delete in one keystroke. Paste a link or an ID right after `@` and the list shows only what it names. Mini reads everything you mention before it answers. ## Mini proposes, you confirm Before anything that changes your suite or uses device time, Mini tells you its plan in a sentence or two, like what it will create or change and how much of it, and waits for your answer. You'll usually see **Yes, do it**, along with other choices or **Something else…** to answer in your own words. When Mini has several questions, it asks them one after the other and sends your answers together. Some requests are already your OK, so Mini goes ahead without asking again: * **Tests → New test → Ask Mini**, where you describe what someone should be able to do. * Asking Mini to import your test cases. * A deletion or cancellation you asked for in so many words. When Mini is waiting on you, a bar above the message box says how many things need you, with a button to the question. ## What Mini never does on its own * **Start a run.** Mini can't start runs from the chat. Ask for one and it points you to **Run tests**, or start it from CI, Slack or the CLI: see [Triggering a run](/docs/minitest/runs/triggering-a-run). * **Commit for real in your app.** Mini won't place an order or make a booking during a test unless you've told it that's fine, for example "you can make test bookings". * **Call a scenario ready.** A new scenario is a draft until Mini has checked it on a device: the screens exist, the test account works, and the criteria can be observed. Walking the app in the chat doesn't count as that check. ## Where Mini's changes land When Mini changes your suite from the chat, it says what changed in a line or two, including anything it removed. New scenarios start as drafts and join your runs once Mini has checked them on a device. For a change that spans several scenarios, like a redesigned flow, open a draft in [Workbench](/docs/minitest/suite/workbench) with **Draft a change**. Mini writes the whole change there and proves it on a device, and your suite only changes when you merge. ## Next steps > [card] [Import your existing tests](/docs/minitest/suite/import-tests) > > Turn your test plan into scenarios, case IDs included. > [card] [Workbench](/docs/minitest/suite/workbench) > > Bigger changes, checked on a device before they merge. > [card] [Write scenarios by hand](/docs/minitest/suite/authoring) > > The New test menu and every field of a scenario. > [card] [Mini in Slack](/docs/minitest/integrations/mini-in-slack) > > Talk to Mini from your team's channels. # Welcome to Minitap Source: https://www.minitap.ai/docs/minitest/index Your AI QA engineer, on every build of your mobile and web apps. Minitap gives your team **Mini**, an AI QA engineer. You tell Mini which journeys in your iOS, Android or web app matter, in plain English. It tests them on every build, keeps the tests in step with your app, and comes back with a verdict and the proof behind it.