Zum Hauptinhalt springen

Ich habe die folgenden Anmerkungen zum Thema „Durchführung effektiver Tests vor der Produktion” für meine Kolumne „VOS Corner” im Newsletter der Stratus Group vom Dezember 1996 verfasst. Auch heute, fast 13 Jahre später, sind sie noch aktuell.

Wenn ich unseren Kunden einen Vorschlag machen dürfte (nur eine Bitte!), dann wäre es, dass Sie neue Versionen Ihrer Anwendung unbedingt einem Stresstest unterziehen, bevor Sie sie in Betrieb nehmen. Ich war in letzter Zeit an einer Reihe von Fällen beteiligt, in denen der Kunde eine Anwendung bereitgestellt hat, die alle Funktionstests bestanden hatte, aber kurz nach der Inbetriebnahme ausfiel, weil sie der Produktionslast nicht gewachsen war.
Wie Sie sicherlich wissen, kann Software unvorhersehbar und schwierig zu testen sein. Zu wissen, dass ein Programm bei 10 Transaktionen pro Sekunde funktioniert, ist nicht dasselbe wie zu wissen, dass es bei 100 Transaktionen pro Sekunde funktioniert. Zu wissen, dass es mit 10 virtuellen Schaltkreisen funktioniert, ist nicht dasselbe wie zu wissen, dass es mit 1000 virtuellen Schaltkreisen funktioniert. In allen Fällen, die ich gesehen habe, funktionierte das Programm im Labor oder in der Testumgebung einwandfrei, versagte jedoch in der Produktion aufgrund eines zugrunde liegenden Softwarefehlers oder einer Kapazitätsgrenze kläglich. Wenn ich hinzugezogen werde, liegt die Grenze in der Regel innerhalb von VOS und nicht in der Anwendung, aber unabhängig davon, wo sie liegt, ist die Auswirkung für Ihre Kunden dieselbe. Wenn Sie wissen möchten, ob Ihre Anwendung in der Produktion funktioniert, müssen Sie sie so testen, als befände sie sich in der Produktion.
Im Laufe der Jahre habe ich viele Ausreden gehört, warum man Software nicht unter denselben Bedingungen testen kann wie in der Produktion. Ich glaube keine davon. Sie können den Produktionsdatenstrom und die Dateien erfassen und für Tests verwenden. Sie können synthetische Testgeneratoren einrichten, um gute und schlechte Eingaben zu simulieren. Sie können geräteabhängigen Schnittstellencode umgehen, um Server mit Hochgeschwindigkeitsdatenströmen zu versorgen. Es gibt viele Tricks, mit denen Sie 90 % Ihrer Anwendung voll funktionsfähig machen können, auch wenn Sie im Testmodus nicht 100 % erreichen. Hören Sie auf, das Problem als Simulation der Produktion zu betrachten, und beginnen Sie, es einfach als das Ziel zu sehen, so viel Code wie möglich so schnell wie möglich auszuführen. Achten Sie darauf, Ihr System auf 100 % CPU-Auslastung zu bringen; dort treten in der Regel die „interessanten” Probleme auf.
Indem Sie Ihre Anwendungssoftware bis an ihre Grenzen ausreizen, testen Sie gleichzeitig auch VOS. Kapazitätsprobleme werden Sie in Ihrem Labor feststellen, nicht in der Produktion. Sie werden wissen, wo Ihre Kapazitätsgrenzen liegen. Sie werden Ihre Testphase mit einem viel höheren Maß an Zuversicht beenden, dass die Bereitstellung Ihrer Anwendung erfolgreich sein wird. Sie werden Ihren Chef und Ihre Kunden zufriedenstellen. Sind das nicht gute Gründe?