Fehler
Im veröffentlichten Schemer 2.8.5 verwirft der numerische Regelgenerator gültige Grenzwerte 0. Dadurch kann eine erzeugte Kodierung Antworten außerhalb des eingegebenen Bereichs mit voller Punktzahl bewerten.
Reproduktion
- Die Variablenliste
sample-data/var-list-1.json laden und I06_NUM auswählen.
- Den Zauberstab öffnen, Größer gleich = 0 und Kleiner gleich = 10 eintragen.
- Die Vorschau zeigt nur „Kleiner gleich 10“. Die Kodierung erzeugen und als JSON speichern.
- Im FULL_CREDIT-Regelsatz steht nur
NUMERIC_MAX mit Parameter 10; die Untergrenze fehlt.
CodingFactory.code gibt für den Antwortwert -5 Code 1 und Score 1 zurück. Auch 0 und 10 erhalten Score 1; 11 erhält Code 0.
Erwartet: Ein Bereich von 0 bis einschließlich 10; negative Werte dürfen keine volle Punktzahl bekommen.
Weitere Ausprägungen
- Ohne numerische Eingabe zeigt die Vorschau „Bitte Wert eintragen“, aber „Erzeugen“ bleibt aktiv. Es entsteht ein FULL_CREDIT-Regelsatz mit leerer
rules-Liste, der keine Antwort trifft.
- Bei Übereinstimmung = 0 wird eine
NUMERIC_MATCH("0")-Regel gespeichert, aber die Vorschau meldet fälschlich „Bitte Wert eintragen“.
Ursache und Abnahme
generate-coding-dialog.component.ts prüft geparste Zahlen unter anderem mit minValue && maxValue und if (minValue) (Vorschau um Zeile 354, Generierung um Zeile 790). Für 0 sind diese Ausdrücke falsch. canGenerate() validiert den numerischen Modus nicht.
- Alle vier Grenzen akzeptieren
0 als gültigen Wert; Vorschau und gespeicherte Regeln stimmen überein.
- Leere oder ungültige numerische Definitionen lassen sich nicht erzeugen.
- Ein UI-Regressionstest prüft die erzeugten Regeln; ein Auswertungstest prüft insbesondere
-5, 0, 10, 11 für den Bereich [0, 10].
Nachgestellt am unveränderten Release Schemer 2.8.5 im Browser; das heruntergeladene Artefakt entsprach dem Release-Digest.
Fehler
Im veröffentlichten Schemer 2.8.5 verwirft der numerische Regelgenerator gültige Grenzwerte
0. Dadurch kann eine erzeugte Kodierung Antworten außerhalb des eingegebenen Bereichs mit voller Punktzahl bewerten.Reproduktion
sample-data/var-list-1.jsonladen undI06_NUMauswählen.NUMERIC_MAXmit Parameter10; die Untergrenze fehlt.CodingFactory.codegibt für den Antwortwert-5Code 1 und Score 1 zurück. Auch 0 und 10 erhalten Score 1; 11 erhält Code 0.Erwartet: Ein Bereich von 0 bis einschließlich 10; negative Werte dürfen keine volle Punktzahl bekommen.
Weitere Ausprägungen
rules-Liste, der keine Antwort trifft.NUMERIC_MATCH("0")-Regel gespeichert, aber die Vorschau meldet fälschlich „Bitte Wert eintragen“.Ursache und Abnahme
generate-coding-dialog.component.tsprüft geparste Zahlen unter anderem mitminValue && maxValueundif (minValue)(Vorschau um Zeile 354, Generierung um Zeile 790). Für0sind diese Ausdrücke falsch.canGenerate()validiert den numerischen Modus nicht.0als gültigen Wert; Vorschau und gespeicherte Regeln stimmen überein.-5,0,10,11für den Bereich[0, 10].Nachgestellt am unveränderten Release Schemer 2.8.5 im Browser; das heruntergeladene Artefakt entsprach dem Release-Digest.