# language: de Funktionalität: Nachvollziehbare Reports und ein bewusst aktiviertes Build-Gate liefern Als CI-Nutzer möchte ich hohe Scores und Analyseprobleme unterscheiden, ohne fehlende Daten mit guter Qualität zu verwechseln. @MC-019 Szenario: Der Standardmodus erstellt Reports ohne Score-bedingten Build-Abbruch Angenommen die Analyse ist regulär abgeschlossen Und eine Methode hat Mutation-CRAP 110 Und es ist kein Score-Gate aktiviert Wenn das Ergebnis ausgegeben wird Dann bleibt der Build wegen dieses Scores erfolgreich Und der hohe Wert ist im Report sichtbar @MC-020 Szenariogrundriss: Nur eine echte Überschreitung verletzt den Grenzwert Angenommen eine Methode hat den gültigen Mutation-CRAP-Wert Und ein Score-Gate mit Grenzwert 30 ist aktiviert Und es liegen keine weiteren Verstöße oder Analyseprobleme vor Wenn das Gate ausgewertet wird Dann ist das Build-Ergebnis Beispiele: | score | ergebnis | | 29 | erfolgreich | | 30 | erfolgreich | | 31 | fehlgeschlagen | @MC-021 Szenario: Anzeigerundung beeinflusst das Gate nicht Angenommen eine Methode hat Komplexität 10, 79 KILLED- und 21 SURVIVED-Ergebnisse Und ihr exakter Mutation-CRAP-Wert beträgt 10.9261 Und für die Anzeige wird auf eine Nachkommastelle gerundet Und der aktivierte Grenzwert beträgt 10.92 Wenn das Gate ausgewertet wird Dann scheitert es wegen der tatsächlichen Überschreitung Und der gerundete Anzeigewert 10.9 wird nicht für den Vergleich verwendet @MC-022 Szenariogrundriss: Ein striktes Gate kann Analyseprobleme nicht als Erfolg werten Angenommen alle numerisch bewerteten Methoden liegen unter ihrem Grenzwert Aber es besteht Wenn das aktivierte strikte Gate ausgewertet wird Dann scheitert es mit einem konkreten Analysefehler Und der Fehler wird nicht als schlechte Testqualität bezeichnet Beispiele: | problem | | ein INCONCLUSIVE-Ergebnis | | unerwartet fehlende Methodenkomplexität | | ein unerwartet unvollständig inventarisierter Scope | | ein fehlender oder unlesbarer aktueller Report | | eine nicht unterstützte Report-Schemaversion | @MC-023 Szenario: Eine leere Auswertung wird nicht stillschweigend grün Angenommen ein Score-Gate ist aktiviert Und im ausgewählten Scope ist keine einzige Methode numerisch bewertbar Und leere Auswertungen sind nicht ausdrücklich erlaubt Wenn das Gate ausgewertet wird Dann scheitert es mit dem Hinweis auf eine leere Auswertung @MC-024 Szenario: Ein absichtlich leeres Modul kann ausdrücklich erlaubt werden Angenommen die Analyse eines Moduls ist regulär abgeschlossen Und es gibt keine numerisch bewertbaren Methoden und keine Analysefehler Und leere Auswertungen sind ausdrücklich erlaubt Wenn das aktivierte Gate ausgewertet wird Dann scheitert es nicht allein wegen der leeren Auswertung Und der Report bezeichnet das Modul weiterhin als unbewertet @MC-025 Szenario: Nach einer Grenzwertverletzung bleiben Reports verfügbar Angenommen PIT und alle aktivierten Reporter sind regulär abgeschlossen Und ein Methodenwert verletzt den aktivierten Grenzwert Wenn der nachgeschaltete Gate-Task ausgeführt wird Dann schlägt der Build fehl Und der JSON-Report bleibt vollständig und schemakonform lesbar Und der Markdown-Report und die normalen PIT-Reports bleiben verfügbar @MC-026 Szenario: Maschinenlesbare Werte sind eindeutig und nachrechenbar Angenommen eine Auswertung enthält bewertete und unbewertete Methoden Wenn der JSON-Report geschrieben wird Dann enthält er Metrikversion, Policykennung, Toolversionen und Analysescope Und er enthält die verwendeten Methodenidentitäten und Status-Rohzähler Und nicht definierte numerische Werte werden als null geschrieben Und kein Feld enthält NaN oder Infinity Und der Report entspricht seinem versionierten JSON-Schema