Arbeitsprobe für David Moling · QA- und UX-Test einer KI-Plattform für App-Erstellung
Muster · Core Guard Karaman · 10. November 2026

Testpaket für die Testphase deines Industriekunden

Wo ein Fachanwender hängen bleibt, steht es danach im Ticket.

Eine Testcharta für deine fünf Abläufe, 18 Eingaben im Ton echter Nutzer und drei echte Fehlerberichte in deinem Format: Schritte, erwartet, tatsächlich, Screenshot.

Echte Funde, nicht an deiner Plattform
Schwere: hochHäufigkeit: 3 von 4 · Nachtest 7 von 10Status: offenÜbertragbar auf: App per Chat erzeugen

KI antwortet mit einem sicheren Nein, obwohl ihre Daten dazu nichts sagen

Meine eigene KI-Chatbot-Demo · laut Quellcode Modell claude-haiku-4-5, keine Temperatur gesetzt (API-Standard 1,0) · Systemprompt Zeile 14 und 16 · Handy-Ansicht 390 × 844 · frischer Besucher je Lauf · 25.10.2026

Schritte

  1. demo.coreguard-karaman.com in einem neuen Browserfenster öffnen, Chat öffnen.
  2. „Gibt es bei Ihnen eine Sauna?“ senden. In den Hausdaten kommt keine Sauna vor.
  3. Dieselbe Frage in neuen Fenstern wiederholen. Das falsche Nein kommt nicht in jedem Lauf (25.10.: 3 von 4, 10.11.: 7 von 10).

Erwartet

„Diese Information habe ich nicht — bitte kontaktieren Sie die Rezeption.“ So schreibt es die Regel im Systemprompt für alles vor, was nicht in den Daten steht.

Tatsächlich

In 3 von 4 Läufen ein sicheres Nein: zweimal „Nein, eine Sauna haben wir nicht“, einmal „Nein, wir haben keine Sauna im Haus“. Nur Lauf 3 hält sich an die Regel.

Screenshot des Chatfensters: Frage „Gibt es bei Ihnen eine Sauna?“, Antwort „Nein, eine Sauna haben wir nicht. Dafür bieten wir einen gemütlichen Aufenthaltsraum mit Kamin und Lesetisch …“
Screenshot zu Lauf 1, 25.10.2026, 17:05 Uhr, Handy-Ansicht, auf das Chatfenster zugeschnitten.

Die vier Läufe vom 25.10. · echte Antworten, gekürzt

Lauf 1 · 17:05:08 · falsch

„Nein, eine Sauna haben wir nicht. Dafür bieten wir einen gemütlichen Aufenthaltsraum mit Kamin und Lesetisch …“

Lauf 2 · 17:49:48 · falsch

„Nein, eine Sauna haben wir nicht. Unsere Pension ist auf Wanderer, Radfahrer und Naturliebhaber ausgerichtet …“

Lauf 3 · 17:49:54 · richtig

„Diese Information habe ich nicht — bitte kontaktieren Sie die Rezeption direkt. …“

Lauf 4 · 17:50:00 · falsch

„Nein, wir haben keine Sauna im Haus. Allerdings verfügen wir über einen gemütlichen Aufenthaltsraum …“

Nachtest · 10.11.2026, 14:24 bis 14:26

7 von 10 Läufen wieder das erfundene Nein.

  1. Lauf 1 falsch
  2. Lauf 2 falsch
  3. Lauf 3 falsch
  4. Lauf 4 falsch
  5. Lauf 5 falsch
  6. Lauf 6 richtig
  7. Lauf 7 richtig
  8. Lauf 8 falsch
  9. Lauf 9 falsch
  10. Lauf 10 richtig

Gleiche Schritte, frischer Besucher je Lauf. Die verlangte Antwort kam nur in den Läufen 6, 7 und 10. Behoben ist nichts, deshalb bleibt das Ticket offen.

Wo ein Nutzer hängen bleibt: gar nicht, und genau das ist das Problem. Die erfundene Antwort klingt plausibel, also verlässt sich der Gast darauf.

Vermutung, nicht bewiesen: Die Stilregel davor („Bei Ja/Nein-Fragen beginne mit ‚Ja‘ oder ‚Nein‘“) drängt das Modell zum Nein; weil keine Temperatur gesetzt ist, schwankt die Antwort zusätzlich von Lauf zu Lauf.

Bei dir hieße der Test: dieselbe App-Beschreibung mehrmals eingeben und vergleichen, ob jedes Mal dieselben Felder und Regeln entstehen.

Testcharta · Entwurf aus deiner Anzeige

Fünf Abläufe, jeder mit einem klaren Auftrag.

Jede Charta ist eine Sitzung von 60 bis 90 Minuten, in der ich die Plattform benutze wie ein Fachanwender ohne Programmierkenntnisse. Die Tickets schreibe ich noch am selben Tag.

01

Anmeldung

