Folgendes Szenario liegt vor: Es gab eine Änderung an einer Unit. Diese soll mittels Unittest überprüft werden. Danach schließt sich prozessual ein Integrationstest an. Diesen könnte man doch gleich, um Zeit zu sparen, parallel zum Unittest laufen lassen oder? Doch das birgt ein Kostenrisiko.
Warum? Wenn der Unittest fehlschlägt, wird der Integrationstest obsolet. Man hätte Kosten produziert, für unbrauchbare Ergebnisse.
Es gibt jedoch die Möglichkeit, die Instanz für den Unittest direkt weiterzuverwenden und dadurch den Overhead, also unproduktive Zeiten einer Instanz, einzusparen: Vor Ende des Testlaufs werden geschickt die notwendigen Daten (Software, Testdaten, etc.) in die Instanz geladen und die Ausführung des Integrationstests wird angestoßen. Parallel dazu werden die Ergebnisse des Unittests heruntergeladen.
Natürlich ist hier die Frage: Wenn ich schon die Ergebnisse herunterlade, woher weiß ich, ob der Testlauf erfolgreich war? Die Lösung ist ein permanentes Überwachen der laufenden Instanz, denn die meisten Ergebnisse sind bereits vor Ende des Test bekannt. Das Risiko ist dann gering, dass ein Integrationstest schon startet und der vorherige Unittest aber fehlschlug.
Im Endeffekt ist das Mehrkostenrisiko damit nahe 0.
Das bedeutet: Genau prüfen und überlegen, wann die Testergebnisse wirklich benötigt werden.
Warum viele Instanzen nutzen, um Testergebnisse innerhalb einer Stunde zu erhalten, wenn diese zu dem Zeitpunkt gar nicht benötigt werden. Zum Beispiel: Teststart am Freitagabend – um 18 Uhr – und Ergebnisse werden erst im Laufe des Montags benötigt.
In CI-Umgebungen lassen sich Testläufe automatisiert organisieren. Mit der richtigen Strategie, Planung und ein wenig Geduld können Kosten massiv gesenkt werden, wie bei der Nutzung von Dauermieten.