QS-Gate · Handbuch Zum Cockpit
Benutzerhandbuch · Prüfstand + Cockpit

realERP
QS-Gate

Wie das QS-Gate jede neue realERP-Version prüft, bewertet und zur Freigabe bringt – und wie Sie jede Ansicht des Cockpits bedienen. Für Berater, Freigeber, Entwickler und Fachbereich.

Stand 30.10.2026Ausgabe 2 · mit Paketen, Zuständigkeit, Schnelllauf, Warteschlange und Fachprüfung Rechnungswesen
22 Menüpunkteje Menüpunkt ein Kapitel – die Hilfe im Cockpit springt direkt dorthin
22 Prüfphasenvom Datenbank-Zählstand über Sicherheit und Last bis zu den Konsistenzregeln

Tipp: Über das Suchfeld links filtern Sie alle Kapitel. Jeder Abschnitt hat eine feste Sprungmarke, z. B. /ui/handbuch/#abweichungen. Über „Drucken / PDF“ entsteht ein sauberes PDF.

A

Grundlagen

Was das QS-Gate tut, wie ein Lauf abläuft und wie bewertet wird

01
Grundlagen

Einleitung: Was ist das QS-Gate?

Das QS-Gate spielt nach jeder Änderung die komplette realERP-Anwendung durch – Schnittstellen, Oberfläche, Datenbank und Geschäftsprozesse –, vergleicht jedes Ergebnis mit dem zuletzt freigegebenen Stand und entscheidet nachvollziehbar über die Freigabe.

Es besteht aus zwei Teilen: dem Prüfstand, der den automatischen Prüflauf ausführt, und dem Cockpit, in dem Sie die Ergebnisse auswerten, Abweichungen freigeben und Prozesse im Prozess-Studio abspielen oder aufnehmen.

Was das QS-Gate leistet

  • Spielt nach jeder Änderung die komplette App durch – API, Oberfläche, Datenbank, Prozesse.
  • Vergleicht jedes Ergebnis mit dem zuletzt freigegebenen Stand (Referenz) und zeigt jede Abweichung.
  • Bündelt Fehler nach Ursachen und erzeugt daraus einen Prüfauftrag für das (KI-)Entwicklungsteam.
  • Entscheidet über die Freigabe nach festen Muss-Kriterien – mit Vier-Augen-Prinzip und Protokollkette.
  • Macht Qualität über viele Läufe sichtbar: Verlauf, Stabilität, Leistung, Vergleich.

Grundprinzipien

01

Eigene Prüfinstanz

API, Oberfläche und Prüfstand laufen getrennt vom Produktivsystem.

02

Golden-Record

Die Datenbank wird vor jedem automatischen Lauf auf einen definierten Stand zurückgesetzt.

03

Eingefrorene Uhr

Das Datum steht fest (21.10.2026) – Ergebnisse sind reproduzierbar.

04

Referenzvergleich

Nur echte Änderungen fallen auf; Rauschen (neue IDs, Zeitstempel) wird normalisiert.

05

Nachweisbar

Läufe, Freigaben und Referenzwechsel sind über eine SHA-256-Kette gesichert.

Zwei Begriffe, die man auseinanderhalten muss

BegriffBedeutungWo im Cockpit
AbweichungUnterschied einer Beobachtung zur Referenz – kann gewollt sein (neue Funktion) oder ungewollt (Seiteneffekt). Wird freigegeben oder abgelehnt.Abweichungen
BefundIm Lauf fehlgeschlagene Prüfung: Fehler, verletzte fachliche Erwartung oder verletzte Regel – unabhängig von der Referenz.Befunde, Ursachen

Aufbau dieses Handbuchs

Teil A erklärt Ablauf, Schnelllauf, Bewertung und Freigabe. Teil B beschreibt jeden Menüpunkt des Cockpits in der Reihenfolge der Navigation – mit Zweck, Bildschirmfoto, Bedienung und Tipps. Teil C enthält Arbeitsanleitungen (Prüfauftrag und Pakete, Prozess-Studio, Prüfbericht), Teil D die Prüfinhalte (Fachprüfung Rechnungswesen, Sonderfälle und Ketten, Prozesskatalog, neue Prüfdimensionen), Teil E Schnittstelle, Betrieb und Rollen, Teil F FAQ, Glossar und Änderungsprotokoll.

Hinweis zu den Zahlen

Zahlenbeispiele und Bildschirmfotos stammen aus der laufenden QS-Gate-Instanz, Lauf vom 29.10.2026 (Version cefd1ba); Bilder des Prozess-Studios aus einem lokal gestarteten Cockpit mit Testdaten. Die Bilder der Ausgabe 2 (Cockpit, Pakete, Zuständigkeit, Vergleich, Prozesse, Schnelllauf, KI-Zweitprüfung) zeigen ein lokal gestartetes Cockpit mit den Daten des Laufs cefd1ba; laufender Lauf, Schnelllauf und KI-Verbrauch sind dort nachgestellt. Ihre aktuellen Werte sehen Sie immer im Cockpit.

02
Grundlagen

Schnellstart: Anmelden und erster Blick

In fünf Minuten vom Login zur Antwort auf die Frage „Darf diese Version zum Kunden?“.

Anmelden über die Landingpage

  1. Landingpage öffnen. Die Adresse des Prüfstands aufrufen; ohne Anmeldung erscheint die Landingpage (/anmelden) mit Kurzüberblick über Leistung, Funktionen und Ablauf.
  2. „Anmelden“ bzw. „Zum Cockpit“ wählen. Das Formular rechts wird fokussiert.
  3. Name eintragen. Ihr Name steht später an jeder Freigabe, jeder Befund-Bearbeitung und im Änderungsprotokoll – bitte den echten Namen verwenden.
  4. Gemeinsames Passwort des Prüfstands eingeben und „Anmelden“. Das Passwort erhalten Sie vom QS-Team; es steht nie in Unterlagen.
  5. Sitzung. Die Anmeldung gilt 12 Stunden. „Abmelden“ finden Sie in der Fußzeile der Navigation.
Fehlermeldung „Name oder Passwort falsch.“

Erscheint auch, wenn das Namensfeld leer ist. Das Handbuch selbst ist ohne Anmeldung unter /handbuch erreichbar.

Der Bildschirm im Überblick

BereichInhalt und Bedienung
Navigation linksDrei Gruppen: oben Cockpit, Läufe, Prozess-Studio; „Ausgewählter Lauf“ mit allen Reitern eines Laufs (Zahlen = offene Abweichungen bzw. Befunde des letzten Laufs); „Über Läufe“ mit Verlauf, Stabilität, Leistung, Vergleich, Protokollkette und Einstellungen.
Fußzeile der NavigationStatus der Protokollkette („Protokollkette intakt“ bzw. „Kette verletzt“), angemeldeter Name, Links zu Handbuch, Klassische Ansicht (/klassisch) und Abmelden.
KopfzeileSeitentitel, Lauf-Auswahl (Datum · Version · Urteil – wechselt den „ausgewählten Lauf“), Live-Hinweis „Lauf läuft · Phase …“ (bzw. „Schnelllauf läuft …“) und – wenn während des Laufs ein neuer Stand eingetroffen ist – „wartet: <commit>“, Suche/Befehlspalette, Hell-/Dunkel-Umschalter, Schaltflächen Lauf starten und Schnelllauf (beide gesperrt, solange ein Lauf läuft) und Handbuch (springt zum Kapitel der aktuellen Seite). Auf schmalen Bildschirmen bricht die Kopfzeile in zwei Zeilen um, statt Knöpfe abzuschneiden.
Schublade (rechts)Detailansichten öffnen sich als Seitenleiste von rechts – z. B. eine Abweichung, ein Befund, eine Maske. Schließen mit „Schließen“, Klick daneben oder Esc.

Erster Blick in drei Schritten

  1. Cockpit öffnen. Oben steht das Urteil des letzten Laufs, darunter die Freigabe-Entscheidung GO / NO-GO mit Qualitätspunkten. Rote Kriterien mit dem Zusatz „muss“ entscheiden – siehe Bewertung.
  2. „Abweichungen prüfen“. Zeigt, was sich gegenüber der Referenz geändert hat. Zuerst nach „kritisch“ filtern.
  3. „Befunde“ bzw. „Ursachen“. Zeigt, was kaputt ist – gebündelt nach gemeinsamer Ursache. Für die Entwicklung den Gesamt-Prüfauftrag (MD) herunterladen.

Tastenkürzel

Mit ? zeigt das Cockpit diese Übersicht jederzeit an.

TasteWirkung
Strg/⌘ + K oder /Befehlspalette: Seiten, Bereiche, Szenarien, Tabellen und Volltextsuche in allen Beobachtungen
g dann c / a / b / eCockpit / Abweichungen / Befunde / Endpunkte des gewählten Laufs
g dann s / l / vStabilität / Leistung / Befund-Verlauf
j / knächste / vorige Zeile in Abweichungen und Befunden
Entermarkierte Zeile öffnen
xmarkierte Zeile auswählen (Sammelfreigabe / Sammelbearbeitung)
EscSeitenleiste oder Palette schließen
Leertasteim Prozess-Studio beim Abspielen: nächsten Schritt ausführen

Befehlspalette

Die Palette (Strg+K oder Lupe in der Kopfzeile) findet Seiten, Bereiche, Szenarien und Tabellen des gewählten Laufs. Ab zwei Zeichen bietet sie zusätzlich „„…“ in allen Beobachtungen suchen“ an – das öffnet den Reiter Suche. Navigation mit ↑ ↓, öffnen mit Enter.

03
Grundlagen

Ablauf: vom Merge zur Freigabe

Automatisch, reproduzierbar, nachvollziehbar: Jede neue Version startet auf demselben Datenstand mit eingefrorener Uhr – nur echte Änderungen fallen auf.

01

Merge

Manueller Merge main → qsgate.

02

Reset

API startet neu: Golden-Record, Deltas, Ergänzungen, Uhr 21.10.2026.

03

Prüflauf

19 Phasen, vollautomatisch.

04

Vergleich

Jede Beobachtung gegen die Referenz.

05

Freigabe

GO/NO-GO, Vier-Augen, neue Referenz.

Wie ein Lauf startet

  • Automatisch: Der Prüfstand fragt den Gesundheits-Endpunkt der QS-API regelmäßig ab (standardmäßig jede Minute). Meldet sie eine neue Version, startet der Lauf nach 180 Sekunden.
  • Manuell: Schaltfläche Lauf starten in der Kopfzeile. Ist ein automatischer Reset eingerichtet (Deploy-Hook oder Neustart des API-Dienstes), wird das QS-Gate vorher auf den Golden-Record zurückgesetzt (einige Minuten). Ohne Reset warnt das Cockpit: Der Lauf startet dann mit den Daten des Vorlaufs und ist nicht vergleichbar (Muss-Kriterium „Start auf frischem Golden-Record“).
  • Schnelllauf: Schaltfläche Schnelllauf in der Kopfzeile – prüft in Minuten nur die Bereiche, die ein Commit berührt; nicht freigaberelevant. Siehe Schnelllauf.
  • Während ein Lauf läuft, sind „Lauf starten“ und „Schnelllauf“ gesperrt. Prüfläufe und Wiedergaben im Prozess-Studio warten aufeinander.