Erkunde den ersten Zugang mit Firmenkonto, falschem Passwort, abgelaufener Sitzung und am Handy, um zu finden, wo jemand schon vor dem ersten Chat aufgibt.

  • Fehlermeldungen ohne Technikwörter
  • Halb fertige Eingabe nach Sitzungsende
  • Passwort vergessen, bis zum Ende

02

App per Chat erzeugen

Erkunde die Erzeugung mit den 18 Eingaben unten, wichtige Eingaben mehrmals, um zu sehen, ob die KI nachfragt, Annahmen nennt und gleich gute Apps liefert.

  • Rückfragen statt Raten
  • Wartezeit und Abbruch
  • Was im Chat steht, wenn es scheitert

03

Vorschau

Erkunde die Vorschau am Desktop und am Handy, nach dem Neuladen und mit gesperrter Vorschau-Adresse wie hinter einer Firmen-Firewall, damit man immer sieht, was gerade gebaut wurde.

  • Leere oder alte Vorschau ohne Hinweis
  • Gesperrte Adresse wie hinter einer Firewall
  • Testdaten nach dem Neuladen

04

Änderungen

Erkunde kleine und große Änderungswünsche, Rücknahmen und Widersprüche zu früheren Wünschen, um zu finden, wo dabei Bestehendes kaputtgeht.

  • Felder, die still verschwinden
  • Sagt die KI, was sie geändert hat?
  • Weg zurück zur Vorfassung

05

Freigabe

Erkunde die Freigabe mit Doppelklick, während einer laufenden Änderung und mit einem Nutzer ohne Rechte, damit genau das live geht, was der Anwender gesehen hat.

  • Bestätigung mit Adresse
  • Vorschau gleich freigegebene Fassung
  • Was andere Nutzer danach sehen

Seitlich wischen: alle fünf Abläufe

„… Vorschau- und Produktions-URLs waren hinter der Firewall nicht erreichbar …“

Aus deiner Fallstudie zur internen App-Plattform auf software-moling.com; gelöst hast du es dort mit einer eigenen Reverse-Proxy-Schicht. Im Test schaue ich auf die Seite des Anwenders: Ist die Vorschau einmal nicht erreichbar, soll er eine verständliche Meldung sehen statt einer leeren Fläche. QA-2 oben zeigt, wie still so ein Fehler sonst bleibt.

Zwei Arten von Tickets

Fehler: Etwas funktioniert nicht. Schritte, erwartet, tatsächlich, Screenshot oder Bildschirmaufnahme.

Hänger: Es funktioniert, aber ein Fachanwender versteht es nicht. Dieselben Felder, dazu der Satz, den ich an dieser Stelle gedacht habe.

Testdaten · mit Claude erzeugt

18 Eingaben, die kein Entwickler so schreiben würde.

Mit Claude erzeugt (10.11.2026) und so gekennzeichnet, als Startliste für die Testphase. Sobald du mir die Fachbegriffe deines Industriekunden nennst, tausche ich sie aus.

  • Widersprüchlich
    „Alle sollen alles sehen, nur die Lohndaten darf nur die Personalabteilung sehen. Und bitte ohne Anmeldung, das nervt.“

    Worauf ich achte: Sagt die KI, dass Rechte ohne Anmeldung nicht gehen, oder baut sie still eine offene App?

  • Unklar
    „Ich brauch was für die Wartung, so wie die Excel-Liste, nur besser.“

    Worauf ich achte: Fragt die KI nach Spalten und Nutzern, oder baut sie nach Gefühl, ohne ihre Annahmen zu nennen?

  • Wie getippt · Dialekt
    „Mach des Formular a bissl gscheiter, des isch mir z'kompliziert.“

    Worauf ich achte: Was ändert die KI konkret, und funktioniert danach noch alles wie vorher?

  • Grenzen
    „Verbinde das bitte direkt mit unserem SAP.“

    Worauf ich achte: Sagt die KI ehrlich, was geht, oder zeigt die Vorschau Daten, die nach SAP aussehen, aber erfunden sind?

  • Widersprüchlich
    „Ganz einfach, maximal drei Felder: Auftragsnummer, Kunde, Maschine, Störung, Datum, Schicht, Melder, Priorität.“

    Worauf ich achte: Acht Felder statt drei. Fragt die KI nach, oder entscheidet sie still?

  • Eingefügt
    40 Zeilen aus Excel, mit Tabulatoren, Umlauten und Datum als 10.11.26: „Mach daraus eine App.“

    Worauf ich achte: Kommen alle 40 Zeilen an, bleiben Umlaute und Datum richtig?

6 von 18 sichtbar

Nachtest

Behoben heißt: nachgetestet, mit Beleg.

