Unit Testing für Architektur Vorgaben

Neben den Unit Tests für einzelne Methoden kann man auch generelle Vorgaben prüfen, welche die gesamte Architektur erfüllen muss. Dazu gibt es das ArchUnit Paket.

In meinem Demo Projekt habe ich das mal in aller Breite beispielhaft aufgebaut:

  • Requirements (in Testlink)
  • Logische Testcases (ebenfalls in Testlink)
  • Physische Testcases (im Java Maven Projekt)

Systemweites Einsammeln von Timeouts

Bei komplexen Systemen mit vielen Entwicklern wird es schwierig, wenn man effektiv nach Timeouts testen möchte. Ohne das Wissen wie lange manche Dinge gültig sind und später invalidiert werden, kann man nur im Nebel stochern. Auch wenn jeder für sich das irgendwo dokumentieren sollte, dann fehlt doch leider eine Gesamtübersicht.

Also bräuchte man einen globalen Zeitstrahl, der alle Timeouts auf einen Blick darstellt und dann kann man auch mal einen Langzeittest fahren, der

  • effektiv ist, weil er genau ein wenig länger ist als der letzte abgelaufene Timeout
  • komplett ist, weil er nicht einen noch längeren Timeout unwissentlich unterschlägt
  • nachvollziehbar ist, weil die Entscheidungsgrundlage für genau dieses Intervall dokumentiert ist