stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 313

Tag 313 von 365 · Experte · Monat 11: Optimierung und Fehlersuche

Testfälle schreiben

Testfälle schreiben: Normalfall, Grenzfall und Ausfall in einer Tabelle der Erwartungen festhalten und nach jeder Änderung alles neu prüfen.

Lektion 18 Min. Woche 45

Das lernst du heute

  • Normalfall, Grenzfall, Ausfall
  • Tabelle der Erwartungen
  • Nach jeder Änderung testen

„Läuft doch“ heißt meistens: Es lief einmal, bei 101 kPa, mit allen Sensoren. Ein Testfall hält fest, was der Chip in einer bestimmten Lage tun muss. Mit einer Handvoll davon prüfst du nach jeder Änderung in einer Minute, ob noch alles stimmt.

Drei Arten von Testfällen

  • Normalfall: typische Werte, wie sie jeden Tag vorkommen – 101,3 kPa in der Halle.
  • Grenzfall: genau auf der Schwelle und knapp daneben – 90,0 und 89,9 kPa. Hier verstecken sich die Verwechslungen von slt und sle.
  • Ausfall: Sensor weg, Wert NaN, Gerät fehlt. Der Chip muss in den sicheren Zustand.

Die Tabelle der Erwartungen

Schreib die Tabelle, bevor du programmierst. Für die Druckampel der Halle sieht sie so aus:

FallDruckFarbeBlinklichtAnzeige
normal101,3grünaus101,3
Grenze grün unten90grünaus90
knapp darunter89,9gelbaus89,9
Grenze grün oben110grünaus110
knapp darüber110,1gelbaus110,1
Grenze gelb80 und 120gelbaus–
außerhalb79,9 oder 120,1rotan–
Sensor weg–rotan-1

Jede Zeile ist eine Frage an den Code. Ob „90 gehört noch zu grün“ stimmt, entscheidet allein sge oder sgt:

define GRUEN_MIN 90   # kPa, ab hier gruen, 90 gehoert dazu
define GRUEN_MAX 110  # kPa, bis hier gruen, 110 gehoert dazu
sge unten p GRUEN_MIN
sle oben p GRUEN_MAX
and gruen unten oben

Die Tests in der Akademie sind genau solche Tabellen: Werte setzen, Takte laufen lassen, Ergebnis erwarten. Im Spiel machst du dasselbe mit einem Drehknopf als Testwert – dazu mehr im Großprojekt.

Nach jeder Änderung

Eine kleine Änderung an einer Grenze kann eine ganz andere Zeile kaputt machen. Deshalb laufen nach jeder Änderung alle Testfälle, nicht nur der, an dem du gerade arbeitest. Im Simulator dauert das eine Minute, im Spiel nach einem Fehler oft einen Abend.

Tipp

Schreib die Grenzen als define und notier im Kommentar, ob der Grenzwert selbst noch dazugehört. Dann gibt es später keinen Streit zwischen Tabelle und Code.

Übung

Aufgabe

Bau die Druckampel nach der Tabelle oben. Sensor „Halle“, Anzeige „Druck“ (zeigt den Druck, bei Ausfall -1, Farbe über Color), Blinklicht „Druckalarm“. Grün: 90 bis 110 kPa einschließlich. Gelb: 80 bis 120 kPa einschließlich, außerhalb von Grün. Rot sonst und bei fehlendem Sensor – dann blinkt auch der Alarm.

Hinweise

Hinweis 1

Grenzen eingeschlossen heißt sge unten und sle oben.

Hinweis 2

Erst das gelbe Band (80–120) prüfen, dann mit select Grün darüberlegen.

Hinweis 3

Rot ist alles außerhalb des gelben Bands: seqz liefert dann den Alarm. NaN landet automatisch dort.

Quiz

4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall