Chrono Mock
SpracheDeutsch

Testenswerte Daten

Software scheitert nicht an gewöhnlichen Dienstagen. Sie scheitert am letzten Tag des Quartals, am 29. Februar, im Moment des Jahreswechsels und eine Sekunde nach Ablauf einer Lizenz. Das sind die Daten, die diese Fehler finden - 14 davon liegen als benannte Szenarien bei.

Periodengrenzen

Alles, was eine Periode abschließt, ein Dokument nach Jahr nummeriert oder bis zu einem Stichtag aufläuft, macht hier zuerst Fehler.

  • Letzter Tag des Monats - verhalten sich Monatsabschluss und periodengerechte Abgrenzung am letzten Tag des Monats richtig?
  • Letzter Tag des Quartals - verhalten sich Quartalsabschluss und Berichterstattung am letzten Tag des Quartals richtig?
  • Letzter Tag des Geschäftsjahres - schließt die App das Geschäftsjahr am richtigen Tag ab, am Tag vor dem Beginn des neuen Geschäftsjahres?
  • Jahreswechsel, live - kommen Dokumentnummerierung, Jahr im Namen und Jahresberichte mit dem Wechsel zurecht, während er stattfindet, statt danach neu gestartet zu werden?

Der letzte ist der, den man meist gar nicht testen kann, weil die Uhr dafür um Mitternacht des 31. Dezember überschreiten muss, während die Anwendung läuft. Mit einer beschleunigten Uhr ist das eine Sache von zehn Sekunden.

Kalender- und Darstellungsgrenzen

  • 29. Februar - der Schalttag, den es nur alle vier Jahre gibt und den erstaunlich viel Validierungscode rundheraus ablehnt.
  • Unix-Epoche null - behandelt die App den 1. Januar 1970 als echtes Datum oder als leeren Wert, den sie nie hätte speichern dürfen?
  • 2038-Grenze - der Moment, in dem ein vorzeichenbehaftetes 32-Bit-time_t ausläuft, bei 2038-01-19T03:14:07Z. Eine Sekunde später läuft der Zähler ins Jahr 1901 über.

Lizenzen, Testversionen und Installation

Diese sind zum Testen Ihrer eigenen Lizenzierung gedacht, dafür wurden sie geschrieben.

  • Letzter Tag der Testversion - funktioniert die App im allerletzten Moment der Testphase noch?
  • Erster Tag nach Ablauf der Testversion - verweigert sie den Zugriff genau in dem Moment, in dem die Testphase endet, und wie? Mit einer sinnvollen Meldung oder einem Stacktrace?
  • Lizenz vor einem Jahr abgelaufen - kommt sie mit einer Lizenz zurecht, die vor langer Zeit abgelaufen ist, nicht nur gestern?
  • Datum vor der Installation - verhält sie sich richtig, wenn die Uhr vor ihr eigenes Installationsdatum gestellt ist? Dieses liest das Dateidatum des Ziels selbst und braucht daher keinen Parameter.

Geschäftsregeln und Uhrverhalten

  • Zahlung fällig, +N Werktage - landet eine in N Werktagen fällige Zahlung am richtigen Tag, unter Auslassung von Wochenenden und den Feiertagen des richtigen Landes? Das einzige Szenario, das einen Kalender braucht, und die Antwort unterscheidet sich zwischen den Märkten.
  • Grenze der Volljährigkeit - lässt die App jemanden genau an der Grenze zu und weist jemanden ab, dem ein Tag fehlt?
  • Uhrenabweichung, +90 s - kommt die App zurecht, wenn ihre Uhr neunzig Sekunden vorgeht? Das ist der Fall, der zeitbasierte Einmalpasswörter und die Token-Validierung bricht.

Eines verwenden

Ein Szenario ist ein benannter Datumsausdruck. Der Rechner ermittelt, was er bedeutet, und die Ersetzung führt eine Anwendung damit aus - derselbe Name an beiden Stellen.

# Welches Datum ist das, und was prüft dieses Datum?
chrono calc --preset month-end

# Eine Anwendung damit ausführen
chrono run "C:\apps\test.exe" --preset year-rollover --report session.txt

# Die Testversions-Szenarien nehmen das Startdatum aus dem Dateidatum des Ziels
chrono run "C:\apps\test.exe" --preset trial-first-day-after

Im Fenster sind sie Chips über dem Datumsfeld - ein Klick füllt es aus. Jedes trägt seinen eigenen Satz, der sagt, was es findet, und das kann Ihnen ein Online-Datumsrechner nicht geben.

Der Einrichtungsbildschirm von Chrono Mock mit geöffnetem Abschnitt Scenarios: ein Suchfeld über der Liste, dann jedes fertige Datum mit der Frage, die es beantwortet - die 2038-Grenze, der 29. Februar, eine um neunzig Sekunden vorgehende Uhr, der letzte Tag des Monats - und unter der Liste eine Zeile, dass drei weitere einen von Ihnen gewählten Wert brauchen. Die Fußzeile gibt den Zeitpunkt in einfacher Sprache über der Schaltfläche Start wieder.
Jedes Szenario trägt die Frage, die es beantwortet, und nicht nur ein Datum. Die drei, die einen von Ihnen gewählten Wert brauchen, stehen unter der Liste, statt versteckt zu sein.

Was hier nicht dabei ist

Die Sommerzeitwechsel. Eine Anwendung über die Grenze der Umstellung auf Sommerzeit oder zurück zu schicken, ist ein wirklich nützlicher Test, und er fehlt absichtlich, weil die Sitzungszeitzone ein fester Offset ohne Sommerzeit ist - es gibt noch keinen Wechsel zu simulieren. Ein Szenario auszuliefern, das stillschweigend nichts täte, wäre schlimmer, als es nicht auszuliefern.

Es kommt mit einem Modell der Zeitzonenregeln zurück. Was die Zeitzone tut und was nicht →

Ausprobieren