Zum Inhalt springen

Ein Coding-Agent kann die Registrierung deiner App so testen, wie ein Mensch es tun würde: sie bauen, im iOS Simulator ausführen, das Formular mit einer Testadresse von Proxy Mail QA ausfüllen und dann den Code eingeben oder den Link aus der E-Mail öffnen. Proxy Mail QA gibt dem Agent die Adresse und den Code oder Link aus der E-Mail; die eigenen Tools des Agents steuern den Simulator.

Jedes Setup unten beginnt damit, dass Proxy Mail QA mit dem Agent verbunden ist: Füge das Setup mit einem Prompt ein oder verbinde den MCP server von Hand.

Um es auszuprobieren, bevor du einen Agent auf deine eigene App ansetzt, nutze das iOS-Beispiel: eine kleine Registrierung mit E-Mail-Aktivierung und ohne Server. Die Aktivierungs-E-Mail sendest du selbst, von deinem eigenen E-Mail-Konto, und der Agent bekommt den Code von Proxy Mail QA.

Claude Code Desktop auf einem Mac kann deine App in einem Simulator neben der Unterhaltung ausführen, sich durch sie tippen und den Bildschirm lesen (Anleitung von Anthropic). Dafür braucht es Xcode mit installierter iOS-Plattform, und du erlaubst Claude einmal pro Simulator den Zugriff.

Öffne dein iOS-Projekt in einer Claude Code-Desktop-Sitzung mit verbundenem Proxy Mail QA und frag:

Baue die App und führe sie im Simulator aus. Registriere dich mit einer neuen Proxy Mail QA-Testadresse und dem Passwort, das sie dir gibt, gib dann den Bestätigungscode aus der E-Mail ein und prüfe, dass die App das Konto als bestätigt anzeigt.

Claude macht dann Folgendes:

  1. Baut die App und startet sie im Simulator.
  2. Ruft create_address mit password: true auf, um eine neue Adresse und ein Passwort zu bekommen.
  3. Tippt in das Registrierungsformular und gibt beides ein.
  4. Ruft wait_for_code (oder wait_for_link) auf, um den Code oder Link aus der E-Mail zu bekommen.
  5. Gibt den Code ein oder öffnet den Link im Simulator, damit die App ihn verarbeitet. Das Öffnen eines Links folgt dem Berechtigungsmodus deiner Sitzung.

Für einen Link, der die App öffnen soll, frag nach genau diesem Link: „Öffne den Bestätigungslink aus der E-Mail in der App“. Enthält die E-Mail sowohl einen Weblink als auch einen App-Link (myapp://…), kommt der Weblink zuerst; wait_for_link mit app: true (oder app=true von REST API) fragt nach dem App-Link. iOS fragt „In deiner App öffnen?“, bevor ein App-Link sie öffnet, und Claude tippt auf Öffnen.

Der Bildschirm des Simulators kann einen Schritt etwas verzögert anzeigen. Deshalb prüft Claude per Screenshot, ob das Eingetippte zu sehen ist, bevor es auf den Button tippt, und macht einen weiteren, bevor es einen Schritt als fehlgeschlagen wertet.

Die Screenshots aus dem Simulator-Bereich werden wie der Rest der Unterhaltung an Anthropic gesendet. Verwende auf diesem Simulator also nur Testkonten. Proxy Mail QA-Adressen und -Passwörter sind von vornherein Testkonten.

Xcode kann seine Build- und Projekt-Tools über den eigenen MCP server von Xcode mit einem Agenten teilen, den du außerhalb davon ausführst (Anleitung von Apple):

  1. Wähle in Xcode Xcode → Settings → Intelligence und aktiviere unter Model Context Protocol die Option Allow external agents to use Xcode tools.

  2. Füge dem Agent die Tools von Xcode hinzu:

    claude mcp add --transport stdio xcode -- xcrun mcpbridge

    Für Codex:

    codex mcp add xcode -- xcrun mcpbridge
  3. Öffne dein Projekt in Xcode und gib dem Agent dann den Prompt wie oben.

Wenn beide Server verbunden sind, baut der Agent über Xcode und bekommt die Testadresse und die E-Mail über Proxy Mail QA.

Die integrierten Agents von Xcode (Claude Agent, Codex und Gemini) können zusätzliche MCP-Server aus ihren Konfigurationsordnern unter ~/Library/Developer/Xcode/CodingAssistant/ (ClaudeAgentConfig, codex und gemini) laden und Agent-Plug-ins aus Intelligence settings → Plug-ins → Add Plug-in installieren (Anleitung von Apple).

Unser Plugin für Claude Code bündelt den MCP server und einen Skill, der den Registrierungsablauf beschreibt. Wenn du es dort über seine URL hinzufügst, sollte der Claude Agent von Xcode dieselben Tools bekommen. Die Plug-in-Unterstützung von Xcode haben wir noch nicht getestet. Falls es nicht funktioniert, nutze stattdessen Claude Code oder Codex zusammen mit Xcode.

Egal, wie der Agent verbunden ist, er kann mehr vom Ablauf abdecken:

  • Ein auf Felder aufgeteilter Code. Viele Apps zeigen ein Feld pro Ziffer. Der Agent tippt in das erste Feld und gibt den ganzen Code ein, den die meisten Apps auf die Felder verteilen. Dann prüft er, ob jede Ziffer angekommen ist, bevor er weitermacht: Ein unvollständiger Code zählt als Fehlversuch.
  • Ein längeres Registrierungsformular. Für ein Formular, das auch einen Benutzernamen mit Regeln, ein Geburtsdatum oder ein Land abfragt, liefert form_values für jedes Feld einen Wert aus einer eigens dafür erstellten neuen Adresse.
  • Die E-Mail selbst. Wenn der Code oder Link angekommen ist, prüft check_email mit expect_host, gesetzt auf die Domain, die die Links deiner App öffnen (etwa ihre Universal-Link-Domain), ob der Link dorthin führt, außerdem SPF, DKIM, DMARC und eine angegebene Gültigkeitsdauer. count_emails erkennt eine versehentlich gesendete zweite E-Mail.
  • Ein Dev-Server auf deinem Mac. Der Simulator erreicht deinen Mac unter localhost, Links eines Dev-Builds auf localhost:3000 sind also zu erwarten. Bitte den Agent, ihn als Dev-Umgebung zu markieren (mark_dev_host), oder füge ihn in den Projekteinstellungen hinzu. Dann lässt check_email diese Links durchgehen, statt sie als Fehler zu werten.
  • Dasselbe Konto beim nächsten Mal. Bitte den Agent, beim Erstellen festzuhalten, wo das Konto verwendet wird (environment, etwa staging, und Tags wie ios), damit list_addresses es wiederfindet. Mit einem API-Schlüssel, der gespeicherte Passwörter lesen darf, liefert get_sign_in das Konto und sein Passwort in einem Aufruf.
  • Ein Bericht. Frag nach einem Laufbericht: Der Agent ruft zuerst start_run und am Ende finish_run auf, das den Bericht in Markdown zurückgibt.

Dieselben Tools testen, was die App nach der Registrierung sendet:

  • Der Gutschein. Nach der Registrierung für ein Angebot in der App wartet der Agent mit wait_for_code und kind: coupon, das den Gutschein mit Rabatt und Enddatum zurückgibt und angibt, wie lange es gedauert hat (after_seconds). Er gibt den Gutschein in das Aktionscode-Feld der App ein, aufgeteilt auf Felder wie bei einem Code.
  • Checkout, nur in der Sandbox. Nutze StoreKit-Tests in Xcode oder den eigenen Testmodus der App, nie eine echte Karte oder einen echten Kauf. Der Agent hält mit record_coupon_result fest, was die App getan hat: accepted, rejected oder error, mit der Meldung der App. Ein erneuter Versuch mit demselben Code prüft, ob ein Einmalcode abgelehnt wird.
  • Ein Gutschein als Link, der die App öffnet, etwa myapp://redeem?code=…: wait_for_link mit app: true gibt ihn zurück, und der Agent öffnet ihn im Simulator mit xcrun simctl openurl booted und dem Link.
  • Ein Angebot pro Person. Eine erneute Registrierung mit einer Variante derselben Adresse (get_address_variants listet sie auf, etwa name+promo1@…) und dann check_offers zeigen, ob die App das Angebot zweimal vergeben hat.
  • Schwierige Namen und Passwörter. get_name_variants und get_password_variants liefern Werte für die anderen Felder des Formulars (Apostrophe, Akzente, andere Schriften, jede Symbolklasse, die Grenzen des Felds); der Agent gibt jeden ein und berichtet, was die App gemacht hat.
  • Einwilligung. Schalter bei der Registrierung und Benachrichtigungseinstellungen: Der Agent hält mit record_consent fest, was er gewählt hat (und ob der Schalter anfangs aktiv war), und check_email bewertet das folgende Marketing nach den Regeln am Wohnort der Persona.
  • Abmelden, über den Einstellungsbildschirm der App oder den im Simulator geöffneten Link aus der E-Mail: Der Agent ruft dann mark_unsubscribed auf, und später listet check_unsubscribe alle Marketing-E-Mails auf, die danach kamen. Belege sollten weiterhin ankommen.

Für Android siehe Android-Apps mit einem Coding-Agent.

Um die Prüfung als UI-Test zu behalten, der in CI läuft, siehe iOS (XCUITest) oder Maestro für einen Ablauf, der auch Android abdeckt. Ihre Helfer tun dasselbe in einem Test: die E-Mails prüfen und zählen, sich mit einem gespeicherten Konto anmelden oder eines ausleihen und jeden Test zum Bericht des Pull Requests hinzufügen.

Eine Frage zu dieser Seite?

Frag in jeder Sprache. Die Doku kann dir sofort antworten oder deine Frage an das Team von Proxy Mail QA schicken, das auf Englisch antwortet.

Doku fragen