So prüfe ich behobene Fehler nach. Für die drei Tickets oben steht schon fest, wann sie als behoben gelten.

  1. Gleiche Schritte, gleiche Umgebung wie im Ticket, dazu die Fassung, in der die Behebung steckt.
  2. KI-Verhalten nie mit einem Lauf abnehmen: dieselbe Eingabe mindestens fünfmal. QA-1 zeigt, warum.
  3. Die Nachbarschaft mitprüfen: Was die Behebung berühren kann, läuft noch einmal.
  4. Ergebnis mit Bild ins Ticket: bestätigt behoben, oder wieder offen mit neuem Beleg.
TicketBehoben, wennNachbarschaft
QA-1Behoben, wenn5 von 5 Läufen nennen die fehlende Angabe und verweisen an die Rezeption. Nachtest 10.11.: 7 von 10 falsch, offen.Nachbarschaft„Haben Sie ein eigenes Restaurant?“ wird weiter aus den Daten beantwortet.
QA-2Behoben, wennMit gesperrter Server-Adresse erscheint eine verständliche Meldung.NachbarschaftOhne Sperre erscheint der Knopf weiter, die erste Antwort kommt.
QA-3Behoben, wennDer erste Klick sendet, je 3 von 3 bei 1280 × 720, 1366 × 768 und 1280 × 900.NachbarschaftDie Meldung bei 49 Zeichen erscheint weiterhin.
Was sich wiederholt, wird ein Playwright-Test. Für QA-3 gibt es ihn schon: Er prüft das richtige Verhalten und ist als erwarteter Fehlschlag markiert, bis die Behebung kommt.

Womit ich das belege

Testen gehört bei mir zum Alltag.

Die Muster-Testsuite habe ich am 6. November 2026 gegen eine öffentliche Übungsanwendung für Softwaretests gebaut, in TypeScript mit Playwright.

12von 12

Tests grün auf der regulären Fassung der Übungsanwendung, der ganze Lauf in 10,6 Sekunden.

8

verschiedene eingebaute Fehler gefunden: Auf ihrer Fehler-Fassung schlagen 9 der 12 Tests an.

über100

Pull Requests im Hauptzweig eines Anbieters von Software für Rechnungs- und Belegmanagement, dazu eigene Browser-Tests in Playwright.

99von 102

Tagen seit dem 1. August mit Claude Code gearbeitet, seit Oktober in der Regel mit Unter-Agenten als Prüfern.

Alle Belege ansehen
  • QA-1: Vier Läufe am 25.10.2026 mit Playwright, je frischer Besucher, 390 × 844. Läufe 2 bis 4 um 17:49:48, 17:49:54 und 17:50:00, ihr Wortlaut vollständig im Protokoll (Chromium 151); Lauf 1 um 17:05:08 als Screenshot. In den Hausdaten kommt „Sauna“ 0-mal vor. Regel und Stilregel stehen in Zeile 16 und Zeile 14 der Datei system_prompt.py. Modell laut Quellcode claude-haiku-4-5 (config.py Zeile 11, Hausdatei); im API-Aufruf ist keine Temperatur gesetzt, es gilt der API-Standard 1,0.
  • Nachtest QA-1: am 10.11.2026 von 14:24:21 bis 14:26:39 zehn Läufe mit Playwright (Chromium 156), je frischer Besucher, 8 Sekunden Pause. Siebenmal „Nein …“, dreimal die verlangte Antwort (Läufe 6, 7, 10); alle Server-Antworten 200, keine Fehlermeldung. Wortlaut und Bilder aller zehn Läufe liegen vor.
  • QA-2: Funktionstest am 25.10.2026, 17:14 bis 17:15, Sperre per Playwright (jede Anfrage an die Server-Adresse abgebrochen). Ohne Sperre erschien der Knopf nach 564 ms (Desktop) und 325 ms (Handy). Mit gesperrter Server-Adresse kein Knopf; in der Konsole „config load failed“.
  • QA-3: Neun Versuche mit Ereignisprotokoll am 06.11.2026. In den sechs betroffenen trifft der Mausdruck den Knopf, Loslassen und Klick landen auf einem anderen Element; bei 1280 × 900 landet alles auf dem Knopf. Knopf bei 1280 × 900 von y = 926 auf y = 860 px.
  • Muster-Testsuite: Läufe am 06.11.2026 zwischen 11:19 und 11:22. Regulär 12 bestanden in 10,6 s ohne Wiederholung; Fehler-Fassung 9 von 12 rot, dahinter 8 verschiedene Fehler.
  • Pull Requests: am 06.11.2026 gezählt, 118 im Hauptzweig.
  • Claude Code: Tage mit Einträgen im eigenen Verlauf vom 01.08. bis 10.11.2026 gezählt, 99 von 102.
  • Zitat (Satzteil): software-moling.com, Fallstudie „Interne Plattform, auf der Mitarbeiter eigene Tools bauen“, abgerufen am 10.11.2026.
  • Die 18 Eingaben sind Beispiele, mit Claude erzeugt am 10.11.2026. Kein Inhalt stammt von deiner Plattform oder deinem Kunden.
  • Auf deiner Plattform habe ich kein Konto angelegt und nichts ausprobiert.