Warteschlange: neue Commits während eines Laufs

  • Ein laufender voller Lauf wird nicht wegen eines neuen Commits abgebrochen. Der neue Stand wartet; die Kopfzeile zeigt „wartet: <commit>“. Es wartet immer nur der jüngste Stand – ältere wartende Stände werden verworfen. Nach dem Lauf startet er automatisch (neue API-Version nach 180 s Stabilisierung).
  • Deploy-Modus „auto“ (Vorgabe): Die API deployt bei jedem Commit selbst und setzt dabei ihre Datenbank auf den Golden-Record zurück. Wechselt sie während des Laufs auf eine neue Version (oder startet neu), wären die restlichen Ergebnisse falsch: Der Lauf endet als Überholt, sein Teilergebnis bleibt gespeichert, der neue Stand wird automatisch geprüft. Reagiert eine lange Phase nicht, wird der Lauf nach der Frist QSGATE_UEBERHOLT_FRIST_S (900 s) hart beendet.
  • Deploy-Modus „fenster“ (QSGATE_DEPLOY_MODUS=fenster, Auto-Deploy der API aus, Deploy-Hook als QSGATE_RESET_HOOK, GITHUB_TOKEN): Der Prüfstand beobachtet den Zweig (QSGATE_BRANCH, Vorgabe qsgate) und deployt neue Commits erst nach dem laufenden Lauf – kein Lauf wird mehr überholt.
  • Nur ein fertiger voller Lauf gilt als Prüfung eines Commits; Schnellläufe, überholte und abgebrochene Läufe zählen nicht. Der Prüfstand selbst startet dank Build-Filter nur bei Änderungen unter qsgate/pruefstand/** neu.
Dauer

Der Lauf vom 29.10.2026 dauerte 4 h 08 min, davon rund 2,5 h für die Szenarien. Hauptbremse ist das Anfragelimit der API. Im QS-Testsystem sind die Limits inzwischen angehoben (API 5.000 Anfragen/min, Anmeldung 500 je 15 min; Prüfstand QSGATE_MAX_RPM=4500, QSGATE_MAX_AUTH_15MIN=450), und die Szenario-Phase läuft parallel – ein voller Lauf dauert damit voraussichtlich rund 2 statt 4 Stunden. Verlässlich ist die Restzeit-Schätzung im Live-Block des Cockpits (aus den Phasendauern des letzten Laufs).

Die Prüfphasen

Jede Phase liefert Beobachtungen, die normalisiert und mit der Referenz verglichen werden; fehlschlagende Prüfungen sind Befunde. Zahlen: Lauf vom 29.10.2026 (Prüfungen · Befunde); die mit neu markierten Phasen kamen danach hinzu.

PhaseWas geprüft wirdTypische BefundeBeispielDauer
Datenbank vorherZeilenstand aller Tabellen vor dem LaufStart nicht auf frischem Golden-Record295.207 Zeilen15 s
KatalogOperationen (OpenAPI), MCP-Tools, Rollen, Modul-Schalter, Navigationentfallene Endpunkte/Tools (kritisch)8.602 · 02 s
SchemaSpalten, Typen, NOT NULL je TabelleSchemaänderung ohne Installer/Delta2.4380 s
Schema-Abgleich CodeSQL-Texte im Backend gegen das SchemaTabelle/Spalte im Code fehlt in der DB106 bekannt · 0 neu1 s
Lesende Endpunktejeder lesende Endpunkt mit echten IDsHTTP 500, geänderte Antwort2.381 · 14,6 min
MCP-Lesetoolslesende KI-/MCP-WerkzeugeTool-Fehler, geänderte Ausgabe346 von 6411,2 min
Oberflächejede Maske: Text, Konsolen-/Serverfehler, BildvergleichKonsolenfehler, Serverfehler in Masken863 · 239,9 min
Barrierefreiheit neu30 Kernmasken mit axe-core (WCAG 2.1 AA) und in der Mobilansicht 390 pxkritischer Verstoß, waagrechtes Scrollen, abgeschnittene Knöpfe—≈ 6–8 min
KlickpfadeKnöpfe der Masken, Leer-Speichern, Kernprozesse per KlickFormular speichert ohne Prüfung, Absturzin Oberfläche25,4 min
Prüfketten219 In-App-Prüfketten (FI/CO/SD/MM/WM/PP/HR/CRM)Kettenschritt rot1.039 · 1034 s
Szenarien1.120 Geschäftsprozesse über die API bis zum Endzustand – parallel nach Plan (siehe unten)Fehler, fachliche Erwartung verletzt42.776 · 1392,5 h
KI-Zweitprüfung neuStichprobe der Fachprüf-Belege durch eine KI (HGB/UStG/SKR) – nur Hinweise, nicht freigaberelevant; ohne Schlüssel übersprungen„KI-Hinweis“ (nie ein Befund)——
Dialogfunktionenerreicht jede Masken-Aktion ein Backend?toter Knopf (Route fehlt)16 · 01 s
Rechte und MandantenRechte-Matrix: Rollen × schreibende Routen, fremder Mandant; begründete Ausnahmen in config/rechte-ausnahmen.jsonSchreiben ohne Recht, fremde Daten7.446 · 1833,7 min
Fehleingabenleere Eingaben, falsche DatentypenHTTP 5xx, Ungültiges angenommen3.984 · 4610,3 min
Sicherheit neuMandanten-/Buchungskreistrennung (auch schreibend), Eingabe-Angriffe, Anmeldung/TokenDurchgriff auf fremde Daten, Injection, Aktion ohne Anmeldung——
Nebenläufigkeit2–10 gleichzeitige Anfragen auf denselben BelegDoppelbuchung, Überzahlung, doppelte Nummer21 · 18,3 min
Last neu8 virtuelle Benutzer verschiedener Rollen gleichzeitig auf Lese- und SchreibpfadenServerfehler unter Last, doppelte Nummer, p95 zu hoch—≈ 1 min
Code-Abdeckungausgeführte Backend-Funktionen und VerzweigungenAbdeckung gesunken82,8 %1 s
Datenbank nachherZeilenstand nach dem Lauf——7 s
Datenbank-Deltajede Tabelle: hinzugefügt / geändert / entferntÄnderung, wo niemand hinschaut1.270 Tabellen39 s
KennzahlenSummen-/Saldenliste, Soll = Haben, OP, Steuern, BestandKennzahl unstimmig (kritisch)6 · 01 s
Konsistenzfachliche Invarianten per SQL über die ganze DBMengen, Salden, Status verletzt65 Regeln · 251 s

Ohne eigene Zeitmessung laufen zusätzlich der Pflichtfeld-Abgleich Oberfläche ↔ Backend (Ebene Oberfläche) und die Abfrage des Absturzschutzes (Ebene Fehleingaben). Die neuen Phasen beschreibt das Kapitel Neue Prüfdimensionen; jede lässt sich per Umgebungsvariable abschalten (z. B. QSGATE_LAST=off).

Parallele Szenario-Phase

  • Die Szenarien laufen nach einem Plan gleichzeitig: Grad QSGATE_PARALLEL (Vorgabe 3, höchstens 8; 1 = nacheinander wie bisher). Grundlage sind das Laufzeitprofil des Referenzlaufs und die Regeln in config/parallel.json (Sammelbereiche, exklusive Bereiche und Dateien, die allein laufen müssen; anderer Pfad über QSGATE_PARALLEL_CONFIG).
  • Ohne Profil oder ohne unabhängigen Abschnitt läuft die Phase nacheinander (Grund steht im Protokoll). Der Plan steht im Lauf unter parallelPlan; node src/cli.js plan zeigt ihn vorab.
  • Im Lauf steht unter phases.Szenarien.warten, wie lange auf das Anfrage- bzw. Anmeldelimit gewartet wurde – die eigentliche Bremse.

Normalisierung und Determinismus

  • IDs aus dem Golden-Record bleiben fest; neu entstandene IDs werden zu «neu», Zeitstempel zu «ts», Unix-Zeiten zu «epoch», das echte Tagesdatum zu «heute»; Listen werden reihenfolgeunabhängig verglichen.
  • Zusätzliche Regeln (flüchtige Felder, bekannte instabile Prüfungen, begründete Ausnahmen der Abdeckung) stehen in rules.json – Änderung nur per Pull Request mit Begründung.
  • Laufzeitklassen gelten erst ab einem Sprung um zwei Klassen als Abweichung.
  • Zwei Läufe hintereinander auf demselben Stand (jeweils mit Reset) müssen ohne Abweichung enden. Szenarien laufen in fester Reihenfolge (Dateiname).

Nach dem Lauf: Vergleich und Freigabe

  1. Urteil lesen im Cockpit: grün (keine Abweichung), gelb (Abweichungen prüfen), rot (neue Fehler oder kritische Abweichungen), „ohne Referenz“. Daneben gibt es Schnelllauf (nicht freigaberelevant), Überholt und Abgebrochen – diese Läufe werden nicht bewertet und können keine Referenz werden.
  2. Abweichungen einzeln oder gesammelt mit Begründung freigeben oder ablehnen – siehe Freigabe.
  3. Befunde bearbeiten (Status, Verantwortliche, Ticket) und den Prüfauftrag an die Entwicklung geben.
  4. Als Referenz übernehmen, sobald alle Abweichungen freigegeben sind; ab dann vergleicht jeder weitere Lauf gegen diesen Stand.
  5. Prüfbericht als PDF ablegen – siehe Prüfbericht.
04
Grundlagen

Schnelllauf: nur, was der Commit berührt

Kopfzeile › Schnelllauf · POST /api/v2/start {"modus":"schnell"} · node src/cli.js run --schnell

Ein schneller Zwischenstand nach einem Commit: Der Prüfstand prüft nur die Bereiche, die der Commit-Diff berührt, und meldet in Minuten, ob dort etwas rot geworden ist. Für die Freigabe bleibt der volle Lauf Pflicht.

Lauf-Kopf eines Schnelllaufs mit Urteil Schnelllauf (nicht freigaberelevant), Hinweis zum Lauf und Abweichungen nach Status
Abb. Schnelllauf im Lauf-Kopf: Urteil „Schnelllauf (nicht freigaberelevant)“, Hinweis mit neuen Fehlern und behobenen Prüfungen, darunter die Status-Abweichungen (lokales Cockpit, nachgestellt).

Starten

  1. Cockpit: Schaltfläche Schnelllauf in der Kopfzeile, Abfrage bestätigen. Die geänderten Dateien ermittelt der Prüfstand aus dem GitHub-Vergleich Referenz-Commit … aktueller Commit (GITHUB_TOKEN).
  2. Schnittstelle: POST /api/v2/start mit {"modus":"schnell","dateien":["backend/src/…"],"basis":"<commit>","reset":false} – dateien und basis sind optional. Antwort mit freigaberelevant: false.
  3. Kommandozeile: node src/cli.js run --schnell --dateien=a,b bzw. --seit=<commit/zweig> (git diff, Verzeichnis QSGATE_GIT_DIR) oder Umgebung QSGATE_SCHNELL_DATEIEN / QSGATE_MODUS=schnell. --baseline ist mit --schnell nicht erlaubt.

Was geprüft wird

  • Umfang aus dem Diff: Router-Datei → Bereich (/api/<bereich>) über config/route-dateien.json, sonst Namens-Heuristik; daraus die passenden Szenarien, lesenden Endpunkte und Masken. Kernänderungen (z. B. Middleware, Datenbank-Helfer, Anmeldung, Nummernkreise) wirken überall – dann prüft der Schnelllauf eine Stichprobe je Modul und vermerkt, dass das Ergebnis eingeschränkt aussagekräftig ist. Reine Doku-/Prüfstand-Oberflächen-Änderungen werden ignoriert.
  • Laufen mit: Schema, Schema-Abgleich Code, lesende Endpunkte und Oberfläche (nur Bereich), Pflichtfeld-Abgleich, Prüfketten, Szenarien (nur Bereich), Dialogfunktionen, Rechte, Fehleingaben (aus den Aufrufen dieses Laufs), Code-Abdeckung, Konsistenz.
  • Laufen nicht: Katalog, MCP-Lesetools, Barrierefreiheit, Klickpfade, Sicherheit, Nebenläufigkeit, Last, Datenbank nachher/Delta, Kennzahlen.
  • Ohne Reset (sofern nicht ausdrücklich reset: true) und nur Statusvergleich: verglichen wird je geprüfter Beobachtung ok ↔ Fehler gegenüber der Referenz – Inhalte (Belegnummern, Listen) hängen von nicht gelaufenen Vorgänger-Szenarien ab und sind nicht vergleichbar.

Ergebnis

  • Urteil Schnelllauf (nicht freigaberelevant) mit Hinweis „n neue Fehler, m behoben gegenüber der Referenz“. Der Lauf erhält die Kennung …_schnell, steht in der Protokollkette, kann aber keine Referenz werden und kein GO geben.
  • Im Cockpit zeigt der Reiter Abweichungen die Statuswechsel; die übrigen Reiter brauchen den vollständigen Lauf-Index und nennen das.
  • Läuft schon ein Lauf, wartet der Schnelllauf in der Warteschlange; hinter einem wartenden vollen Lauf wird er verworfen.
Wichtig

Ein grüner Schnelllauf ist kein GO. Er beschleunigt die Korrekturschleife (Entwickler sieht in Minuten, ob die Korrektur wirkt); freigegeben wird nur nach einem vollen Lauf mit Reset.

05
Grundlagen

Bewertung: Qualitätspunkte, Muss-Kriterien, GO / NO-GO

Die Bewertung ist regelbasiert: Jedes Kriterium hat ein Gewicht. Muss-Kriterien entscheiden über GO oder NO-GO, alle Kriterien zusammen ergeben 0–100 Qualitätspunkte.

Formel

Qualitätspunkte = Summe der Gewichte erfüllter Kriterien ÷ Summe der Gewichte aller bewertbaren Kriterien × 100. Nicht bewertbare Kriterien (z. B. ohne Referenz) zählen nicht mit.

GO – alle Muss-Kriterien erfüllt · NO-GO – mindestens ein Muss-Kriterium verletzt · OFFEN – ein Muss-Kriterium ist noch nicht bewertbar.

Die Kriterien

KriteriumGewichtErfüllt, wenn …
Gegen eine Referenz verglichen10eine Referenz gesetzt ist
Start auf frischem Golden-Record10der Zeilenstand zu Beginn dem der Referenz entspricht (Toleranz 0,05 %, mind. 50 Zeilen)
Uhr steht auf dem Golden-Tag5das Datum des QS-Gates dem der Referenz entspricht
Keine offenen kritischen Abweichungen20jede kritische Abweichung freigegeben ist
Alle Abweichungen geprüft10keine Abweichung mehr offen ist
Keine neuen Serverfehler (HTTP 500)15kein HTTP 500 neu gegenüber der Referenz auftritt
Keine neuen Befunde gegenüber der Referenz10kein Befund neu hinzukommt
Kein Szenario verschlechtert15kein Szenario mehr Befund-Schritte hat als in der Referenz
Keine neuen Schema-Lücken im Code5keine neue Tabelle/Spalte im Code fehlt im Schema
Keine neuen Konsistenzverletzungen10keine Konsistenzregel neu verletzt ist (Soll = Haben, Zahlstatus, Bestand …)
Kennzahlen stimmig10alle Kennzahlen ohne Fehler sind (Soll = Haben, Salden, Bestand)
Höchstens 5 Aufrufe über 4 s5und nicht mehr langsame Aufrufe als in der Referenz
Schreibende Abdeckung ≥ 60 %5und gegenüber der Referenz nicht gesunken
Lesende Abdeckung ≥ 80 %5Anteil geprüfter lesender Endpunkte
Alle Prozessvarianten des Katalogs geprüft5keine Lücke und kein „nicht gelaufen“ im Prozesskatalog
Dialogfunktionen ≥ 98 % durch Tests geprüft5Anteil geprüfter Masken-Aktionen
Backend-Code-Abdeckung nicht gesunken5Funktionsabdeckung höchstens 0,3 Punkte unter der Referenz
Rechte- und Mandantenmatrix ohne Verstoß10kein Schreiben ohne Recht, keine fremden Daten – Muss, sobald ein Mandantenleck auftritt
Fehleingaben werden fachlich abgewiesen5kein 5xx, nichts Ungültiges angenommen
Gleichzeitige Zugriffe ohne Doppelbuchung5keine Doppelbuchung, Überzahlung, doppelte Nummer – Muss bei kritischem Befund
Protokollkette intakt5alle Einträge korrekt verkettet

Schwellen (Abdeckung, langsame Aufrufe, Dialogfunktionen) sind je Projekt über rules.json › gates einstellbar; ohne Eintrag gelten die genannten Standardwerte. Quelle: evaluateGates() im Prüfstand. Zusätzliche Kriterien der neuen Prüfdimensionen stehen deklarativ in rules.json › kriterien – siehe Neue Prüfdimensionen. Schnellläufe und überholte Läufe werden nicht bewertet.

Beispiel Lauf 29.10.2026: 57 Punkte – trotzdem NO-GO

100 von 175 Gewichtspunkten erfüllt = 57 Punkte. Zwei Muss-Kriterien verletzt: 56 kritische Abweichungen nicht freigegeben, 2 Szenarien verschlechtert.

Art und Schweregrad einer Abweichung

MerkmalAusprägungen
Artneu · entfallen · geändert · neuer Fehler · behoben – jeweils gegenüber der Referenz
Schweregradkritisch Buchungen, Salden, Steuern, Berechtigungen, entfallene Schnittstellen, Fehler in FI · hoch · mittel · niedrig
UnangekündigtDas Modul war im Pull Request nicht angekündigt: hebt den Schweregrad um eine Stufe und verlangt vier Augen.
InstabilBekannt wechselnde Prüfung (rules.json); standardmäßig ausgeblendet und nicht freigabepflichtig.

Typische Fragen

Warum NO-GO, obwohl die Punkte gestiegen sind?

Muss-Kriterien entscheiden, nicht die Punktzahl – z. B. offene kritische Abweichungen oder ein verschlechtertes Szenario.

Warum steht „OFFEN“ statt GO oder NO-GO?

Mindestens ein Muss-Kriterium ist nicht bewertbar, meist weil noch keine Referenz existiert. Lauf prüfen und als Referenz übernehmen.

Wohin führt ein Klick auf ein Kriterium?

Direkt zur Ursache: z. B. „Keine offenen kritischen Abweichungen“ in die Abweichungen, „Keine neuen Serverfehler“ in die Befunde mit Klasse Serverfehler, „Protokollkette intakt“ zur Protokollkette.

06
Grundlagen

Freigabe: Vier-Augen, Begründung, Referenzwechsel

Eine neue Referenz entsteht nur, wenn Menschen jede Abweichung einzeln mit Begründung freigeben – kritische und unangekündigte mit zwei Personen. Das System misst und dokumentiert, Menschen entscheiden.

Schublade einer Abweichung mit Feld, Referenzwert, neuem Wert und den Feldern Begründung, Freigeben und Ablehnen
Abb. Detail einer Abweichung: Änderungen gegenüber der Referenz, bisherige Freigaben und unten Begründung mit „Freigeben“ / „Ablehnen“.

Einzelne Abweichung freigeben

  1. Abweichung öffnen. Im Reiter Abweichungen auf die Zeile klicken (oder j/k und Enter).
  2. Änderung prüfen. Tabelle „Änderungen gegenüber der Referenz“: Feld · Referenz · Dieser Lauf; bei Masken zusätzlich Bildschirmfotos und Pixel-Unterschied; darunter der beobachtete Inhalt beider Läufe.
  3. Begründung eintragen (Pflicht) – fachlich, z. B. „CR-2026-114: Preislogik bewusst geändert“. Sie steht dauerhaft in der Protokollkette.
  4. „Freigeben“ oder „Ablehnen“. Die Entscheidung erscheint unter „Freigaben“ mit Name, Zeit und Begründung.

Sammelfreigabe

  1. Liste filtern (z. B. Bereich, Ebene, Art), dann Häkchen je Zeile setzen, mit x markieren oder „alle sichtbaren“ wählen.
  2. In der Leiste unten die Begründung eintragen und „Freigeben“ bzw. „Ablehnen“. Ohne Auswahl oder Begründung meldet das Cockpit „Zuerst Abweichungen auswählen.“ bzw. „Begründung angeben — sie steht im Änderungsprotokoll.“

Vier-Augen-Prinzip

  • Kritische und unangekündigte Abweichungen brauchen zwei Personen (Spalte „Freigabe“ zeigt z. B. „1/2 Personen“, Status teilfreigabe).
  • Die zweite Person entfällt bei einer nachgewiesenen reinen Testerweiterung (App-Quellen identisch mit der Referenz) oder auf Anordnung des Inhabers für genau diesen Lauf. Beides wird über die Schnittstelle gesetzt (nur-testaenderung mit Begründung und Nachweis bzw. eine-freigabe mit anordnender Person) und in der Protokollkette festgehalten.

Referenzwechsel

  1. Lauf öffnen (Kopfzeile: Lauf-Auswahl) – im Lauf-Kopf erscheint Als Referenz übernehmen, wenn der Lauf fertig und nicht schon Referenz ist.
  2. Sind noch Abweichungen offen, meldet das Cockpit „Noch n Abweichung(en) nicht freigegeben — zuerst im Reiter „Abweichungen“ freigeben.“
  3. Begründung für die neue Referenz bestätigen (Vorschlag: „Alle Abweichungen geprüft und freigegeben.“). Der Wechsel wird in der Protokollkette festgehalten; alle folgenden Läufe vergleichen gegen diesen Lauf.
Tipp

Zuerst nach „kritisch“ filtern – offene kritische Abweichungen blockieren die Freigabe. Gewollte Änderungen (z. B. neue Felder einer Maske) gezielt mit Ticket-Bezug freigeben; Unklares ablehnen und mit der Entwicklung klären.

07
Grundlagen

Befund-Klassen und Kategorien

Nicht alles Rote ist ein App-Fehler. Jeder Befund wird automatisch einer Kategorie (wer ist zuständig?) und einer technischen Klasse (welche Art Fehler?) zugeordnet.

Kategorien

KategorieWoran erkennbarWie man es liest / nächster SchrittZuständig
App-FehlerHTTP 5xx, SQL-/Schemafehler, JavaScript-Fehler, verletzte DB-Regel; Rechte-, Robustheits- und DialogbefundeUrsachen-Typ und Erste Analyse lesen (z. B. „Schema: Spalte fehlt“) – der Prüfauftrag liefert SQL- und Code-SuchhinweiseEntwicklung
Fachliche ErwartungMeldung „Erwartung nicht erfüllt“: technisch erfolgreich, fachlich falsches Ergebnis (Betrag, Status, Folgebeleg)Mit dem Fachkonzept abgleichen: rechnet die App falsch – oder ist die Erwartung im Szenario falsch?Berater + Entwicklung
Fachlich abgewiesenHTTP 4xx ohne Code- oder Schemafehler: die App lehnt den Vorgang abIst die Ablehnung fachlich richtig? Dann Szenario bzw. Testdaten anpassen, sonst als App-Fehler behandelnBerater
Datenkonsistenzverletzte Konsistenzregel (Soll = Haben, Liefer-/Fakturamengen, Bestand …) mit auslösender Szenario-DateiRegel und Verursacher-Datei öffnen; meist Buchungs- oder MengenlogikEntwicklung
Buchungskreis-KontextVorgang findet keinen eindeutigen Buchungskreis (Mandant mit mehreren aktiven Buchungskreisen)Buchungskreis am Vorgang pflegen oder aktiv wählen – laut Meldung im BefundEntwicklung / Berater
Golden-Daten / CustomizingNummernkreis, Kontenfindung, „nicht konfiguriert“, kein Geschäftsjahr, Modul deaktiviertNicht die App ändern: Golden-Record per Ergänzung vervollständigen. Im Reiter Befunde standardmäßig ausgeblendet.QS-Team / Berater
Fehlalarme

Ist die Prüfung selbst falsch oder zeitabhängig (instabil), wird sie im Prüfstand mit Begründung korrigiert – nie, um einen roten Lauf grün zu machen. Vorher die Stabilität prüfen.

Zuständigkeit (automatische Einordnung)

Zusätzlich bekommt jeder Befund genau eine Zuständigkeit mit Begründung – die Antwort auf „wer muss handeln?“. Sie steht als Spalte „Zuständig“ und Filter in Befunde und im Befund-Verlauf, in Ticket-Texten und in jedem Prüfauftrag.

KlasseZuständigTypische Belegecefd1ba
App-FehlerEntwicklungCode-/Schemafehler, Route fehlt („Cannot GET …“), toter Knopf, Rechte-, Robustheits-, Nebenläufigkeitsbefunde, HTTP 5xx mit fachlicher Meldung183
Testdaten/SzenarioPrüfstand-TeamSzenario erwartet etwas Falsches oder nutzt ungeeignete Testdaten, Klickpfad findet ein Feld nicht52
Customizing/Golden-RecordBeraterNummernkreis, Kontenfindung, „nicht konfiguriert“, Geschäftsjahr/Periode, Wechselkurs fehlt14
Fehlalarm-VerdachtPrüfstandBefund kommt und geht über die letzten Läufe ohne harten Fehler (instabil) – mit „seit wann“7
InfrastrukturBetriebkeine Antwort (HTTP 0), Gateway 502/503/504, Verbindungsabbruch, Speichergrenze, fehlende Dateien im Container9

Regeln in src/report/zustaendig.js in fester Reihenfolge (die erste passende gewinnt) aus HTTP-Status, Fehlercode, Meldung, Ebene und Historie der bis zu 7 vorangehenden Läufe. Harte Code-/Schemafehler schlagen Instabilität. Folgefehler („übersprungen: Schritt … fehlgeschlagen“) erben die Klasse des fehlgeschlagenen Vorgängers.

Klassen

Die Klasse beschreibt die technische Art des Befunds und steuert Farben und Filter in Befunde und im Cockpit („Befunde nach Klasse“):

Serverfehler Schema Buchungskreis Fachlich abgewiesen MCP-Tool Prüfkette Konsistenz Oberfläche Sonstiges

Ebenen

Jede Beobachtung gehört zu einer Ebene, z. B. Szenarien, API (lesende Endpunkte), MCP, Oberfläche, Prüfketten, Datenbank, Kennzahlen, Konsistenz. Ebenen erscheinen als Filter-Chips und als Spalten der Modul-Matrix.

B

Das Cockpit

Jeder Menüpunkt der Navigation – in der Reihenfolge des Menüs

08
Menü › Cockpit

Cockpit

Adresse #/ · Kürzel g c

Die Startseite: Urteil des letzten Laufs, Freigabe-Entscheidung, Kennzahlen, Trends und die wichtigsten Auswertungen auf einer Seite.

Zweck

Eine klare, regelbasierte Antwort auf die Frage „Darf diese Version zum Kunden?“ – und der schnellste Einstieg in alle Details.

Cockpit mit Block Letzter Lauf, Freigabe-Entscheidung NO-GO und Kriterienliste in zwei Spalten
Abb. Cockpit bei 1.600 px: Letzter Lauf, darunter die Freigabe-Entscheidung mit allen Kriterien (lokales Cockpit mit den Daten von cefd1ba, ohne gesetzte Referenz – daher 46 Punkte und „ohne Referenz nicht bewertbar“).
Freigabe-Entscheidung im Cockpit: NO-GO mit 57 von 100 Qualitätspunkten und Liste der Kriterien mit Ampel
Abb. Freigabe-Entscheidung (hier in der kompakten Darstellung des Prüfberichts; im Cockpit identisch aufgebaut): Urteil, Qualitätspunkte, Gewichtsbalken und alle Kriterien; verletzte Muss-Kriterien rot mit Zusatz „muss“.

Was man sieht – von oben nach unten

BlockInhalt und Bedienung
Letzter LaufUrteil mit Text, Start (vor wie langer Zeit), Dauer, Version und Branch, Uhr des QS-Gates, Referenz (Link) und wer sie gesetzt hat. Knöpfe: Abweichungen prüfen, Befunde, Gesamt-Prüfauftrag (MD).
Lauf läuftNur während eines Laufs: Fortschritt in %, geschätzte Restzeit, alle Phasen als Balken (erledigt / aktuell / ausstehend), aktuelle Phase. Aktualisiert sich alle 15 Sekunden; nach Abschluss meldet das Cockpit „Lauf abgeschlossen.“ Wartet ein neuer Stand, steht in der Kopfzeile zusätzlich „wartet: <commit>“.
Freigabe-EntscheidungGO / NO-GO / OFFEN, Qualitätspunkte, Kriterienliste – Klick auf ein Kriterium führt zur Ursache. Siehe Bewertung.
KennzahlenOffene Abweichungen (kritisch/hoch/instabil), Echte App-Fehler, Szenarien fehlerfrei, Schreibende und Lesende Endpunkte geprüft, Masken ohne Fehler – jede Kachel ist ein Link.
Abweichungen je Lauf · Befunde je LaufGestapelte Balken je Lauf nach Schweregrad bzw. Kategorie; Klick auf einen Balken öffnet diesen Lauf.
Befunde je Lauf nach Ebene · Bearbeitung der BefundeTrend nach Ebene; Stand der Befund-Bearbeitung nach Status und Verantwortlichen.
Modul-Matrix · Befunde nach KlasseFehleranteil je Bereich und Ebene (Zahl = Fehler, rote Zahl = Abweichungen); Klick auf eine Zelle filtert Befunde bzw. Abweichungen, Klick auf den Bereich öffnet den Bereichs-Steckbrief. Details in Module.
Größte Ursachen · Ursachen-TypenDie sechs größten Ursachen-Gruppen und die Verteilung nach Typ; „Alle Ursachen →“.
Befunde nach Bereich · Abdeckung je Bereich · Lauf im DetailTop 12 Bereiche, geprüfte Endpunkte je Bereich, Dauer der Phasen und Laufzeitklassen (Tooltip je Segment).

Bedienung Schritt für Schritt

  1. Urteil ablesen und mit den roten Muss-Kriterien beginnen – sie entscheiden, nicht die Punktzahl.
  2. Kriterium anklicken, um direkt in die gefilterte Ansicht zu springen.
  3. Kennzahl-Kachel oder Matrix-Zelle anklicken, um sich auf einen Bereich zu konzentrieren.
  4. Gesamt-Prüfauftrag (MD) für die Entwicklung herunterladen – siehe Prüfauftrag.
Noch kein Lauf?

Dann zeigt das Cockpit „Noch kein abgeschlossener Lauf.“ Der Prüfstand startet automatisch, sobald eine neue Version im QS-Gate läuft – oder oben „Lauf starten“.

Tipp

Im Kundentermin zuerst die roten Muss-Kriterien zeigen; die Modul-Matrix ist der Einstieg je Fachbereich. Das Cockpit ist für alle Breiten von 1.280 bis 2.560 px und für das Handy ausgelegt – nichts wird rechts abgeschnitten; breite Tabellen scrollen in sich.

09
Menü › Läufe

Läufe

Adresse #/laeufe

Die Historie aller Läufe mit Urteil, Abweichungen, Befunden, Umfang und Dauer – und der Einstieg in jeden früheren Lauf.

Urteil des letzten Laufs, Fortschritt eines laufenden Prüflaufs je Phase und Tabelle aller Läufe
Abb. Live-Lauf (oben, im Cockpit) und Lauf-Historie mit Urteil, Abweichungen, Befunden und Dauer.

Was man sieht

SpalteBedeutung
AuswahlHäkchen für den Vergleich (nur fertige Läufe)
StartDatum, Uhrzeit, vor wie langer Zeit
Urteilgrün / gelb / rot / ohne Referenz bzw. „läuft“, außerdem Schnelllauf (nicht freigaberelevant), Überholt und Abgebrochen; zusätzlich Referenz und ohne Reset, wenn der Lauf mit mehr Zeilen als der Golden-Record startete (nicht vergleichbar). Nur fertige volle Läufe lassen sich zum Vergleich ankreuzen.
VersionKurz-Commit und Auslöser (z. B. „manuell (Name) · mit Reset“)
AbweichungenBalken nach Schweregrad, Anzahl, kritische hervorgehoben; „keine“ bei grünem Lauf
Befunde · Schritte · Schreibend geprüft · DauerKennzahlen je Lauf; alle Spalten sortierbar per Klick auf die Überschrift

Darunter: Dauer je Lauf (Minuten) und Abdeckung je Lauf (schreibend, lesend, MCP-Tools in %).

Bedienung

  1. Lauf öffnen: Zeile anklicken – öffnet den Reiter Abweichungen dieses Laufs. Alternativ die Lauf-Auswahl in der Kopfzeile.
  2. Zwei Läufe vergleichen: genau zwei Häkchen setzen, dann „Zwei Läufe vergleichen“ – öffnet den Vergleich.
  3. Neuen Lauf starten: „Lauf starten“ in der Kopfzeile, Abfrage bestätigen (siehe Ablauf).

Lauf-Kopf (in jedem Reiter eines Laufs)

Über allen Reitern von „Ausgewählter Lauf“ steht der Lauf-Kopf: Urteil, ggf. Referenz, Start, Dauer, Version, Auslöser, „Verglichen mit“ (Link zur Referenz) und die Freigabe-Plakette (GO / NO-GO / OFFEN mit Punkten, Link zum Prüfbericht). Knöpfe:

KnopfWirkung
Prüfberichtdruckbarer Bericht des Laufs – Prüfbericht
Gesamt-Prüfauftrag (MD)eine Datei mit allen Problemen des Laufs für einen KI-Coding-Agenten
Prüfauftrag in Paketenöffnet die Schublade mit „Alle als ZIP“, Übersicht, Gesamtdatei und Download je Paket – siehe Prüfauftrag
Befunde ausführlich (MD)alle Befunde und offenen Abweichungen, jede Prüfung mit Reproduktion
Protokoll PDF · MarkdownLauf-Protokoll als PDF bzw. Markdown
Release NotesRelease Notes des Laufs als Markdown
Als Referenz übernehmennur für fertige Läufe, die nicht Referenz sind – Referenzwechsel

Unter den Knöpfen erscheinen bei Bedarf zwei Zeilen:

  • Hinweis zum Lauf – bei Schnelllauf, überholtem oder abgebrochenem Lauf der Grund bzw. das Ergebnis (z. B. „Schnelllauf – nicht freigaberelevant. 1 neue Fehler, 1 behoben …“).
  • KI-Zweitprüfung Rechnungswesen – Status (bewertet, Budget erreicht, nicht konfiguriert, abgeschaltet), bewertete Belege „n von m“, Anzahl der KI-Hinweise auf Abweichung (Klick öffnet die Suche nach „KI-Hinweis“), Tokens ein/aus, Anfragen und geschätzte Kosten in €. Siehe Fachprüfung Rechnungswesen.

Die Reiter des Laufs: Abweichungen, Befunde, Ursachen, Module, Szenarien, Prozesse, Dialoge, Abdeckung, Code, Endpunkte, Oberfläche, Datenbank, Prüfketten, Suche. Die Reiter außer Abweichungen brauchen den vollständigen Lauf-Index: Läuft der Lauf noch, steht dort „Der Lauf ist noch nicht abgeschlossen.“; bei Schnelllauf, überholtem oder abgebrochenem Lauf erklärt ein Hinweis, warum es keine Auswertung gibt.

Tipp

Ein Lauf mit Kennzeichen „ohne Reset“ ist nicht vergleichbar – vor dem nächsten Lauf das QS-Gate zurücksetzen.

10
Menü › Prozess-Studio

Prozess-Studio

Adresse #/studio · Unterseiten #/studio/spielen, #/studio/aufnahme, #/studio/makro/<id>

Alle Prozesse, Varianten und Dialogfunktionen des Golden-Records als fertige Makros: abspielen (Schritt für Schritt, automatisch, bis zum Haltepunkt), je Schritt die Maske der Oberfläche mit dem Beleg öffnen, verändern und erweitern.

Prozess-Studio mit Kopfbereich, Reitern Prozesse, Prozessvarianten, Dialogfunktionen, Makros und Prozessliste
Abb. Prozess-Studio: Prozesse je Bereich mit Schritten, Status, Makro und Gegenprobe.

Zweck

Prozesse werden für Demo, Schulung oder Fehleranalyse Schritt für Schritt nachvollziehbar, und Kundenprozesse werden ohne Programmierung zu dauerhaften Prüfszenarien.

Kopfbereich

Zähler: Prozesse, fertige Makros, davon exakt wiederholbar, eigene Makros, Adresse der Oberfläche. Knöpfe: Laufende Wiedergabe bzw. Letzte Wiedergabe, Aufnahme an der Oberfläche, Neues Makro.

Wichtig

Abspielen verändert Daten im QS-Gate (wie ein Anwender). Fertige Makros sind auf dem frischen Golden-Record aufgezeichnet und laufen dort exakt; nach anderen Wiedergaben können Abweichungen entstehen. Prüfläufe warten, bis die Wiedergabe beendet ist.

Die vier Reiter

ReiterInhaltFilter
ProzesseJedes Szenario je Bereich: Titel, ID, Datei, abgedeckte Prozessvarianten, Schritte und Befunde im letzten Lauf, Makro mit Gegenprobe; ▶ abspielen (Schritt für Schritt / automatisch), </> zeigt den Quelltext (nur lesen).Suche, Bereich, Zustand: wiederholbar · mit Abweichung · ohne Makro · mit Befund im letzten Lauf
ProzessvariantenKennzahlen (im Katalog, im Studio abspielbar, ohne Makro, fertige Makros) und je Variante Bereich, Prozess, fachliche Erwartung und Makro.Suche, Bereich, abspielbar · kein Makro · nicht angeboten
DialogfunktionenJede Backend-Aktion einer Maske mit Aufruf, Datei und Funktion; Knopf bis Schritt n spielt das passende Makro automatisch bis vor diese Funktion und hält dort an.Suche, Pfad, abspielbar · kein Makro · dynamisch
MakrosAlle Makros mit Bereich, Schritten, Art (fertig eigen angepasst im Prüflauf) und Gegenprobe; ▶ abspielen, Stift = bearbeiten.Suche, Bereich, fertig (Golden) · eigene · angepasst · wiederholbar · mit Abweichung · im Prüflauf

Kurzbedienung

  1. Prozess suchen (Reiter Prozesse oder Makros) und ▶ wählen: grüner Knopf = Schritt für Schritt, zweiter Knopf = automatisch.
  2. Abspielen auf der Seite „Abspielen“ steuern – Nächster Schritt, Automatisch weiter, Haltepunkte, Tempo, Stopp.
  3. Makro anpassen über den Stift, neu aufnehmen über „Aufnahme an der Oberfläche“.

Die ausführliche Anleitung mit allen Bildern steht im Kapitel Prozess-Studio: Anleitung.

Bezeichnungen statt IDs

Prozess-Studio und Makro-Editor zeigen Namen (Partner, Material, Konto …) statt technischer IDs. Ohne Zugriff auf die QS-Datenbank holt das Studio die Bezeichnungen über die App-API; erst wenn beides fehlt, erscheinen IDs.

11
Menü › Ausgewählter Lauf › Abweichungen

Abweichungen

Adresse #/lauf/<lauf>/abweichungen · Kürzel g a · Zahl im Menü = offene Abweichungen des letzten Laufs

Jede Änderung gegenüber der Referenz – nach Schweregrad, Ebene, Art und Bereich – mit Freigabe direkt in der Liste.

Abweichungsliste mit Kennzahlen je Schweregrad, Filtern und Tabelle der Abweichungen nach Bereich gruppiert
Abb. Abweichungen: Kacheln je Schweregrad, Filter, nach Bereich gruppierte Liste mit geändertem Feld (alt → neu) und Freigabestatus.

Zweck

Unbeabsichtigte Seiteneffekte einer Änderung werden gefunden, bevor ein Anwender sie bemerkt. Nichts ändert sich mehr „still“ im System.

Filter und Elemente

ElementWirkung
Kacheln Kritisch · Hoch · Mittel · NiedrigAnzahl je Schweregrad, davon freigegeben
Suchfeld„Prüfung, Pfad, Wert …“ – durchsucht Titel, Schlüssel, Modul und geänderte Werte
Alle Bereicheauf einen Bereich einschränken
Chips Schweregradkritisch, hoch, mittel, niedrig (mehrere wählbar)
Chips Freigabeoffen, teilfreigabe, freigegeben, abgelehnt – Voreinstellung: offen + teilfreigabe
Chips Ebene · Artz. B. Szenarien, API, Oberfläche … · neu, geändert, entfallen, neuer Fehler, behoben
instabile zeigenblendet bekannte instabile Prüfungen ein (sonst ausgeblendet)
nach Bereich gruppierenListe nach Bereich gruppieren (Voreinstellung) oder flach anzeigen
CSVExport aller Abweichungen des Laufs
Leiste unten„alle sichtbaren“, Zähler „n ausgewählt“, Begründung (Pflicht), Freigeben, Ablehnen

Spalten der Liste: Schweregrad (ggf. unangekündigt), Prüfung mit Ebene · Modul · Art, Änderung (bis zu zwei Felder alt → neu, „+ n weitere“), Freigabe (Status, bei vier Augen „x/2 Personen“).

Bedienung Schritt für Schritt

  1. Nach „kritisch“ filtern – offene kritische Abweichungen blockieren die Freigabe.
  2. Zeile öffnen (Klick oder j/k + Enter): Die Schublade zeigt Änderungen, Bildschirmfotos (Referenz, dieser Lauf, Pixel-Unterschied), Anfrage, HTTP-Status und den normalisierten Inhalt beider Läufe.
  3. Entscheiden: in der Schublade oder als Sammelfreigabe – siehe Freigabe.
  4. Weitere Aktionen der Schublade: „Verlauf über die Läufe“, „Prüfauftrag (MD)“ für genau diese Prüfung, „Bereich …“ (Bereichs-Steckbrief).
Keine Abweichungen?

„Keine Abweichungen gegenüber der Referenz.“ – oder, ohne Referenz: „Dieser Lauf hat keine Referenz.“ Dann Befunde prüfen und den Lauf als Referenz übernehmen.

Typische Fragen

Warum sehe ich weniger Abweichungen als im Menü steht?

Der Freigabe-Filter steht anfangs auf „offen“ und „teilfreigabe“, instabile sind ausgeblendet. Chips abwählen bzw. „instabile zeigen“ aktivieren.

Muss ich „behobene“ Abweichungen freigeben?

Nein – für den Referenzwechsel zählen nur Abweichungen, die nicht „behoben“ und nicht instabil sind.

12
Menü › Ausgewählter Lauf › Befunde

Befunde

Adresse #/lauf/<lauf>/befunde · Kürzel g b · Zahl im Menü = Befunde des letzten Laufs

Alle fehlschlagenden Prüfungen des Laufs – nach Kategorie, Klasse, Ebene und Bereich, mit Bearbeitung (Status, Verantwortliche, Ticket) und Exporten.

Befunde je Bereich nach Klasse, häufigste Ursachen und Befundliste mit Filtern
Abb. Befunde: oben „Befunde je Bereich“ (klicken filtert) und „Häufigste Ursachen“, darunter Filter und Liste.

Zweck

Unterscheidet echte App-Fehler von fachlichen Ablehnungen und Golden-Daten-Themen – ein gemeinsames Fehlerbild für Fachbereich, Berater und Entwicklung.

Filter und Elemente

ElementWirkung
Suchfeld„Pfad, Meldung, Prüfung …“
Alle Bereiche · Alle HTTP-StatusEinschränken auf Bereich bzw. Statuscode
Bearbeitungalle · noch nicht bearbeitet · je Status (mit Anzahl)
Chips KategorieApp-Fehler, Datenkonsistenz, Fachliche Erwartung, Fachlich abgewiesen, Buchungskreis-Kontext, Golden-Daten/Customizing – Golden-Daten/Customizing ist standardmäßig ausgeblendet (Hinweis mit Anzahl)
Chips ZuständigApp-Fehler · Entwicklung, Testdaten/Szenario · Prüfstand-Team, Customizing/Golden-Record · Berater, Fehlalarm-Verdacht · Prüfstand, Infrastruktur · Betrieb (je mit Anzahl, mehrere wählbar). Direkt verlinkbar über ?zustaendig=app (mehrere mit Komma, z. B. ?zustaendig=testdaten,customizing).
Chips Klasse · Ebenesiehe Befund-Klassen
Prüfauftrag (MD)Befunde der aktuellen Auswahl (Bereich, Klasse, Ebene) als Prüfauftrag
CSValle Befunde mit Bereich, Ebene, Klasse, Methode, Pfad, Status, Meldung, Prüfung, Schlüssel
Leiste unten„alle sichtbaren“, Status · Verantwortlich · Ticket · Notiz, Bearbeitung setzen, Ticket-Texte kopieren, Prüfauftrag (MD) für die Auswahl
Befundliste mit Filterzeile Zuständig und Spalte Zuständig mit Klasse und Team
Abb. Filter „Zuständig“ (hier Infrastruktur und Testdaten/Szenario gewählt) und Spalte „Zuständig“ mit Klasse und Team; die Begründung erscheint als Tooltip (lokales Cockpit, Daten cefd1ba).

Die Spalte Zuständig zeigt Klasse und Team; der Tooltip nennt die Begründung (z. B. „Keine Antwort vom QS-Gate (HTTP 0) – Dienst/Netz prüfen“) und bei instabilen Befunden den Verlauf. Die Suche findet auch Klasse und Team. Ticket-Texte und Prüfaufträge enthalten die Zuständigkeit.

Befund-Detail mit Fehlermeldung, Erster Analyse, Bearbeitungsfeldern und Anfrage-Inhalt
Abb. Befund-Detail: Aktionen, Bearbeitung, Fehler, Erste Analyse (Kategorie, Typ, Szenario-Datei, Hinweise), Anfrage-Inhalt und beobachteter Inhalt.

Bedienung Schritt für Schritt

  1. Eingrenzen: Bereich im Balkendiagramm anklicken, Kategorie/Klasse wählen oder nach Zuständig filtern – so bekommt jedes Team genau seine Liste.
  2. Befund öffnen: Die Schublade zeigt Fehler, Erste Analyse mit Diagnose-Hinweisen (z. B. Suchbefehl für die Route) und die Anfrage.
  3. Bearbeiten: Status (neu, in Arbeit, Ticket, bekannt, akzeptiert, erledigt), Verantwortlich, Ticket (z. B. RERP-123), Notiz → „Speichern“. Die Bearbeitung gilt für diesen Befund über alle Läufe; der Verlauf der Bearbeitung ist aufklappbar.
  4. Weitergeben: „Ticket-Text kopieren“ (Markdown für das Ticketsystem) oder „Prüfauftrag (MD)“.
  5. Sammelbearbeitung: mehrere Befunde markieren, Felder in der Leiste füllen, „Bearbeitung setzen“.
Tipp

Befunde mit Verantwortlichem und Ticket versehen – das gilt über alle folgenden Läufe. Im Cockpit zeigt „Bearbeitung der Befunde“ den Stand.

13
Menü › Ausgewählter Lauf › Ursachen

Ursachen

Adresse #/lauf/<lauf>/ursachen

Befunde mit derselben normalisierten Fehlermeldung werden zu Ursachen-Gruppen gebündelt: eine Ursache, viele Symptome. Eine Korrektur an der richtigen Stelle beseitigt oft dutzende Befunde auf einmal.

Ursachen-Analyse mit Kennzahlen, Pareto-Diagramm und Ursachen-Gruppen
Abb. Ursachen: Kennzahlen, Pareto der Ursachen (Linie = kumulierter Anteil), Verteilung nach Ursachen-Typ und Gruppenliste.

Was man sieht

  • Kennzahlen: Befunde, Ursachen-Gruppen, Anteil der 10 größten Ursachen, neu im letzten Lauf.
  • Pareto der Ursachen: die 25 größten Gruppen; rote Balken enthalten neue Befunde. Klick auf einen Balken springt zur Gruppe.
  • Nach Ursachen-Typ: Klick filtert die Liste auf diesen Typ (erneuter Klick hebt auf).
  • Je Gruppe: Anzahl, Typ · Kategorie, Meldung, Klassen, HTTP-Status, Bereiche (Links zum Steckbrief), Diagnose-Hinweise, betroffene Endpunkte und Szenarien (Links), erstes Auftreten.

Bedienung

  1. Filtern: Suchfeld „Meldung, Endpunkt, Bereich …“, Klasse, Chips echte Fehler (Voreinstellung) · alle · mit neuen Befunden · unbearbeitet · Golden-Daten/Customizing.
  2. Gruppe exportieren: „Prüfauftrag (MD)“ erzeugt den Auftrag nur für diese Ursache (ohne Abweichungen) – ideal, um Arbeit zu verteilen.
  3. Befunde der Gruppe ansehen: Knopf „Befunde“.
  4. Gemeinsam bearbeiten: „Bearbeitung für alle n Befunde setzen“ aufklappen, Felder füllen, „Übernehmen“.
  5. Mehr anzeigen: Die Liste zeigt 25 Gruppen; „Weitere … Ursachen anzeigen“ lädt nach.
Tipp

In Ursachen statt Einzelbefunden sprechen: Im Lauf vom 29.10.2026 waren es 265 Befunde in 202 Ursachen-Gruppen.

14
Menü › Ausgewählter Lauf › Module

Module

Adresse #/lauf/<lauf>/module · Bereichs-Steckbrief #/bereich/<Bereich>

Die Modul-Matrix über alle Bereiche und Ebenen sowie eine sortierbare Bereichstabelle – zeigt sofort, wo sich Probleme ballen.

Kennzahlen, Trends und Modul-Matrix mit Fehleranteil je Bereich und Ebene
Abb. Kennzahlen, Trends und Modul-Matrix (hier im Cockpit): Fehler je Bereich und Prüfebene.

Modul-Matrix lesen

  • Zeilen = Bereiche, Spalten = Ebenen (Szenarien, API, MCP, Oberfläche, Prüfketten, Datenbank, Kennzahlen, Konsistenz).
  • Farbe = Fehleranteil (0, < 2 %, < 5 %, < 12 %, < 25 %, ≥ 25 %); Zahl = Fehler, kleine rote Zahl = Abweichungen.
  • Tooltip: Prüfungen, fehlerhaft, Abweichungen, davon kritisch.
  • Klick auf eine Zelle öffnet Befunde (oder, wenn es nur Abweichungen gibt, Abweichungen) gefiltert auf Bereich und Ebene; Klick auf den Bereichsnamen öffnet den Bereichs-Steckbrief.

Bereiche im Überblick

Tabelle mit Prüfungen, Fehlern (Link zu Befunden), Fehleranteil, Abweichungen (Link, kritische hervorgehoben), Szenarien grün, Schritten und geprüften Endpunkten – sortierbar per Klick auf die Spaltenüberschrift.

Bereichs-Steckbrief

Alles zu einem Bereich auf einer Seite: Kennzahlen (Prüfungen, Befunde, offene Abweichungen, Szenarien grün, Endpunkte geprüft, Tabellen verändert), Ebenen des Bereichs, Befunde je Lauf, Listen der Szenarien, Befunde, Endpunkte („nur ohne Prüfung“), Abweichungen sowie Tabellen und Prüfketten. Oben: Prüfauftrag (MD) für den Bereich und eine Auswahl, um zu einem anderen Bereich zu wechseln.

Tipp

Für Fachbereichstermine den Steckbrief des eigenen Bereichs öffnen – er enthält alle Ebenen ohne Ablenkung.

15
Menü › Ausgewählter Lauf › Szenarien

Szenarien

Adresse #/lauf/<lauf>/szenarien · Detail …/szenarien/<id>

Rund 1.120 fachliche Szenarien – echte Abläufe vom Angebot bis zur Zahlung, über die API bis zum Endzustand.

Szenario-Karten je Bereich mit Schrittleiste, Endpunkten und Laufzeit
Abb. Szenarien als Karten je Bereich: Status (grün, n Befunde, abgebrochen), Schrittleiste (rot = Befund-Schritt), ID, Schritte, Endpunkte, Laufzeit.

Bedienung

  1. Überblick: Kacheln Szenarien, Vollständig grün, Mit Befund-Schritten (davon abgebrochen), Schritte (davon fehlerhaft).
  2. Filtern: „Szenario suchen …“, Bereich, Status: mit Befund-Schritten · vollständig grün · abgebrochen.
  3. Szenario öffnen: Karte anklicken. Die Detailseite zeigt Kennzahlen (Schritte, Befund-Schritte, abweichende Schritte, Laufzeit und langsamster Schritt), eine Schrittleiste mit Tooltips und die Zeitleiste aller Schritte mit Anfrage, Prozessart (Storno, Korrektur, Retoure …), Kennzeichen „abweichend“, HTTP-Status und Laufzeit.
  4. Schritt öffnen: Klick auf einen Schritt öffnet die Schublade mit Anfrage, Antwort und Vergleich zur Referenz.
  5. Zurück: „← alle Szenarien“.
Tipp

Ein Szenario mit Befund im Prozess-Studio Schritt für Schritt abspielen – gemeinsam mit dem Kunden.

16
Menü › Ausgewählter Lauf › Prozesse

Prozesse

Adresse #/lauf/<lauf>/prozesse

Prozessvarianten je Bereich: Normal, Storno, Retoure, Korrektur, Ablehnung, Abschluss, Wiedereröffnung – und der Prozesskatalog mit fachlicher Erwartung je Variante.

Matrix der Prozessarten je Bereich und Sonderfälle
Abb. Prozessarten je Bereich (Zahl = geprüfte Schritte, rot = mit Befund, gestrichelt = nicht geprüft) und Sonderfälle gesamt.

Was man sieht

  • Kennzahlen: Prozessvarianten im Katalog (Prüfmenge, davon von der App nicht angeboten; ohne ausgenommene, Katalog gesamt in Klammern), Geprüft und grün, Mit Befund, Lücken / nicht gelaufen und Ausgenommen (Klick filtert die Liste darauf).
  • Prozessarten je Bereich: automatisch aus den Schrittnamen erkannt. Klick auf eine Zelle listet die betroffenen Szenarien.
  • Sonderfälle gesamt: grün / mit Befund je Sonderfall; Bereiche ohne Storno, Korrektur oder Retoure werden genannt.
  • Prozesskatalog: fachliche Erwartung je Prozess und Variante mit Zustand.
Prozesskatalog mit gewähltem Filter ausgenommen und Begründung je Variante
Abb. Prozesskatalog mit Filter „ausgenommen“: je Variante die Pflichtbegründung. In der Kopfzeile ein laufender Lauf mit wartendem Stand „wartet: <commit>“ (lokales Cockpit, nachgestellt).

Filter im Prozesskatalog

Suchfeld „Prozess, Erwartung, Szenario …“, Bereich, Prozessart und Chips je Zustand: Befund · abgebrochen · nicht gelaufen · teilweise gelaufen · Lücke · grün · nicht angeboten · ausgenommen.

  • ausgenommen – bewusst nicht Gegenstand der Prozessprüfung (z. B. technischer/interner Wert, Konzepttext, gesetzlich nur im Kassensystem). Die Begründung (mindestens 15 Zeichen, sonst gilt die Variante als Lücke) steht in der Spalte „Fachliche Erwartung“. Ausgenommene Varianten zählen nicht in Prüfmenge und Quote und sind ohne Zustandsfilter ausgeblendet (Hinweis mit Anzahl über der Liste).
  • nicht angeboten – die App bietet die Variante (noch) nicht an: Produktentscheidung offen bzw. Umsetzung nach SAP-Abgleich geplant.

Wie Varianten entstehen und entschieden werden, beschreibt das Kapitel Prozesskatalog.

Tipp

Gerade Sonderfälle wie Storno oder Retoure verursachen im Betrieb die meisten Fehler. Varianten mit dem Fachbereich durchgehen; fehlende im Prozess-Studio aufnehmen.

17
Menü › Ausgewählter Lauf › Dialogfunktionen

Dialogfunktionen

Adresse #/lauf/<lauf>/dialoge (Reiter „Dialoge“)

Jeder Knopf, jede Aktion einer Maske, die das Backend aufruft – Speichern, Export, Statuswechsel – und ob ein Test sie erreicht.

Dialogfunktionen mit Kennzahlen, Abdeckung je Bereich und Liste offener Stellen
Abb. Dialogfunktionen: Kennzahlen, Abdeckung je Bereich, „So wird gezählt“ und Liste mit Zustand.

So wird gezählt

Jede Stelle im Frontend, an der eine Maske das Backend aufruft, ist eine Dialogfunktion. Geprüft ist sie, wenn ein Szenario-Schritt oder die Leseprüfung dieselbe Methode und Route aufruft; bei Varianten (feste Werte wie action: 'approve' oder Query-Parameter wie ?format=csv) muss der Aufruf diese Variante tragen. Tote Knöpfe – Aufrufe ohne Backend-Route – meldet die Prüfphase „Dialogfunktionen“ als Befund.

Bedienung

  1. Kennzahlen lesen: Dialogfunktionen (davon dynamisch), Durch Tests geprüft, Variante fehlt, Ungeprüft (davon ohne bekannte Backend-Route).
  2. Bereich wählen im Balkendiagramm „Abdeckung je Bereich“ (klicken filtert).
  3. Zustände filtern: Chips nur mit Fehler · ungeprüft · Variante fehlt · geprüft · dynamisch – Voreinstellung sind die drei offenen Zustände. Suchfeld „Pfad, Datei, Komponente …“.
  4. Lücke schließen: im Prozess-Studio › Dialogfunktionen „bis Schritt n“ abspielen oder einen Schritt aus der Maske in ein Makro übernehmen.
Hinweis

Fehlt das Inventar, erscheint „Kein Inventar der Dialogfunktionen für diesen Lauf“ – es entsteht beim Bau des Prüfstands aus dem Frontend-Quelltext.

18
Menü › Ausgewählter Lauf › Abdeckung

Abdeckung

Adresse #/lauf/<lauf>/abdeckung · Code-Abdeckung im Reiter „Code“ (…/code)

Was wird geprüft – und was bewusst nicht: Endpunkte, Laufzeitklassen, langsamste Aufrufe, begründete Ausnahmen und die Backend-Code-Abdeckung.

Abdeckung der Schnittstellen mit Kennzahlen, Endpunkten je Bereich, Laufzeitklassen und langsamsten Aufrufen
Abb. Abdeckung: lesend und schreibend geprüft, je Bereich, Laufzeitklassen, langsamste Aufrufe.

Elemente

BlockInhalt
KennzahlenEndpunkte gesamt (lesend/schreibend), Lesend geprüft (direkt/in Szenarien), Schreibend durch Szenarien, MCP-Tools aufgerufen (nur lesende)
Endpunkte je Bereichgrün = durch eine Prüfung aufgerufen; Klick filtert
Laufzeitklassen · Langsamste AufrufeVerteilung der Laufzeiten; Aufrufe über 1 s (Klick öffnet die Beobachtung)
Begründet ausgenommenEndpunkte, die bewusst nicht geprüft werden, mit Begründung (rules.json › coverageExclusions)
Endpunkte ohne PrüfungKandidaten für neue Szenarien; Filter „Pfad filtern …“ und Bereich; CSV-Export. Neue Endpunkte ohne Prüfung meldet der Prüfstand als Abweichung.

Reiter „Code“: Backend-Code-Abdeckung

Backend-Code-Abdeckung mit Funktionen, Verzweigungen, Abdeckung je Bereich und nicht mehr erreichten Dateien
Abb. Code-Abdeckung: ausgeführte Funktionen und Verzweigungen, Abdeckung je Bereich, Dateien, die gegenüber der Referenz nicht mehr erreicht werden.

Das QS-Gate misst während des ganzen Prüflaufs mit der V8-Abdeckung, welche Funktionen und Verzweigungen des Backends tatsächlich ausgeführt wurden – über alle Ebenen. Kennzahlen: Funktionen ausgeführt (mit Referenzwert), Verzweigungen, Dateien (ohne jede ausgeführte Funktion), Gegenüber Referenz. Filter: „Datei, Funktion …“, Bereich, „nur Dateien mit Lücken“; schwächste Bereiche stehen oben, Klick filtert.

Tipp

Ungeprüfte Endpunkte als CSV an das Entwicklungsteam geben; Ausnahmen nur mit Begründung. Dateien, die gegenüber der Referenz nicht mehr erreicht werden, zuerst klären.

19
Menü › Ausgewählter Lauf › Endpunkte

Endpunkte

Adresse #/lauf/<lauf>/endpunkte · Kürzel g e

Jede Schnittstelle des Katalogs mit aufrufenden Szenarien, Aufrufen, Fehlern, Median-Laufzeit und HTTP-Status.

Endpunkte mit Kennzahlen, Abdeckung je Bereich und Methode und Endpunktliste
Abb. Endpunkte: Abdeckung je Bereich und Methode, meistgenutzte Endpunkte, Liste mit Filtern.

Bedienung

  1. Kennzahlen: Endpunkte im Katalog (lesend/schreibend), Durch Szenarien aufgerufen, Ohne jede Prüfung (davon begründet ausgenommen), Mit Fehlern.
  2. Filtern: „Pfad oder Szenario …“, Bereich, Methode (GET, POST, PUT, PATCH, DELETE) und Prüfart: alle · ohne Prüfung · ausgenommen · nur lesend geprüft · in Szenarien · mit Fehlern. Klick in „Abdeckung je Bereich und Methode“ filtert ebenfalls.
  3. Endpunkt öffnen: Die Schublade zeigt den Status (geprüft, begründet ausgenommen mit Begründung, ohne Prüfung), fehlerhafte Aufrufe, Median-Laufzeit, die Kennzahlen Szenarien · Aufrufe · HTTP-Status, das Ergebnis der lesenden Prüfung („Details öffnen“) und die aufrufenden Szenarien als Links. Ohne Szenario: schreibende Endpunkte sind Kandidaten für neue Prozesse im Golden-Record.
Tipp

Vor jeder Schnittstellen-Diskussion den Endpunkt hier nachschlagen – wichtig für Integrationen mit Drittsystemen.

20
Menü › Ausgewählter Lauf › Oberfläche

Oberfläche

Adresse #/lauf/<lauf>/oberflaeche

Alle Masken aus Navigation und Routing: geöffnet, fotografiert und mit der Referenz verglichen – Text, Konsolen- und Serverfehler, Pixelvergleich.

Galerie aller Masken mit Bildschirmfoto und Statuspunkt
Abb. Galerie: Statuspunkt rot = Fehler, orange = abweichend, grau = nicht inhaltlich geprüft, grün = in Ordnung.

Bedienung

  1. Kennzahlen: Masken geöffnet, Mit Fehlern (Server- oder Konsolenfehler), Abweichend (Text oder Bild), Nicht inhaltlich geprüft (nur Super-Admin bzw. verschachtelte Route mit 404).
  2. Filtern: „Maske oder Pfad …“ und Chips alle · Fehler · abweichend · Super-Admin · 404.
  3. Maske öffnen: zeigt geänderte Texte, Bildschirmfotos von Referenz und diesem Lauf sowie den Pixel-Unterschied – und, bei Abweichung, Freigeben/Ablehnen.
Masken-Vergleich mit geänderten Texten und Bildschirmfotos von Referenz und aktuellem Lauf
Abb. Masken-Vergleich: Referenz und aktueller Lauf nebeneinander.
Tipp

Abweichende Masken sind oft gewollt – vor der Freigabe Text und Bild vergleichen; gewollte Layoutänderungen gezielt freigeben, unklare mit der Entwicklung klären.

21
Menü › Ausgewählter Lauf › Datenbank

Datenbank

Adresse #/lauf/<lauf>/datenbank

Was ein Prüflauf in der Datenbank verändert – je Bereich und Tabelle – und der Abgleich zwischen Backend-Code und Datenbankschema.

Datenbank-Delta mit veränderten Tabellen und Zeilen sowie Schema-Abgleich
Abb. Datenbank-Delta und Schema-Abgleich Code ↔ Datenbank.

Bedienung

  1. Kennzahlen: Tabellen verändert (von allen Tabellen), Zeilen hinzugefügt, geändert, entfernt.
  2. Bereiche nach veränderten Zeilen zeigt, wo der Lauf schreibt.
  3. Tabelle suchen („Tabelle …“, Bereich) und anklicken: Die Schublade zeigt die Änderungen gegenüber der Referenz.
  4. Schema-Abgleich Code ↔ Datenbank: Tabellen und Spalten, die der Backend-Code nutzt, die im Schema fehlen (statische Analyse aller SQL-Texte). Filter „Tabelle, Spalte, Datei …“ und Chips alle · Tabelle fehlt · Spalte fehlt; Export Auftrag (MD) mit allen Fundstellen.
Tipp

Änderungen in Tabellen, die kein Szenario berührt, deuten auf Seiteneffekte hin. Die Befehlspalette findet Tabellen direkt.

22
Menü › Ausgewählter Lauf › Prüfketten & Kennzahlen

Prüfketten & Kennzahlen

Adresse #/lauf/<lauf>/ketten (Reiter „Prüfketten“)

Fachliche Regeln über die gesamte Datenbank: In-App-Prüfketten, Kennzahlen (Summen-/Saldenliste, Soll = Haben, offene Posten, Steuern, Bestand) und Konsistenzregeln.

Prüfketten, Kennzahlen und Konsistenzregeln mit Ergebnis
Abb. Konsistenzregeln (erfüllt / Verletzungen), Prüfketten (fehlerhafte zuerst) und Kennzahlen.

Bedienung

  1. Kennzahlen: In-App-Prüfketten (Schritte), Ketten mit Fehlern, Kennzahlen, Kennzahlen mit Fehler.
  2. Konsistenzregel öffnen: Klick auf die Regel zeigt die Verletzungen und das auslösende Szenario.
  3. Prüfkette öffnen: Klick auf die Zeile listet jeden Kettenschritt mit ok/Fehler; Klick auf einen Schritt öffnet dessen Beobachtung.
  4. Kennzahl öffnen: zeigt die Werte im Detail.
Tipp

Bei verletzter Regel die auslösende Szenario-Datei öffnen – dort liegt der Verursacher. Kennzahlen und neue Konsistenzverletzungen sind Muss-Kriterien.

23
Menü › Ausgewählter Lauf › Suche

Suche

Adresse #/lauf/<lauf>/suche?q=…

Volltextsuche über alle rund 45.000 Beobachtungen eines Laufs – nach Schlüssel, Titel, Modul oder Fehlermeldung.

Bedienung

  1. Suchbegriff eingeben (mindestens 2 Zeichen), z. B. „pricelist“, „column“ oder „/api/sales“. Die Ergebnisse erscheinen während der Eingabe.
  2. Eingrenzen: „Alle Ebenen“ bzw. eine Ebene wählen, „nur Fehler“ ankreuzen (dann auch ohne Suchbegriff).
  3. Treffer öffnen: Zeile anklicken öffnet die Beobachtung in der Schublade. Angezeigt werden bis zu 300 Treffer; die Gesamtzahl steht neben den Filtern.
Tipp

Aus jeder Seite erreichbar: Befehlspalette (Strg+K), Begriff tippen, „„…“ in allen Beobachtungen suchen“.

Diese Ansicht ist ohne Bildschirmfoto aus dem Code beschrieben.

24
Menü › Über Läufe › Befund-Verlauf

Befund-Verlauf

Adresse #/verlauf · Kürzel g v

Jeder Befund mit Status und Verlauf über die letzten Läufe: neu, weiterhin offen, behoben.

Befund-Verlauf mit Kennzahlen neu, offen, behoben und Tabelle mit Kästchen je Lauf
Abb. Befund-Verlauf: ein Kästchen je Lauf (neuester links).

Bedienung

  1. Kennzahlen: Neu im letzten Lauf (vorher nicht aufgetreten), Weiterhin offen (in beiden letzten Läufen), Behoben (im vorletzten, nicht im letzten Lauf), Betrachtete Läufe (Standard: 12).
  2. Filtern: „Pfad, Meldung …“, Bereich und Chips neu · offen · behoben · früher (Voreinstellung: neu, offen, behoben).
  3. Zeile öffnen: zeigt die Beobachtung – bei „behoben“ aus dem vorletzten Lauf. Die Spalte „Bearbeitung“ zeigt den Status aus Befunde, die Spalte Zuständig die automatische Einordnung (siehe Befund-Klassen).
Tipp

Für Statusberichte: neu, offen und behoben je Lauf direkt hier ablesen – zeigt, ob Korrekturen wirken.

25
Menü › Über Läufe › Stabilität

Stabilität

Adresse #/stabilitaet · Kürzel g s

Prüfungen, deren Ergebnis zwischen Läufen wechselt – mit und ohne neue Version. Wechselt ein Ergebnis ohne neue Version, ist die Prüfung (oder die App) instabil.

Stabilität der Prüfungen mit Kennzahlen, Wechseln je Lauf-Übergang und Liste
Abb. Stabilität: geänderte Ergebnisse je Lauf-Übergang, je Ebene, je Bereich und Liste mit Muster je Lauf.

Bedienung

  1. Zeitraum wählen: letzte 6, 12, 20 oder 30 Läufe (mindestens zwei ausgewertete Läufe nötig; ältere werden im Hintergrund ausgewertet).
  2. Kennzahlen: Prüfungen mit Wechseln, Instabil verdächtig, Statuswechsel grün ↔ rot, Bekannt (rules.json).
  3. Filtern: „Prüfung, Schlüssel …“, Bereich, Chips instabil (Voreinstellung) · Statuswechsel · alle · bekannt, Ebenen.
  4. Muster lesen: jede Zeile eine Prüfung, jedes Kästchen ein Lauf (ältester links): grün ok, rot Fehler/rot geworden, orange Inhalt geändert, grau unverändert, gestrichelt nicht vorhanden. Klick öffnet den Verlauf der Prüfung über die Läufe.
Tipp

Instabile Prüfungen nicht als App-Fehler melden – erst Zeit- oder Nebenläufigkeitsursache klären; dann begründet in rules.json aufnehmen oder beheben.

26
Menü › Über Läufe › Leistung

Leistung

Adresse #/leistung · Kürzel g l

Antwortzeiten über die Läufe: Perzentile, Summen je Ebene, Regressionen, Verbesserungen und die langsamsten Aufrufe. Eine Version kann fachlich korrekt, aber spürbar langsamer sein.

Leistung und Antwortzeiten mit Perzentilen je Lauf, Regressionen und langsamsten Aufrufen
Abb. Leistung: Median, p90 und p99 je Lauf, Antwortzeit je Ebene und Bereich, Regressionen.

Bedienung

  1. Zeitraum wählen (letzte 6, 12, 20 oder 30 Läufe).
  2. Kennzahlen: Gemessene Aufrufe, Summe Antwortzeit, Median (p50), p90 / p99, Regressionen, Verbesserungen.
  3. Diagramme: Perzentile je Lauf (ms), Summe der Antwortzeit je Lauf nach Ebene (s), Bereiche nach Antwortzeit (rot = mit Regression; Klick öffnet den Bereichs-Steckbrief).
  4. Listen: Regressionen, Langsamste Aufrufe, Verbesserungen – Klick auf eine Zeile öffnet den Verlauf der Prüfung mit Laufzeit je Lauf.
Definition

Gemessen wird jeder Aufruf der lesenden Prüfung, der MCP-Tools und jeder Szenario-Schritt. Regression = mindestens doppelt so langsam wie der Median der Vorläufe und ≥ 200 ms.

Tipp

Die langsamsten Aufrufe als Liste für das Performance-Gespräch nutzen. Langsame Aufrufe über 4 s fließen in die Bewertung ein.

27
Menü › Über Läufe › Vergleich

Vergleich

Adresse #/vergleich?a=<vorher>&b=<nachher>

Freier Vergleich ohne Bewertung – beliebige zwei Läufe, z. B. zwei Versionen nebeneinander, unabhängig von der Referenz.

Vergleich zweier Läufe: Filter nach Art und Ebene, Ergebnisliste Seite 2 mit Zurück und Weiter
Abb. Vergleich, Seite 2 (Zeilen 201–400 von 5.818): Filter wirken auf alle Treffer, geblättert wird mit „Zurück“ / „Weiter“ (lokales Cockpit, Testläufe).

Bedienung

  1. Läufe wählen: „Vorher“ und „Nachher“ (Voreinstellung: Referenz und letzter Lauf) – oder in Läufe zwei Häkchen setzen.
  2. „Vergleichen“ – rund 45.000 Beobachtungen werden verglichen. Das Ergebnis wird je Laufpaar zwischengespeichert: Der erste Vergleich dauert einige Sekunden, danach erscheint er sofort („aus dem Zwischenspeicher“).
  3. Ergebnis lesen: Unterschiede je Ebene nach Art (geändert, neu, entfallen, neuer Fehler, behoben) und Eckdaten beider Läufe (Start, Version, Urteil, Schritte, Befunde).
  4. Filtern und blättern: „Prüfung, Feld …“, Chips Art und Ebene – die Filter wirken auf alle Treffer, nicht nur auf die angezeigte Seite. Die Liste zeigt 200 Zeilen je Seite; „Zurück“ / „Weiter“ blättern. Klick auf eine Zeile zeigt Feld · Vorher · Nachher und den Inhalt beider Läufe.
Tipp

Für die Kundenfrage „Was ist seit letzter Woche anders?“ die beiden Läufe direkt vergleichen. Freigaben entstehen hier nicht.

28
Menü › Über Läufe › Protokollkette

Protokollkette

Adresse #/kette

Jeder Lauf, jede Freigabe und jeder Referenzwechsel – verkettet über SHA-256. Nachträgliche Änderungen an Prüfergebnissen oder Freigaben würden die Kette brechen.

Protokollkette mit Zeit, Ereignis, Inhalt und Hash und Status intakt
Abb. Protokollkette: Chronologie mit Inhalt und Hash, Status „intakt“.

Was man sieht

  • Status oben rechts: intakt oder verletzt; derselbe Status steht in der Fußzeile der Navigation und als Muss-Kriterium in der Freigabe-Entscheidung.
  • Je Eintrag: Zeit, Ereignis (Lauf, Freigabe, Referenz), Inhalt (z. B. „Name: freigegeben #12, #13 — Begründung“) und die ersten Zeichen des Hashs. Die neuesten 300 Einträge stehen oben.
  • Zusätzlich verkettet: Anordnungen „eine Freigabe genügt“ und Nachweise „reine Testerweiterung“.
Tipp

Für Audits den Status „intakt“ zusammen mit dem Prüfbericht vorlegen.

29
Menü › Über Läufe › Einstellungen

Einstellungen

Prüfumfang

Oberster Block der Einstellungen: optionale Prüfebenen des vollen Laufs. Barrierefreiheit prüfen (axe-core nach WCAG 2.1 AA und Mobilansicht 390 px der wichtigsten Masken, ca. 6–8 Minuten zusätzlich) ist standardmäßig ausgeschaltet. Häkchen setzen und „Prüfumfang speichern“ – gilt ab dem nächsten Lauf; angezeigt wird, wer wann geändert hat. Gespeichert im Prüfstand unter DATA_DIR/pruefumfang.json.

Adresse #/einstellungen

KI-Unterstützung für den Aufnahme-Assistenten im Prozess-Studio und die KI-Zweitprüfung Rechnungswesen im Prüflauf.

Zweck

Mit einem eigenen API-Schlüssel plant der Assistent Aufnahmen aus einer Beschreibung (Startmaske, Schritte, Testdaten, passende Prozessvarianten) und bereitet aufgenommene Abläufe zu lesbaren, prüfenden Makros auf (Schrittnamen, fachliche Prüfungen). Ohne Schlüssel arbeitet der Assistent regelbasiert aus dem Prozesskatalog.

Bedienung

  1. Anbieter wählen: OpenAI oder Anthropic (oder „keiner“).
  2. Modell eintragen – leer lassen übernimmt den angezeigten Vorschlag des Anbieters.
  3. API-Schlüssel eingeben; ist bereits einer hinterlegt, bleibt er bei leerem Feld unverändert.
  4. „KI-Unterstützung aktiv“ ankreuzen und Speichern.
  5. Verbindung testen – zeigt Antwortzeit und Antwort oder die Fehlermeldung. Schlüssel löschen entfernt ihn nach Rückfrage.
Sicherheit

Der Schlüssel wird verschlüsselt auf dem Prüfstand gespeichert und nie an die Oberfläche zurückgegeben; angezeigt wird nur, dass einer hinterlegt ist, wann und von wem er zuletzt geändert wurde. Alternativ liest der Prüfstand OPENAI_API_KEY bzw. ANTHROPIC_API_KEY aus der Umgebung.

Block „KI-Zweitprüfung Rechnungswesen“

Steuert die Phase KI-Zweitprüfung im Prüflauf. Oben steht, ob sie ausgeführt wird („wird ausgeführt“ bzw. „wird nicht ausgeführt (kein Schlüssel)“).

FeldBedeutungVorgabe · Grenzen
KI-Stichprobenautomatisch (an, sobald ein Schlüssel hinterlegt ist) · an · ausautomatisch
UmfangStichprobe oder vollständige Prüfung (alle Belege des Laufs)Stichprobe
Belege je Lauf (Stichprobe)Anzahl der bewerteten Belege40 · 1–5.000
max. Tokens je LaufBudget für alle Anfragen eines Laufs200.000 · 1.000–20 Mio.
max. Tokens je AnfrageAntwortlänge je Beleg1.500 · 200–32.000
max. Kosten je Lauf (EUR)optionale Kostengrenze; leer = keine Grenzekeine
Preis Eingabe / AusgabeEUR je 1 Mio. Tokens, für die Kostenschätzung3 / 15

„Prüfungseinstellungen speichern“ übernimmt die Werte. Ein leeres Feld bedeutet: Umgebungsvariable bzw. Vorgabe. Einstellungen im Cockpit haben Vorrang vor QSGATE_KI_MAX, QSGATE_KI_MAX_TOKENS_LAUF, QSGATE_KI_MAX_TOKENS_ANFRAGE und QSGATE_KI_MAX_KOSTEN. Ist ein Budget erreicht, endet die Phase sauber mit „Budget erreicht nach n von m Belegen“.

Diese Ansicht ist ohne Bildschirmfoto aus dem Code beschrieben.

C

Arbeitsabläufe

Prüfauftrag, Prozess-Studio und Prüfbericht Schritt für Schritt

30
Arbeitsablauf

Prüfauftrag: Markdown-Export für (KI-)Entwickler

Ein Export – alle Probleme, priorisiert und reproduzierbar. Ein KI-Coding-Agent oder Entwickler kann die Fehler ohne Rückfragen nachstellen und beheben.

Auszug aus dem Gesamt-Prüfauftrag in Markdown mit Übersicht aller Probleme und einer Ursachen-Gruppe mit curl-Reproduktion
Abb. Auszug aus dem Gesamt-Prüfauftrag: Übersicht aller Problemarten, Bearbeitungsreihenfolge, je Ursache die Befunde mit Reproduktion. Zugangsdaten sind nicht enthalten (Platzhalter $TOKEN).

Welche Exporte es gibt

ExportWoInhalt
Gesamt-Prüfauftrag (MD)Cockpit, Lauf-Kopf, Befehlspalettealle Probleme des Laufs: Befunde nach Ursache, Abweichungen, Prozesslücken, Konsistenz, Schema-Lücken im Code, Leistung – eine Datei (bleibt verfügbar)
Prüfauftrag in Paketen (ZIP / MD)Lauf-Kopf › „Prüfauftrag in Paketen“derselbe Inhalt in handlichen Paketen mit Priorität, Zuständigkeit und empfohlener Reihenfolge – siehe unten
Befunde ausführlich (MD)Lauf-Kopfalle Befunde und offenen Abweichungen, jede Prüfung mit Reproduktion
Prüfauftrag (MD) einer AuswahlBefunde (Filterzeile bzw. Sammelleiste)Befunde der aktuellen Auswahl (Bereich, Klasse, Ebene) bzw. der markierten Befunde
Prüfauftrag (MD) einer UrsacheUrsachen, je Gruppenur die Befunde dieser Ursachen-Gruppe
Prüfauftrag (MD) eines BefundsSchublade eines Befunds / einer Abweichunggenau diese Prüfung
Prüfauftrag (MD) eines BereichsBereichs-SteckbriefBefunde und offene Abweichungen des Bereichs
Auftrag (MD) Schema-AbgleichDatenbankfehlende Tabellen und Spalten mit Fundstellen im Backend

Jeder Befund trägt im Prüfauftrag eine Zeile bzw. Spalte Zuständig (Klasse und Team, siehe Befund-Klassen).

Prüfauftrag in Paketen

Der Gesamt-Prüfauftrag eines großen Laufs ist zu lang für einen Coding-Agenten (cefd1ba: eine Datei mit 149.956 Zeilen). Die Schaltfläche Prüfauftrag in Paketen im Lauf-Kopf teilt ihn in Arbeitspakete – im Beispiel 68 Pakete (74 Dateien inkl. Teile; 17 kritisch, 25 hoch, 26 mittel).

Schublade Prüfauftrag in Paketen mit Alle als ZIP, Übersicht, Gesamtdatei und Tabelle der Pakete mit Priorität
Abb. Schublade „Prüfauftrag in Paketen“: oben „Alle als ZIP“, „Übersicht (00-uebersicht.md)“ und „Gesamtdatei“, darunter je Paket Kennung, Priorität, Inhalt (Umfang, Zeilen, Zuständigkeit, Begründung der Priorität) und Download (lokales Cockpit, Daten cefd1ba).
PaketartBildung
Befunde einer UrsacheUrsachen-Gruppen mit mindestens 3 Befunden bekommen ein eigenes Paket
Einzelbefundekleinere Gruppen gebündelt nach Zuständigkeit und Bereich
Abweichungenje Modul, verdichtet nach Änderungsmuster
Prozessvariantenje Bereich die Varianten mit Befund oder Lücke
Schema-Abgleich · Prüflückenfehlende Tabellen/Spalten im Code; ungeprüfte Endpunkte und Dialogfunktionen
  • Größe: höchstens ~1.500 Zeilen je Datei; größere Pakete werden in Teile geschnitten (Parameter ?max= 400–5.000).
  • Kopf je Paket: Priorität mit Begründung, Zuständigkeit, Kontext (Lauf, Commit), Reproduktion (curl, try-scenario), Akzeptanzkriterium „Befund verschwindet im nächsten Lauf“ und am Ende die Schlüssel zur Nachprüfung.
  • Priorität: kritisch wenn ein Muss-Kriterium betroffen ist, bei mindestens 3 Server-/Code-/Schemafehlern oder bei App-Fehlern mit 10 und mehr Prüfungen bzw. kritischen Abweichungen; hoch bei einzelnen harten Fehlern, Infrastruktur, App-Fehlern ab 3 Prüfungen bzw. hohen Abweichungen; sonst mittel (Fehlalarm-Verdacht immer mittel – zuerst die Prüfung klären).
  • Übersicht 00-uebersicht.md: alle Pakete in empfohlener Reihenfolge und eine Tabelle nach Zuständigkeit. „Alle als ZIP“ enthält Übersicht und alle Pakete.

Der Korrekturzyklus

  1. Lauf: alle Phasen gegen die Referenz; Befunde werden nach Ursache gebündelt und einer Zuständigkeit zugeordnet.
  2. Prüfauftrag (MD): je Ursachen-Gruppe Befunde, curl-Reproduktion, Diagnose-Hinweise und eine Arbeitsweise in sieben Schritten; empfohlene Reihenfolge (z. B. zuerst fehlende Tabellen/Spalten, dann die größten Ursachen-Gruppen). Befunde der Kategorie „Golden-Daten/Customizing“ werden im Golden-Record behoben, nicht im Code.
  3. Korrektur: Der KI-Entwickler korrigiert in main (nie direkt in qsgate), mit Test; das Szenario wird lokal grün gespielt.
  4. Neuer Lauf: Merge main → qsgate; der Prüfstand bestätigt „behoben“ und meldet neue Befunde.
Wirkung

In fünf Läufen vom 27. bis 29.10.2026 sanken die Befunde von 489 auf 265 (−46 %). Bearbeitet wird je Ursache, nicht je Einzelbefund.

Tipp

Pakete nach Zuständigkeit verteilen: App-Fehler an die Entwicklung (bzw. je Paket an einen Coding-Agenten), Testdaten/Szenario an das Prüfstand-Team, Customizing an die Berater. Ob eine Korrektur wirkt, zeigt vorab ein Schnelllauf; bestätigt wird sie im nächsten vollen Lauf.

31
Arbeitsablauf

Prozess-Studio: Makro anpassen, aufzeichnen, abspielen

Ein Makro ist ein Geschäftsprozess als JSON – keine Programmierung: eine Folge von Schritten, die jeweils einen Aufruf der App abbilden. Zu jedem Prozess des Golden-Records gibt es ein fertiges Makro, aufgezeichnet auf dem frischen Golden-Record und per Gegenprobe auf Wiederholbarkeit geprüft.

Makro-Bibliothek im Prozess-Studio
Abb. Makro-Bibliothek: Kennzeichen fertig (Golden) · eigen · angepasst · im Prüflauf; Gegenprobe wiederholbar oder Anzahl Abweichungen (lokales Cockpit, Testdaten).

Aufbau eines Schritts

Name · Methode · Pfadz. B. „Auftrag anlegen“, POST /api/sales
Eingabenwie in der Maske, mit Platzhaltern
Werte merkens5n = body.order.id – später als {{s5n}} verwendbar (im Schritt 5 neu angelegter Beleg)
PrüfungenPfad (body.…), Vergleich (HTTP-Status =, =, ≠, >, <, vorhanden, enthält), Wert, Bezeichnung
OptionenErfolg erwartet (aus = fachliche Ablehnung erwartet), Pflichtschritt (Fehler bricht ab), als anderer Benutzer (Tenant, E-Mail)
Platzhalter{{today}}, {{today+7}}, {{ref}}; Passwörter nur als {{password}}
Vier Wege zum Makro

Fertiges Makro anpassen · abgespielten Prozess „Als Makro speichern“ · an der Oberfläche aufnehmen · aus Dialogfunktionen bauen („Schritt aus einer Maske (Dialogfunktion)“ bzw. „Leerer Schritt“ im Editor).

A · Vorhandenes Makro anpassen

Makro-Schritt im Reiter Dialog mit geänderter Menge
Abb. Makro „Auftrag mit Skonto-Zahlungsbedingung“, Schritt 5 im Reiter Dialog: Menge 100 → 120, Prüfung ergänzt (lokales Cockpit, Testdaten).
  1. Makro öffnen: Prozess-Studio › Reiter „Makros“, suchen, Stift – oder im Reiter „Prozesse“ auf „Makro (n)“.
  2. Schritt aufklappen: Name direkt ändern; Schritte mit den Pfeilen verschieben, duplizieren, löschen.
  3. Reiter „Dialog“: Eingaben mit Beschriftung, Positionen als Tabelle, Such-/Filterwerte als Felder.
  4. Wert ändern, z. B. Menge 100 → 120; Werte aus früheren Schritten ({{…}}) bleiben verknüpft.
  5. Prüfung ergänzen: „+ Prüfung“: Pfad, Vergleich, Wert, Bezeichnung.
  6. Optional prüfen: „Live ansehen“ spielt den Ablauf bis zu diesem Schritt und zeigt die echte Maske mit den Daten; „In der Maske neu erfassen“ spielt bis vor den Schritt und ersetzt ihn durch eine neue Eingabe in der echten Maske.
  7. Speichern oder Speichern & abspielen.
Reiter Technik eines Makro-Schritts mit Methode, Pfad, JSON, Werte merken und Prüfungen
Abb. Reiter „Technik (Pfad, JSON)“: Methode, Pfad, Anfrage-Inhalt, Werte merken, Optionen, Benutzer, Prüfungen.
Gespeichertes Makro mit Hinweis Eigene Kopie des Golden-Makros
Abb. Nach dem Speichern: „Eigene Kopie des Golden-Makros — „Kopie verwerfen“ stellt das Original wieder her.“

Kopfzeile des Makro-Editors

  • Als Szenario-Datei – exportiert das Makro als .mjs für das Repository.
  • JSON – das ganze Makro als JSON bearbeiten und „Übernehmen“ oder kopieren.
  • Kopie verwerfen (angepasstes Golden-Makro) bzw. Löschen (eigenes Makro).
  • Felder ID (nur Kleinbuchstaben, Ziffern, Bindestrich, z. B. vk-teillieferung), Titel, Bereich, Beschreibung.
  • In jeden Prüflauf aufnehmen – das Makro läuft in jedem Lauf wie ein Szenario mit, vor den globalen Abschlüssen, und wird mit der Referenz verglichen.
  • „Fachliche Prüfungen des Originals“ zeigt bei angepassten Golden-Makros die Prüfungen des Ursprungs-Szenarios.
Golden-Makros bleiben unversehrt

Fertige Makros sind schreibgeschützt: Wer speichert, erzeugt eine eigene Kopie. „Kopie verwerfen“ stellt das Original her.

B · Neues Makro an der Oberfläche aufzeichnen

Aufnahme-Seite mit Assistent und Formular für Benutzer, Tenant, Bezeichnung und Startmaske
Abb. Oben der Assistent (Plan aus einer Beschreibung), unten „Aufnahme an der Oberfläche“ mit Benutzer, Tenant, Bezeichnung, Startmaske und „Neue Aufnahme starten“.
  1. Optional planen: Im Assistenten beschreiben, was aufgenommen werden soll (z. B. „Kundenauftrag mit Teillieferung, Rest später liefern und fakturieren“), „Plan erstellen“. Der Assistent schlägt Startmaske, Benutzer, Schritte mit Testdaten und die abgedeckten Prozessvarianten vor; „Mit diesem Plan aufnehmen“ übernimmt ihn. Die Plan-Schritte erscheinen während der Aufnahme als Checkliste.
  2. Starten: Benutzer (E-Mail), Tenant, Bezeichnung, Startmaske (z. B. /sales) eintragen; „Oberfläche hier eingebettet zeigen (sofort angemeldet)“ ist voreingestellt. „Neue Aufnahme starten“.
  3. Arbeiten: Die echte realERP-Oberfläche erscheint im Studio, bereits angemeldet. Masken durchgehen, Daten eingeben, speichern, buchen, freigeben. Aufgezeichnet werden nur die API-Aufrufe dieses Benutzers; jeder Klick und jede Eingabe benennt den Schritt.
  4. Beenden: „Aufnahme beenden“ oben rechts (oder „Verwerfen“).
Laufende Aufnahme mit eingebetteter Oberfläche und Mitschnitt rechts
Abb. Laufende Aufnahme: eingebettete Oberfläche, rechts Zähler, speichernde Aufrufe und letzte Klicks; oben Navigation (zurück, Maske, neu laden, eigenes Fenster) und „Aufnahme beenden“.
Beendete Aufnahme mit Auswahl der Aufrufe, ID und Titel
Abb. Nach dem Beenden: ID und Titel, „nur nötige Lesezugriffe“, Assistent, „Als Makro speichern“ und die aufgenommenen Aufrufe (lokale Testaufnahme ohne schreibende Aufrufe).
  1. ID und Titel vergeben (Vorschlag aus der Bezeichnung).
  2. Nur nötige Lesezugriffe (voreingestellt): Lesezugriffe des Seitenaufbaus entfallen, wenn ihr Ergebnis nicht gebraucht wird. „lesende anzeigen“ blendet GET-Aufrufe in der Liste ein.
  3. Auswahl je aufgenommenem Aufruf per Häkchen; schreibende Aufrufe sind vorausgewählt.
  4. Assistent: Namen & Prüfungen vorschlagen (optional) – lesbare Schrittnamen und fachliche Prüfungen, regelbasiert oder mit eigenem KI-Schlüssel (Einstellungen).
  5. Als Makro speichern: IDs neu entstandener Belege werden zu Platzhaltern ({{s5n}}) und verknüpft, Passwörter zu {{password}}; danach öffnet der Editor.
Makro erweitern statt neu aufnehmen

Makro abspielen, dann „Per Aufnahme erweitern“ bzw. auf der Aufnahme-Seite „An „…“ anschließen“: Der abgespielte Ablauf wird vorangestellt, neue Belege werden über beide Teile verknüpft.

C · Abspielen und prüfen

Wiedergabe eines Makros mit Steuerleiste, Ablauf links und Schrittdetails rechts
Abb. Wiedergabe Schritt für Schritt: Steuerleiste, „Nächster Schritt“-Karte, Ablauf links (ausgeführte und ausstehende Schritte), Details rechts (lokales Cockpit).
  1. Starten: „Speichern & abspielen“ im Editor oder ▶ in der Liste (Schritt für Schritt oder automatisch).
  2. Schrittweise: „Nächster Schritt“, „Ausführen“ in der Karte oder Leertaste führt den angezeigten Schritt aus (die Karte nennt Name, Methode, Pfad und ggf. „als Benutzer“).
  3. Automatisch: „Automatisch weiter“ mit Tempo-Regler (0–4.000 ms je Schritt), „Pause“, „Schrittweise“ zurück, „Stopp“.
  4. Prüfen: je Schritt HTTP-Status (Abweichung zur Aufzeichnung markiert, z. B. „≠ 201“) und Prüfungen ✓/✗; „mitlaufen“ hält den aktuellen Schritt im Blick.
  5. Details: Schritt anklicken – Anfrage-Inhalt, Antwort, gemerkte Werte (Variablen); „Maske öffnen“ bzw. „Beleg in der Oberfläche“ öffnet die echte Maske.
  6. Nachjustieren: „Anfrage bearbeiten & senden“ testet eine Variante (wird nicht aufgezeichnet).
  7. Nach dem Ende: Zusammenfassung (Schritte, Fehler, nicht erfüllte Prüfungen, Benutzer); „Als Makro speichern“ (bei abgespielten Szenarien), „Per Aufnahme erweitern“, „Erneut abspielen“.

Haltepunkte

  • Beim Start: Im Reiter Dialogfunktionen spielt „bis Schritt n“ das Makro automatisch bis vor diese Funktion und hält dort an; „Live ansehen“ und „In der Maske neu erfassen“ im Editor halten ebenfalls am gewählten Schritt.
  • Während der Wiedergabe: Links im Ablauf steht vor jedem noch ausstehenden Schritt ein Punkt ●. Ein Klick setzt bzw. entfernt dort einen Haltepunkt. Bis Haltepunkt spielt ohne Pause bis zum nächsten gesetzten Haltepunkt und hält dort an; danach schrittweise oder automatisch weiter.
Neu

Haltepunkte während der laufenden Wiedergabe setzen und „Bis Haltepunkt“ funktionieren ab dem nächsten Stand des QS-Gates (nach dem nächsten Deploy des Prüfstands).

Tipps und typische Meldungen

Tipp / MeldungBedeutung und Abhilfe
Auf frischem Stand arbeitenFertige Makros laufen auf dem frisch zurückgesetzten Golden-Record exakt; nach anderen Wiedergaben können Abweichungen entstehen.
Sprechende IDs und TitelID nur Kleinbuchstaben, Ziffern, Bindestrich – sie wird Dateiname der Szenario-Datei.
Prüfungen fachlich formulierenNeben dem HTTP-Status mindestens eine fachliche Prüfung je wichtigem Schritt (Status, Betrag, Folgebeleg).
Ablehnungen bewusst testen„Erfolg erwartet“ ausschalten, wenn die App fachlich ablehnen soll (z. B. ohne Recht als qs-lesen).
„Platzhalter {{x}} ist nicht belegt“Ein früherer Schritt merkt den Wert nicht (mehr) – „Werte merken“ prüfen oder Reihenfolge korrigieren.
„Anfrage-Inhalt ist kein gültiges JSON“Im Reiter Technik Klammern/Anführungszeichen prüfen – oder im Reiter Dialog ändern.
„Ein Prüflauf läuft — bitte danach aufnehmen“Aufnahme und Senden sind während eines Laufs gesperrt; Lauf abwarten.
„Zum Anschließen zuerst einen Prozess vollständig abspielen“Erweitern setzt eine beendete Wiedergabe voraus.
„Makro … gibt es schon“Überschreiben bestätigen oder eine neue ID wählen.
Anmeldung wartet beim StartDas QS-Gate begrenzt Anmeldungen je 15 Minuten – kurz warten, nicht mehrfach klicken.
32
Arbeitsablauf

Druckbarer Prüfbericht

Adresse #/bericht/<lauf> · erreichbar über „Prüfbericht“ im Lauf-Kopf, die GO/NO-GO-Plakette oder die Befehlspalette

Das Ergebnis eines Laufs als Dokument – für Abnahme, Lenkungskreis und Ablage beim Kunden.

Prüfbericht mit Freigabe-Entscheidung, Kennzahlen und Abweichungen nach Schweregrad
Abb. Prüfbericht mit Freigabe-Entscheidung, Kennzahlen des Laufs und Abweichungen nach Schweregrad.

Inhalt

  1. Freigabe-Entscheidung – kompakte Kriterienliste mit Punkten.
  2. Kennzahlen des Laufs – Beobachtungen, Szenarien/Schritte, grün, Befunde, Abdeckung schreibend/lesend, MCP-Tools, Masken, Tabellen, Prüfketten.
  3. Abweichungen gegenüber der Referenz – je Schweregrad Anzahl, freigegeben, abgelehnt, offen; instabile; Liste der kritischen und hohen Abweichungen.
  4. Befunde nach Klasse und Bereich.
  5. Prozessabdeckung je Bereich – Szenarien, grün, Schritte, Befund-Schritte, Endpunkte geprüft.
  6. Freigaben – Zeit, Person, Entscheidung, Abweichung, Begründung.
  7. Bestätigung – Unterschriftsfelder Qualitätssicherung und Fachbereich / Produktverantwortung.

Als PDF speichern

„Drucken / als PDF speichern“ öffnet den Druckdialog des Browsers; dort „Als PDF speichern“ wählen. „← zum Lauf“ führt zurück. Zusätzlich im Lauf-Kopf: Protokoll PDF, Markdown und Release Notes.

Tipp

Nach jeder Freigabe den Bericht als PDF beim Kunden ablegen – zusammen mit dem Status der Protokollkette.

D

Prüfinhalte

Fachprüfung Rechnungswesen, Sonderfälle und Ketten, Prozesskatalog, neue Prüfdimensionen

33
Prüfinhalte

Fachprüfung Rechnungswesen

Stimmt die Buchhaltung fachlich – nicht nur technisch? Die Fachprüfung prüft jeden Prüfbeleg Zeile für Zeile gegen einen Buchungssatz-Katalog, stimmt den Abschluss ab und lässt optional eine KI als Zweitprüfer drüberschauen.

A

Buchungssätze

Szenarien 97f: jeder Geschäftsvorfall gegen den Katalog – Konten, Seiten, Beträge, Steuer.

B

Abschluss

Szenarien 97g: Saldenliste, Bilanz, GuV, Saldovortrag, Nebenbücher, UStVA, Periodensperre.

C

Konsistenzregeln fp-…

9 Buchungsregeln über alle Belege der Datenbank.

D

KI-Zweitprüfung

Stichprobe der Belege durch eine KI – nur Hinweise, nicht freigaberelevant.

A · Szenarien 97f „Fachprüfung Buchungen“

  • Katalog config/buchungssaetze.json: 29 Geschäftsvorfälle mit 86 erwarteten Buchungszeilen und 9 Steuerschlüsseln (je mit UStVA-Kennzahl und Norm). Zeilen können $variablen, Kontoalternativen und optionale Zeilen enthalten.
  • Je Beleg wird jede Katalogzeile geprüft (Konto, Soll/Haben, Betrag, Steuerschlüssel), dazu „keine unerwartete Zeile“, Soll = Haben, Belegstatus und Kopfbeträge. Der Beleg wird als Wert „Fachprüfung Beleg <Vorfall>“ festgehalten – Grundlage der KI-Zweitprüfung.

B · Szenarien 97g „Fachprüfung Abschluss“

  • Saldenliste, Bilanz und GuV abgestimmt, Saldovortrag je Bestandskonto, Nebenbücher (Debitoren, Kreditoren, Anlagen) gegen das Hauptbuch, Anlagenspiegel, Bestand gegen Bestandskonten.
  • UStVA-Entwurf des laufenden Monats gegen die Salden der Steuerkonten.
  • Periodensperre: Periode schließen, Buchungswege prüfen (müssen abgewiesen werden), wieder öffnen.
  • Bekannte Befunde aus dem Prüfauftrag cefd1ba sind ausdrücklich geprüft: B99s-5 (Stichtagssaldo nach Saldovortrag), B99s-6 (Jahresabschluss bei Ergebnis ≠ 0), B99s-7 (AfA-Lauf / AfA auf Finanzanlage).

C · Konsistenzregeln fp-…

RegelErfüllt, wenn …
fp-rechnung-partnerzeiledie Partnerzeile einer Rechnung auf der richtigen Kontoart (Debitor/Kreditor) steht
fp-abstimmkonto-kontenfindungdas Abstimmkonto der Kontenfindung entspricht
fp-reverse-charge-spiegelbei Reverse Charge Vorsteuer und Umsatzsteuer gespiegelt sind und Basis × Satz ergeben
fp-skonto-steuerkorrekturein Skonto die Steuer anteilig korrigiert
fp-erfolgskonto-nach-abschlussnach einem Jahresabschluss keine Erfolgsbuchung mehr in das abgeschlossene Jahr fällt
fp-storno-ohne-restein Storno den Originalbeleg ohne Restbetrag aufhebt
fp-ic-verrechnung-seiteIntercompany-Verrechnungen auf der richtigen Seite stehen
fp-warenbewegung-eigenkapitalkeine Warenbewegung auf ein Eigenkapitalkonto bucht
fp-afa-finanzanlagekeine AfA auf Finanzanlagen gebucht wird
Erster Lauf rot

Die neuen Szenarien und Regeln decken bestehende Fehler auf. Rote fp-Befunde im ersten Lauf nach der Einführung sind erwartet – sie gehören als App-Fehler in den Prüfauftrag, nicht in eine Ausnahme.

D · KI-Zweitprüfung (nicht freigaberelevant)

Lauf-Kopf mit Zeile KI-Zweitprüfung Rechnungswesen: Budget erreicht, Belege 31 von 58, 3 KI-Hinweise, Tokens, Anfragen und Kosten
Abb. Lauf-Kopf mit der Zeile „KI-Zweitprüfung Rechnungswesen“: Status, bewertete Belege, KI-Hinweise auf Abweichung, Verbrauch (Werte nachgestellt).
  • Ablauf: Nach den Szenarien nimmt die Phase die festgehaltenen Fachprüf-Belege und lässt eine Stichprobe (Vorgabe 40) von der eingerichteten KI (OpenAI oder Anthropic, Einstellungen) nach HGB, UStG und SKR beurteilen.
  • Reproduzierbar: Temperatur 0 und Ergebnis-Cache je Beleg-Fingerabdruck (Beleginhalt, Modell, Prompt-Version) – gleiche Belege werden nicht neu bewertet.
  • Ergebnis: Beobachtungen der Ebene „KI-Hinweis“ mit Status immer „ok“ – nie ein Befund, kein Muss-Kriterium. Im Lauf-Kopf: Status, Belege, Hinweise auf Abweichung und Verbrauch (Tokens ein/aus, Anfragen, Kosten €).
  • Ohne Schlüssel oder abgeschaltet wird die Phase übersprungen (eine Beobachtung „KI-Zweitprüfung nicht konfiguriert“ bzw. „abgeschaltet“). Drei Fehler in Folge oder ein erreichtes Budget beenden sie sauber.
  • Datenschutz: Gesendet werden nur Testdaten des Golden-Records (Konten, Beträge, Steuerschlüssel, Belegart, Normen) – keine IDs, Belegnummern, Personen- oder Zugangsdaten.
34
Prüfinhalte

Sonderfälle & Prozessketten

Storno, Retoure, Abschluss und modulübergreifende Ketten verursachen im Betrieb die meisten Fehler. Eigene Szenarien prüfen sie mit Abstimmregeln bis ins Hauptbuch.

DateiInhaltIDs
99a–99dSonderfälle je Kernprozess: Vertrieb/Einkauf, FI/CO, Branchen, Personal/Projekte (Storno, Korrektur, Retoure, Ablehnung, Abschluss, Wiedereröffnung)sf-…
99kProzessketten: Order-to-Cash komplett, Procure-to-Pay mit Preisabweichung (3-Wege-Match), Intercompany zwischen Buchungskreisen (Header X-Active-Company-Code), Monats-/Jahresabschluss, Bestand ↔ FIke-…
  • Jede Kette läuft vom ersten Beleg bis zur Abstimmung im Hauptbuch; Folgewirkungen (Bestand, Debitor, Erlös, Steuer, WE/RE) werden als Deltas auf eigenen Stammsätzen geprüft – unabhängig von anderen Szenarien.
  • Die Dateien laufen nach den Zeitsprung-Szenarien 99-A/99-Z (Uhr dann 01.01.2027); alle Datumswerte sind deshalb ausdrücklich gesetzt.
  • Welche Kombination Kernprozess × Art abgedeckt ist, zeigt die Matrix inventory/sonderfall-matrix.md.
  • Hinweis für Szenario-Autoren: /api/fi/balance-sheet liest den Stichtag aus year/month.
Im Cockpit

Sonderfälle erscheinen in Prozesse (Prozessarten je Bereich, Sonderfälle gesamt) und als Szenarien mit ID sf-… bzw. ke-… in Szenarien.

35
Prüfinhalte

Prozesskatalog: Varianten, Entscheidungen, Lücken

Der Prozesskatalog scenarios/prozesskatalog.json listet jede fachliche Prozessvariante mit Erwartung und den Szenarien, die sie prüfen. Er ist die Messlatte für das Kriterium „Alle Prozessvarianten des Katalogs geprüft“.

Status je Variante

StatusBedeutungStand 30.10.
abgedecktmindestens ein Szenario prüft die Variante; Zustand im Lauf grün, Befund, abgebrochen, nicht gelaufen7.779
Lückekein Szenario und keine Entscheidung – nach vier Lückenrunden keine mehr offen0
nicht angebotendie App bietet die Variante nicht an: Produktentscheidung offen bzw. Umsetzung geplant (davon 180 aus dem SAP-Abgleich, inventory/sap-abgleich.json, inventory/sap-abgleich-ergaenzung.json, inventory/sap-umsetzungspakete.md; sie werden abgedeckt, sobald die Umsetzung mit ihrem Szenario 96s-sap-* auf dem Prüfstand ist)198
ausgenommenbewusst nicht Gegenstand der Prozessprüfung; Pflichtbegründung ≥ 15 Zeichen (sonst Lücke); zählt nicht in Prüfmenge und Quote881
gesamtVarianten im Katalog8.858

Wie der Katalog entsteht

  1. Quellkataloge als Markdown in inventory/kataloge/ (je Bereich Prozesse, Varianten, Erwartungen).
  2. Entscheidungen dauerhaft in scenarios/code-zuordnung/katalog-*.json: katalog-entscheidungen.json (Status, Begründung, ausdrückliche Szenario-Zuordnung – auch für dynamisch erzeugte Szenario-IDs), katalog-sonderfall.json, katalog-sap.json.
  3. Bauen: node scripts/build-process-catalog.mjs --stand <JJJJ-MM-TT> inventory/kataloge/*.md; Optionen --out <datei> (Vorgabe scenarios/prozesskatalog.json) und --ohne-entscheidungen.
  4. Abnahme: mit --vergleich <datei> schreibt das Skript nichts, sondern vergleicht mit dem vorhandenen Katalog – erwartet sind 0 Abweichungen (sonst Exit 1).

Szenarien gegen Lücken

Die Dateien 98a–98m (IDs lk-… bis lk4-…, Lückenrunden 1–4; Feld runde in katalog-entscheidungen.json) schließen Katalog-Lücken bereichsweise (FI, CRM/Personal/Handel, Plattform, Marktplatz/Treasury, CCM/NGO/Filiale, FI/HR/Einkauf, Abweisungen, Plattform-Module, FSV/Ausgabe, Lohn/GaLaBau/NGO, Rest). 98k prüft die Vorbedingungen der Klasse-c-Ausnahmen (Vier-Augen nur als Plattformvorlage, Zeitablauf ohne Stichtag): wird es rot, ist die Ausnahme neu zu entscheiden. Grundsätze: Vier-Augen nur mit echtem zweitem Benutzer, Zeitablauf nur über Stichtag oder Job der App; Customizing, das ein Szenario vorübergehend umschaltet, wird in finally zurückgesetzt. Entscheidungsarten je Lücke: neues Szenario, Zuordnung korrigiert (ein vorhandenes Szenario erreicht den Zustand nachweislich), Szenario mit Befund (bleibt rot bis zur App-Korrektur), ausgenommen, nicht angeboten. Szenarien mit dynamisch erzeugter ID werden über katalog-entscheidungen.json den Varianten zugeordnet.

Die Szenarien 96s-sap-p0…p7-* (IDs sap-p…) weisen die SAP-Umsetzung je Paket nach; ihre Zuordnung steht in inventory/sap-zuordnung-*.json.

Im Cockpit

Reiter Prozesse: Kachel und Filter „ausgenommen“ mit Begründung; Lücken und nicht gelaufene Varianten stehen im Prüfauftrag (Paket „Prozessvarianten“ je Bereich).

36
Prüfinhalte

Neue Prüfdimensionen: Last, Sicherheit, Barrierefreiheit, Datenmigration

Vier Ebenen erweitern den Lauf über die Fachlichkeit hinaus. Alle arbeiten nur gegen die QS-Instanz, legen eigene Wegwerf-Objekte an (Kürzel ZZ-SI, QSLT …) und verändern keine Golden-Daten.

Stand 30.10.2026

Alle vier Dimensionen sind eingebaut und laufen im vollen Lauf mit (im Schnelllauf aus). Zusammen verlängern sie den Lauf um etwa 10 Minuten. Die Kriterien aus rules.json › kriterien fließen in die Freigabe-Entscheidung ein; ein Kriterium entfällt, wenn seine Ebene nicht gelaufen ist.

Phase / SzenarioPosition im LaufWas geprüft wirdAbschalten / Umfang
Barrierefreiheitnach OberflächeTop-30-Masken mit axe-core (WCAG 2.1 AA); Mobilansicht 390 px: waagrechtes Scrollen, abgeschnittene Bedienelemente, Touch-Ziele < 24 px (Beobachtung). Befunde mit Schlüssel barrierefrei:axe:* / barrierefrei:mobil:*.Standard aus – einschalten unter Einstellungen › Prüfumfang; QSGATE_A11Y=off schaltet hart ab, QSGATE_A11Y_MASKEN
KI-Zweitprüfungnach Szenariensiehe Fachprüfung Rechnungswesen; Schlüssel ki-hinweis:* sind flüchtig (nicht freigabe- und nicht vergleichsrelevant).Einstellungen › KI
Sicherheitnach FehleingabenMandantentrennung lesen/ändern/löschen (eigene ZZ-SI-Objekte, fremder Mandant „Nordlicht“) plus Stichprobe von 30 Objekt-Endpunkten; Buchungskreistrennung; SQL-Injection-Muster, gespeichertes XSS (Ausführung im Browser geprüft), Path Traversal, übergroße Nutzlast, Mass Assignment; manipulierte JWT, Sperre nach Abmeldung, schreibende Routen ohne Token. Schlüssel sicherheit:*.QSGATE_SICHERHEIT=off, QSGATE_SICHERHEIT_UI=off, QSGATE_SICHERHEIT_STICHPROBE, QSGATE_SICHERHEIT_OHNEAUTH
Nebenläufigkeit (erweitert)wie bisherneu: gleichzeitige Materialentnahmen über Bestand, doppelter Zahlungsausgleich; Warenausgang über Bestand erwartet jetzt die Negativbestand-Sperre (höchstens ein Ausgang angenommen, Bestand nie negativ).—
Lastnach Nebenläufigkeit8 virtuelle Benutzer in 6 Rollen auf typischen Lese-/Schreibpfaden; Befund bei 5xx, doppelten Nummern, unvollständig gebuchten Rechnungen oder p95 über Schwelle (Lesen 2 s, Schreiben 5 s). Perzentile nur als Info, verglichen wird „Schwelle eingehalten“. Schlüssel last:*.QSGATE_LAST=off, QSGATE_LAST_VU, QSGATE_LAST_ITER, QSGATE_LAST_P95_LESEN_MS, QSGATE_LAST_P95_SCHREIBEN_MS
Datenmigration (Szenario 97m, dm-*)SzenarienStammdatenimport, Eröffnungsbilanz mit Abstimmung der Saldenliste, Cutover-Anfangsbestände (nicht doppelt, Storno zurück auf Ausgangsstand), MCP-Import; Fehlerprotokoll bei kaputten Zeilen, Wiederholbarkeit.—

Freigabekriterien der neuen Dimensionen

KriteriumArtGewicht
Keine Mandanten-/Buchungskreis-DurchgriffeMuss10
Keine kritischen SicherheitsbefundeSoll10
Last: Datenintegrität (keine Dubletten, keine Halbbuchungen, kein 5xx)Soll5
Last: Antwortzeiten unter SchwelleSoll2
Keine kritischen BarrierefreiheitsverstößeSoll5
Mobilansicht ohne MängelSoll2
Datenmigration (dm-*) fehlerfreiSoll5

Im Cockpit erscheinen die Befunde mit den Klassen „Sicherheit“, „Last“ und „Barrierefreiheit“. Erste Ergebnisse (lokal): Sicherheit 219 Prüfungen ohne Befund, Last ohne Befund; Barrierefreiheit u. a. Kontrast des roten Zähler-Badges, Icon-Schaltflächen ohne Beschriftung, Filter-Auswahlfelder ohne Label.

Last

  • 8 virtuelle Benutzer verschiedener Rollen (FI, Vertrieb, Einkauf, Lager, CRM, Administrator) arbeiten gleichzeitig mit fester Zahl von Iterationen (Vorgabe 5) auf typischen Lese- und Schreibpfaden – z. B. Ausgangsrechnung anlegen und buchen, Angebot, Bestellung im Entwurf.
  • Befund bei Serverfehler oder Verbindungsabbruch unter Last, doppelten Beleg-/Auftrags-/Bestellnummern (kritisch), nicht ausgeglichener oder nicht gebuchter Rechnung und wenn das p95 die Schwelle überschreitet (Lesen 2.000 ms, Schreiben 5.000 ms).
  • Antwortzeiten (p50/p90/p95/p99) stehen nur als Information; verglichen wird „Schwelle eingehalten ja/nein“. Umfang QSGATE_LAST_VU (1–20), QSGATE_LAST_ITER; Schwellen QSGATE_LAST_P95_LESEN_MS, QSGATE_LAST_P95_SCHREIBEN_MS; aus mit QSGATE_LAST=off.

Sicherheit

  • Mandantentrennung: eigene Objekte des Demo-Kunden mit dem Administrator eines fremden Mandanten lesen, ändern, löschen → 403/404, nie Daten; dazu eine Stichprobe lesender Objekt-Endpunkte (QSGATE_SICHERHEIT_STICHPROBE, Vorgabe 30).
  • Buchungskreistrennung: eigener Benutzer nur für DK5 versucht, Belege und Salden eines fremden Buchungskreises zu lesen, zu ändern oder anzulegen.
  • Eingabe-Angriffe: SQL-Injection in Such-/Sortierparametern, XSS-Nutzlasten (Befund, wenn die Oberfläche sie ausführt), Path Traversal an Datei-Endpunkten, übergroße Nutzlast, Mass Assignment (z. B. tenant_id, isAdmin).
  • Anmeldung: manipulierte Tokens → 401, Abmeldung sperrt Zugangs- und Refresh-Token, schreibende Routen ohne Anmeldung (Stichprobe QSGATE_SICHERHEIT_OHNEAUTH, Vorgabe 150). Aus mit QSGATE_SICHERHEIT=off.

Barrierefreiheit & Mobil

  • Die 30 wichtigsten Masken (QSGATE_A11Y_MASKEN) mit axe-core nach WCAG 2.0/2.1 A+AA bei 1.440 px: Verstöße „critical“/„serious“ sind Befunde, „moderate“/„minor“ nur Information.
  • Dieselben Masken bei 390 px (Touch): waagrechtes Scrollen und abgeschnittene Bedienelemente sind Befunde; Touch-Ziele unter 24 × 24 px werden gezählt.
  • Standardmäßig ausgeschaltet. Einschalten unter Einstellungen › Prüfumfang (gilt ab dem nächsten Lauf); läuft nur mit Oberfläche; QSGATE_A11Y=off schaltet unabhängig von der Einstellung ab. Ist die Ebene aus, entfallen auch ihre Kriterien in der Bewertung.

Datenmigration

Szenarien 97m (IDs dm-…): Stammdaten-Import mit Abgleich von Anzahl und Summen gegen die Datei, Fehlerprotokoll mit richtiger Zeilennummer und idempotenter Wiederholung; Eröffnungsbilanz mit Abstimmung der Saldenliste und Storno; Cutover-Anfangsbestände; Import über den KI-Assistenten (MCP).

Vorgesehene Freigabekriterien (rules.json › kriterien)

KriteriumGewichtQuelle
Keine Mandanten- oder Buchungskreis-Durchgriffe (lesen, ändern, löschen)10Sicherheit
Keine kritischen Sicherheitsbefunde (Injection, XSS-Ausführung, Token, Abmeldung, Aktionen ohne Anmeldung)10Sicherheit
Unter Last kein Serverfehler, keine doppelte Nummer, keine unvollständige Buchung5Last
Antwortzeiten unter Last im Rahmen (p95 Lesen ≤ 2 s, Schreiben ≤ 5 s)2Last
Keine kritischen Barrierefreiheitsverstöße in den Kernmasken5Barrierefreiheit
Kernmasken in der Mobilansicht ohne waagrechtes Scrollen und abgeschnittene Bedienelemente2Barrierefreiheit
Datenmigration plausibel, abgestimmt und wiederholbar5Szenarien dm-…

Ist eine Ebene nicht gelaufen oder abgeschaltet, entfällt ihr Kriterium (wie bei Rechten und Nebenläufigkeit).

E

Technik und Betrieb

Schnittstelle, Dienste, Golden-Record, Rollen

37
Technik

Maschinenlesbare Schnittstelle /api/v2

Alles, was das Cockpit zeigt, liefert die JSON-Schnittstelle /api/v2 – für Coding-KI, Automatisierung und eigene Auswertungen.

Anmeldung

  • Im Browser genügt die Cockpit-Anmeldung (Sitzungs-Cookie).
  • Für Skripte und Agenten: Kopfzeile Authorization: Bearer <Zugangspasswort des Prüfstands>. Das Passwort erhalten Sie vom QS-Team; es gehört nie in Code, Tickets oder Unterlagen.
  • Ohne Anmeldung antwortet die Schnittstelle mit HTTP 401 {"error":"nicht angemeldet"}. Über die Schnittstelle gesetzte Freigaben tragen den Namen „API“.

Wichtige Endpunkte

AufrufLiefert / bewirkt
GET /metaangemeldeter Name, Reset-Methode, Ebenen
GET /overviewDaten des Cockpits: letzter Lauf, laufender Lauf, Trend, Referenz, Freigabe-Entscheidung
GET /runs · GET /runs/:idalle Läufe · ein Lauf mit Index, Abweichungen, Freigabe-Entscheidung
GET /runs/:id/…endpoints, area?name=, dialogs, code-coverage, processes, causes, obs?key=, search?q=&layer=&status=, scenario/:sid
GET /history · /stability · /performance · /key-history?key=Befund-Verlauf, Stabilität, Leistung, Verlauf einer Prüfung
GET /compare?a=&b=freier Vergleich zweier Läufe
GET /compare/seite?a=&b=&offset=&limit=&kind=&layer=&area=&q=Vergleich seitenweise mit Filtern über alle Treffer; Ergebnis je Laufpaar zwischengespeichert
GET /chainProtokollkette mit Prüfergebnis
GET/POST /triageBefund-Bearbeitung lesen / setzen
POST /runs/:id/approveAbweichungen freigeben/ablehnen: ids, reason (Pflicht), decision
POST /runs/:id/baselineLauf als Referenz übernehmen (nur ohne offene Abweichungen), reason
POST /runs/:id/nur-testaenderungreine Testerweiterung festhalten: reason, nachweis – abgelehnt, wenn sich die App-Quellen unterscheiden
POST /runs/:id/eine-freigabeAnordnung des Inhabers „eine Freigabe genügt“: reason, angeordnetVon
POST /startLauf starten (mit Reset, sofern eingerichtet; reset: false ohne). Mit {"modus":"schnell", "dateien":[…], "basis":"<commit>"} ein Schnelllauf – Antwort ok, wartet, freigaberelevant: false
GET /runs/:id/export/pruefauftrag.mdPrüfauftrag; Parameter gesamt=1, key= (mehrfach), bereich=, klasse=, ebene=, befunde=0, abweichungen=0
GET /runs/:id/export/paketePrüfauftrag in Paketen: Übersicht als JSON (ohne Inhalt) – Kennung, Titel, Priorität mit Grund, Zuständigkeit, Zeilen, Teile
GET /runs/:id/export/pakete.zipalle Pakete und 00-uebersicht.md als ZIP
GET /runs/:id/export/pakete/<datei>ein Paket als Markdown, z. B. 00-uebersicht.md; Parameter ?max= (Zeilen je Datei, 400–5.000, Vorgabe 1.500)
GET /runs/:id/export/schema-abgleich.mdSchema-Abgleich Code ↔ Datenbank
GET /runs/:id/export/befunde.csv · abweichungen.csv · abdeckung.csvCSV-Exporte
/studio/…Prozess-Studio: Prozesse, Makros (lesen, speichern, löschen, export.mjs), Wiedergabe (play, control, session), Aufnahme, Assistent, KI-Einstellungen (/studio/ki, Block pruefung für die KI-Zweitprüfung)
Beispiel

curl -H "Authorization: Bearer $QS_PASSWORT" https://<prüfstand>/api/v2/overview – das Passwort nur aus einer Umgebungsvariablen lesen.

Außerhalb von /api/v2: /gesund (Erreichbarkeit, ohne Anmeldung; mit laeuft und wartet), /api/status (laufender Lauf, Warteschlange mit wartendem Stand, geplantem Start und Deploy-Modus), /lauf/:id/protokoll.pdf|.md|.json, /lauf/:id/release-notes.md, /klassisch (klassische Ansicht).

38
Technik

Betrieb: Dienste, Golden-Record, eingefrorene Uhr, Datenablage

Die drei Dienste (Branch qsgate)

01

realERP-API

Docker-Dienst. Beim Start: eigene PostgreSQL im Container, Reset auf den Golden-Record, Uhr eingefroren, dann App-Start.

02

realERP-Oberfläche

Static Site – die echte Oberfläche, vom Prüfstand für Masken, Klickpfade und das Prozess-Studio genutzt.

03

Prüfstand + Cockpit

Docker-Dienst mit Disk /data. Erkennt neue Versionen, führt den Lauf in eigenem Thread aus; das Cockpit bleibt bedienbar.

Golden-Record

  • Fester Datenstand vom 21.10.2026: rund 370.000 Datensätze in über 1.000 Tabellen, ~22 Monate Kerngeschäft.
  • Schema immer aus dem Installer, danach Deltas und Ergänzungen (Kontenfindung, Nummernkreise, Testbenutzer …). Fehlende Golden-Daten werden per Ergänzung behoben, nicht in der App; der Golden-Record ändert sich nur per Pull Request.
  • Mandanten: Demo-Kunde (Hauptmandant, alle Modulbereiche; Buchungskreis DK5, Werk DE01), Meine Firma GmbH (Ergebnisse der In-App-Prüfketten), Nordlicht Software GmbH (Edition Start), Demo Egypt (Länderpaket Ägypten).
  • Muss-Kriterium „Start auf frischem Golden-Record“: Zeilenzahl wie in der Referenz (Toleranz 0,05 %, mind. 50 Zeilen).

Eingefrorene Uhr

  • Datenbank und App laufen mit fester Uhr: 21.10.2026 ab 18:00 Uhr (nach Erzeugen des Golden-Records – neue Sätze sind immer jünger).
  • Jede Version rechnet mit demselben „Heute“ – Fälligkeiten, Alter, Perioden bleiben gleich, sonst wäre der Vergleich mit der Referenz wertlos.
  • Ein Lauf muss vor Mitternacht der eingefrorenen Uhr fertig sein; darum vor jedem Lauf zurücksetzen. Muss-Kriterium „Uhr steht auf dem Golden-Tag“.

Reset und Laufstart

  • Reset-Methode: Deploy-Hook des API-Dienstes oder Neustart über die Render-Schnittstelle – je nach Einrichtung; ohne beides kein automatischer Reset (Warnung beim manuellen Start).
  • Neue Version wird über den Gesundheits-Endpunkt erkannt (Abfrage standardmäßig jede Minute), Start nach 180 s. Neue Commits während eines Laufs warten (nur der jüngste); Deploy-Modus „auto“ oder „fenster“ – siehe Ablauf.
  • Prüfläufe und Studio-Wiedergaben warten aufeinander. Der Prüfstand drosselt sich selbst: Vorgabe 450 Anfragen/min (QSGATE_MAX_RPM) und 14 Anmeldungen je 15 Minuten (QSGATE_MAX_AUTH_15MIN); im QS-Testsystem sind beide angehoben (4.500 bzw. 450), passend zu den angehobenen Limits der QS-API.

Umgebungsvariablen (Auswahl, neu)

VariableWirkung
QSGATE_PARALLEL · QSGATE_PARALLEL_CONFIGGrad der parallelen Szenario-Phase (Vorgabe 3, 1 = nacheinander) · anderer Pfad für config/parallel.json
QSGATE_DEPLOY_MODUS · QSGATE_BRANCHauto (Vorgabe) oder fenster · beobachteter Zweig im Modus „fenster“ (Vorgabe qsgate)
QSGATE_UEBERHOLT_FRIST_SFrist, bis ein überholter Lauf hart beendet wird (900 s)
QSGATE_MODUS · QSGATE_SCHNELL_DATEIEN · QSGATE_GIT_DIRKommandozeile: schnell · geänderte Dateien (Komma) · Verzeichnis für git diff bei --seit
QSGATE_MAX_RPM · QSGATE_MAX_AUTH_15MINAnfragen je Minute (450) · Anmeldungen je 15 Minuten (14)
QSGATE_RECHTE_AUSNAHMENanderer Pfad für config/rechte-ausnahmen.json
QSGATE_KI_MAX · …_MAX_TOKENS_LAUF · …_MAX_TOKENS_ANFRAGE · …_MAX_KOSTENBudget der KI-Zweitprüfung, solange im Cockpit nichts gespeichert ist
QSGATE_LAST · QSGATE_SICHERHEIT · QSGATE_A11Yoff schaltet die jeweilige neue Ebene ab; Barrierefreiheit ist ohnehin standardmäßig aus (Einstellungen › Prüfumfang, QSGATE_A11Y=on nur ohne gespeicherte Einstellung)

Konfigurationsdateien (config/)

DateiInhalt
parallel.jsonRegeln der parallelen Szenario-Phase: Sammelbereiche, exklusive Bereiche und Dateien
route-dateien.jsonZuordnung Router-Datei → Bereiche für den Schnelllauf
rechte-ausnahmen.jsonFehlalarm-Ausnahmen der Rechte-Schicht: muster (regulärer Ausdruck), art „lesend“ (POST, die nur rechnet/prüft/liest) oder „persoenlich“ (eigene Aktion jedes Benutzers), grund ist Pflicht
buchungssaetze.jsonBuchungssatz-Katalog der Fachprüfung Rechnungswesen

Kommandozeile und CI

  • node src/cli.js run [--parallel=N] [--schnell --dateien=…|--seit=<ref>] – Lauf bzw. Schnelllauf.
  • node src/cli.js plan [--parallel=N] – Parallel-Plan der Szenario-Phase aus dem Profil der Referenz.
  • node src/cli.js vergleich <laufA> <laufB> [--ebene=szenarien] – Beobachtungen zweier Läufe vergleichen.
  • GitHub-Workflow .github/workflows/pruefstand.yml bei Änderungen unter qsgate/pruefstand/**: npm ci, Syntax aller Quellen und Szenarien, Szenarien laden, Konfiguration prüfen, npm test.

Datenablage (Disk /data)

DateiInhalt
runs/<lauf>/run.jsonKopf: Version, Zeiten, Zähler, Abdeckung
runs/<lauf>/observations.json.gzalle normalisierten Beobachtungen
runs/<lauf>/deviations.jsonAbweichungen gegen die Referenz
runs/<lauf>/approvals.jsonFreigaben je Abweichung
runs/<lauf>/index-v7.json · sig-v1.jsonLauf-Index und Signatur (Status, Inhalts-Hash, Laufzeit je Beobachtung) – für ältere Läufe im Hintergrund erzeugt
baseline.json · chain.logaktuelle Referenz · Protokollkette
triage.json · macros/Befund-Bearbeitung · eigene Makros
ki.json · ki-fachpruefung-cache.jsonKI-Einstellungen (Schlüssel verschlüsselt) · Ergebnis-Cache der KI-Zweitprüfung je Beleg
Grundsatz

Nichts wird überschrieben außer Freigaben und Referenz; die Protokollkette wird nur ergänzt. Das QS-Gate verändert keine Kunden- oder Produktivdaten.

39
Organisation

Rollen im Projekt und Testbenutzer

01

Berater

Nimmt Kundenprozesse im Prozess-Studio auf und passt Makros an; ordnet Befunde fachlich ein; bereitet die Freigabe-Entscheidung für den Kunden auf. Ansichten: Prozess-Studio, Prozesse, Befunde, Prüfbericht.

02

Freigeber (Vier-Augen)

Prüft jede Abweichung und gibt sie mit Begründung frei oder lehnt ab; kritische und unangekündigte brauchen zwei Personen. Ansichten: Abweichungen, Freigabe, Protokollkette.

03

Entwickler / KI-Entwickler

Arbeitet den Prüfauftrag je Ursachen-Gruppe ab, korrigiert in main mit Test und merged nach qsgate. Ansichten: Prüfauftrag, Befund-Detail, Szenarien.

04

Kunde / Fachbereich

Bestätigt fachliche Erwartungen und Varianten; entscheidet Go-Live auf Basis von GO/NO-GO und Prüfbericht. Ansichten: Cockpit, Prüfbericht, Vergleich.

Testbenutzer im Golden-Record

Die Rechte-Matrix prüft jede schreibende Route gegen jede Rolle: Recht vorhanden → keine Abweisung; Recht fehlt → 401/403; fremder Mandant → 403/404.

BenutzerRolleDarf schreiben in
demo-adminAdministratorallen Bereichen
qs-lesennur lesen— (Abweisung erwartet)
qs-vertriebVertrieb/CRMVertrieb/CRM
qs-fiFinanzbuchhaltungFinanzen (FI)
qs-einkaufEinkaufEinkauf
qs-lagerLagerLager
qs-freigeberVier-Augen-FreigabenFreigaben

Weitere Fachrollen: qs-fertigung, qs-personal, qs-crm, qs-controlling, qs-admin-light. Passwörter stehen nie in Unterlagen oder Makros (dort nur {{password}}).

Grundsatz

Das System misst und dokumentiert – Menschen entscheiden: über Abweichungen mit vier Augen, über Go-Live mit dem Kunden.

F

Anhang

Häufige Fragen, Begriffe, Änderungen

40
Anhang

Häufige Fragen

Verändert das QS-Gate Kunden- oder Produktivdaten?

Nein. Es läuft in einer eigenen Umgebung, deren Datenbank bei jedem Start aus dem Golden-Record neu entsteht.

Wie lange dauert ein Lauf?

Der Lauf vom 29.10.2026 dauerte 4 h 08 min. Mit paralleler Szenario-Phase und angehobenen Anfragelimits sind voraussichtlich rund 2 Stunden zu erwarten. Er startet automatisch ca. 3 Minuten nach einer neuen Version; die Restzeit zeigt der Live-Block im Cockpit. Für einen schnellen Zwischenstand gibt es den Schnelllauf.

Was bedeutet „wartet: <commit>“ in der Kopfzeile?

Während des laufenden Laufs ist ein neuer Stand eingetroffen. Er wird nach dem Lauf automatisch geprüft; kommt ein noch neuerer, ersetzt er den wartenden.

Warum steht ein Lauf auf „Überholt“?

Die API wurde während des Laufs neu deployt (Deploy-Modus „auto“) und hat ihre Datenbank zurückgesetzt – die restlichen Ergebnisse wären falsch. Das Teilergebnis bleibt, der neue Stand wird automatisch geprüft. Abhilfe auf Dauer: Deploy-Modus „fenster“.

Reicht ein grüner Schnelllauf für die Freigabe?

Nein. Ein Schnelllauf prüft nur die betroffenen Bereiche, vergleicht nur den Status und ist ausdrücklich nicht freigaberelevant – er kann weder Referenz werden noch ein GO geben.

Warum NO-GO, obwohl die Punkte gestiegen sind?

Muss-Kriterien entscheiden, nicht die Punktzahl – z. B. offene kritische Abweichungen oder ein verschlechtertes Szenario.

Wer legt eine neue Referenz fest?

Menschen, nicht das System: Jede Abweichung wird begründet freigegeben, kritische und unangekündigte von zwei Personen; dann „Als Referenz übernehmen“.

Abweichung oder Befund – was ist der Unterschied?

Abweichung = Unterschied zur Referenz (kann gewollt sein). Befund = im Lauf fehlgeschlagene Prüfung.

Können wir eigene Kundenprozesse prüfen?

Ja. Im Prozess-Studio aufnehmen oder ein fertiges Makro anpassen und „In jeden Prüflauf aufnehmen“ ankreuzen.

Warum ist die Uhr eingefroren?

Damit Fälligkeiten, Alter und Perioden in jedem Lauf gleich sind – sonst wäre der Vergleich mit der Referenz wertlos.

Sind die Ergebnisse revisionssicher?

Läufe, Freigaben und Referenzwechsel stehen in einer per SHA-256 verketteten Protokollkette.

Wie kommen Fehler zur Entwicklung?

Als Prüfauftrag (Markdown) mit Ursachen-Gruppen und Reproduktion; Korrektur in main, der nächste Lauf bestätigt „behoben“.

Stehen Passwörter in Makros oder Exporten?

Nein. Makros enthalten nur den Platzhalter {{password}}, Prüfaufträge nur $TOKEN; ein KI-Schlüssel wird verschlüsselt gespeichert.

Ein Befund ist rot, aber die App verhält sich fachlich richtig – was tun?

Kategorie lesen: „Fachlich abgewiesen“ oder „Fachliche Erwartung“ prüft der Berater; ist die Ablehnung richtig, wird das Szenario angepasst. Bei „Golden-Daten/Customizing“ wird der Golden-Record ergänzt. Zeitabhängige Prüfungen in Stabilität prüfen.

Warum kann ich keinen Lauf starten?

Es läuft bereits ein Lauf (Hinweis „Lauf läuft“ in der Kopfzeile) – „Lauf starten“ und „Schnelllauf“ sind dann gesperrt. Auch eine laufende Studio-Wiedergabe lässt den Lauf warten.

Wer kümmert sich um welchen Befund?

Die Spalte „Zuständig“ ordnet jeden Befund automatisch ein: App-Fehler → Entwicklung, Testdaten/Szenario → Prüfstand-Team, Customizing/Golden-Record → Berater, Fehlalarm-Verdacht → Prüfstand, Infrastruktur → Betrieb. Den Prüfauftrag gibt es passend dazu in Paketen.

Wie öffne ich zu einer Seite des Cockpits das passende Kapitel?

Über die Schaltfläche „Handbuch“ in der Kopfzeile des Cockpits – sie springt zum Kapitel des aktiven Menüpunkts (Sprungmarke #<menü-id>).

41
Anhang

Glossar

Abweichung
Unterschied einer Beobachtung zur Referenz: neu, geändert, entfallen, neuer Fehler, behoben.
Ausgenommen
Prozessvariante, die mit Pflichtbegründung bewusst nicht geprüft wird; zählt nicht in Prüfmenge und Quote.
Befund
Im Lauf fehlgeschlagene Prüfung (Fehler, verletzte Erwartung oder Regel).
Beobachtung
Normalisiertes Ergebnis einer einzelnen Prüfung in einem Lauf (rund 45.000 je Lauf), eindeutig über ihren Schlüssel.
Bereich
Fachlicher Modulbereich (z. B. Finanzbuchhaltung, Lager); Zeile der Modul-Matrix.
Dialogfunktion
Jede Aktion einer Maske, die ein Backend aufruft (Speichern, Buchen, Export …).
Ebene
Art der Prüfung, z. B. Szenarien, API, MCP, Oberfläche, Prüfketten, Datenbank, Kennzahlen, Konsistenz.
Golden-Record
Fester Datenstand (Dump + Ergänzungen), auf den das QS-Gate vor jedem Lauf zurückgesetzt wird.
Instabil
Prüfung, deren Ergebnis ohne Codeänderung zwischen Läufen wechselt.
KI-Hinweis
Beurteilung eines Fachprüf-Belegs durch die KI-Zweitprüfung – nie ein Befund, nicht freigaberelevant.
Konsistenzregel
Fachliche Invariante per SQL, z. B. Soll = Haben oder Bestand = Bewegungen.
Makro
Prozess als JSON im Prozess-Studio: Schritte, gemerkte Werte, Prüfungen – abspielbar, änderbar.
Muss-Kriterium
Freigabekriterium, das bei Verletzung allein NO-GO bedeutet.
Protokollkette
Per SHA-256 verkettete Chronik von Läufen, Freigaben und Referenzwechseln.
Paket
Teil des Prüfauftrags (höchstens ~1.500 Zeilen) mit Priorität, Zuständigkeit, Reproduktion und Akzeptanzkriterium.
Prozessvariante
Fachliche Ausprägung eines Prozesses im Katalog mit erwartetem Ergebnis.
Prüfauftrag
Markdown-Export der Probleme eines Laufs mit Ursachen-Gruppen und Reproduktion für (KI-)Entwickler.
Prüfkette
In der App eingebaute Prüfung über mehrere Schritte (z. B. FI, Go/No-Go, Ledger-Guards).
Qualitätspunkte
Gewichteter Anteil erfüllter Kriterien, 0–100.
Referenz
Zuletzt freigegebener Lauf; jeder neue Lauf wird mit ihm verglichen.
Schnelllauf
Lauf nur über die vom Commit berührten Bereiche, ohne Reset, mit reinem Statusvergleich – nicht freigaberelevant.
Szenario
Geschäftsprozess als Programm (scenarios/*.mjs), läuft über die API bis zum Endzustand.
Überholt
Lauf, der endete, weil die API währenddessen neu deployt wurde; Teilergebnis gespeichert, nicht bewertet.
Unangekündigt
Abweichung in einem Modul, das im Pull Request nicht angekündigt war; eine Stufe schwerer, vier Augen.
Ursachen-Gruppe
Befunde mit derselben normalisierten Fehlermeldung – eine Ursache, viele Symptome.
Warteschlange
Höchstens ein wartender Stand (der jüngste), der nach dem laufenden Lauf geprüft wird – „wartet: <commit>“.
Zuständigkeit
Automatische Einordnung eines Befunds: App-Fehler, Testdaten/Szenario, Customizing/Golden-Record, Fehlalarm-Verdacht, Infrastruktur.
42
Anhang

Änderungsprotokoll des Handbuchs

Jede Änderung, die Anwender sehen oder bedienen, ändert im selben Commit das Handbuch mit (siehe AGENTS.md). Neueste Einträge oben.

DatumÄnderung
30.10.2026Ausbau: Prüfauftrag-Pakete, Zuständigkeit, Schnelllauf, Warteschlange, Fachprüfung Rechnungswesen, KI-Zweitprüfung, Sonderfälle & Ketten, Prozesslücken, neue Prüfdimensionen. Neue Kapitel Schnelllauf, Fachprüfung Rechnungswesen, Sonderfälle & Ketten, Prozesskatalog, Neue Prüfdimensionen (Teil D); erweitert: Ablauf (Warteschlange, Deploy-Modus, parallele Szenarien, Phasen), Befund-Klassen und Befunde (Zuständig), Läufe (Pakete, Hinweis, KI-Zeile), Prozesse (ausgenommen), Vergleich (seitenweise), Einstellungen (KI-Zweitprüfung), Prüfauftrag (Pakete), Schnittstelle, Betrieb, FAQ, Glossar; neue Bildschirmfotos. Barrierefreiheit ist standardmäßig aus (Einstellungen › Prüfumfang).
30.10.2026Erstausgabe – alle 22 Menüpunkte, Grundlagen, Arbeitsabläufe, Schnittstelle, Betrieb, FAQ und Glossar.
↑