Mittwoch, 29. November 2017

Warum wir Robustness Test brauchen.

Es gibt einen sehr einfachen Grund für Robustness Tests, Robustness Tests helfen dabei die Verfügbarkeit von Softwaresystemen zu steigern. Es gibt drei wesentliche Einflussfaktoren die zu einer Reduzierung der Softwarezuverlässigkeit führen:

  1. Anzahl bzw. Frequenz von Störfällen (Incidents)
  2. Dauer von Störfällen (Duration of Incidents)
  3. Auswirkung oder Umfang von Störfällen (Impact of Incidents)
Robustness Test wirken sich positiv auf alle drei Faktoren aus.
  1. Robustness Test ermöglichen es ein Softwarearchitektur zu wählen bei denen ein Störfall auf das betroffene System beschränkt bleibt und es zu keiner Fehlerkaskade kommt. So wird im Falle eines Störfalls der Umfang begrenzt.
  2. Durch die Reduktion des Umfangs des Störfalls auf eine Einzelsystem wird für die Wiederherstellung des Betriebs weniger Zeit benötigt. Es sind keine Aufwendigen Startprozeduren notwendig wie z.B. starte als erstes Db Server, dann die App Server, warte auf App Server für 3 Minuten bis sie voll funktionsfähig sind, 3. wäre Cache vor, ...
  3. Und als drittes führen Robustness Test zum frühzeitigen Aufdecken von noch unbekannten Problemen die in der Zukunft zu Störfällen geworden wären.
  4. Und als letztes verhindern Robustness Test das Wiederauftreten bekannter Störfälle in dem man bekannt Störfallszenarien als Robustness Test umsetzt und regelmässig testet. Auch so wird die Anzahl der Störfälle reduziert. Für diesen Fall kann man auch eine Testabdeckung berechnen, d.h. wieviele bekannt Störfälle werden regelmässig durch Robustness Test abgedeckt, bzw. simuliert.

Zusammenfassend kann man festhalten Robustness Test sind sie Art von Test die man zum prüfen von nicht-funktionalen Anforderungen (NFA) benötigt.