Testen Sie – immer dann, wenn es Ihnen am meisten bringt

22.1.2020 / von Esko Hannula

In der Entwicklung von Informationssystemen sind Softwaretests ein Problemfall. Das Testen gilt auch als der wichtigste Engpass im Softwarefreigabeprozess. 


In traditionellen IT-Projekten starteten die ersten ernsthaften Tests erst kurz vor dem geplanten Abschluss des Projekts. Schließlich war es nicht einfach, das System zu testen, bevor alles zusammengesetzt wurde. Die Tester nennen das den "Big Bang". Mit dem "Big Bang"-Ansatz kann eine ursprünglich für ein paar Wochen geplante Testaufgabe leicht auf 10 Monate verlängert werden. Dieses Vorgehen ist teuer, unberechenbar - und immer noch gefährlich beliebt.

Es gibt einen guten Grund, frühzeitig zu testen: Probleme sind billig und schnell zu beheben, wenn sie frühzeitig erkannt werden. Die Grundursache kann irgendwo tief im Systemdesign liegen. Das Auffinden, Korrigieren und Verifizieren der Korrektur kann sehr aufwendig sein und noch mehr Zeit in Anspruch nehmen. Schlimmer noch, solche Korrekturen werden wahrscheinlich eine Reihe neuer Probleme mit sich bringen.

Angenommen, ein Programmierer hat einen Fehler gemacht und fünf andere Programmierer haben einen neuen Code basierend auf dem fehlerhaften Code geschrieben - und gehen davon aus, dass der neue Code korrekt war. Sobald dieser einzelne Fehler gefunden und korrigiert wurde, werden sich die fünf anderen Codeteile wahrscheinlich alle fehlerhaft verhalten. Stell dir vor, das passiert ein paar hundert Mal. Das Ergebnis ist ein riesiger und oft panischer Test-Debug-Korrektur-Retest-Kreislauf, der neue Fehler einführt und alte korrigiert. So funktioniert der "Big Bang".

Die naheliegende Lösung besteht darin, das Testen nach vorne zu verlagern, d.h. in viel früheren Phasen der Systementwicklung und viel näher am Code zu testen. Fehler werden dann erkannt, wenn sie noch nicht den Rest des Systems betroffen haben. Natürlich sind sie dann schneller zu reparieren und zu überprüfen. Wenn es möglich ist, den Testaufwand über einen längeren Zeitraum zu verteilen, wird die Gesamtzahl der für den Prozess benötigten Personen geringer sein.

Agile Entwicklungsmethoden, moderne Tools und billige Rechenleistung haben alle alten Ausreden beseitigt, um nicht frühzeitig zu testen. Wenn Sie wissen wollen, wie professionell Ihre agilen Teams sind, dann finden Sie heraus, wie sie testen.... oder ob sie überhaupt testen.

Aber die Entwicklung ist noch nicht zu Ende. Das Internet, die Cloud und agile Methoden haben eine ganz neue Art hervorgebracht, Software zu entwickeln und zu releasen. Informationssysteme sind keine unabhängigen, sich langsam verändernden Monolithen mehr. Sie werden aus scheinbar eigenständigen Elementen zusammengesetzt und permanent released.

Beispielsweise ist es wahrscheinlich, dass Ihr ERP mit Ihrem CRM verbunden ist. Das ERP kann sich in Ihrem Netzwerk befinden, aber das CRM kann in der Cloud liegen. Das ERP-System bedient wahrscheinlich mehrere unabhängig voneinander entwickelte Frontend-Anwendungen und tauscht häufig Informationen mit den Systemen Ihrer Lieferanten und Wiederverkäufer aus. Wann immer sich eines dieser Systeme ändert, können Ihre kritischen Geschäftsprozesse betroffen sein.

Etwas überraschend ist, dass es auch notwendig ist, die Tests nach hinten zu verschieben. Das bedeutet in der Praxis, Tests in der Produktionsumgebung durchzuführen. Häufig ist der schnellste und kostengünstigste Weg, um sicherzustellen, dass alles noch funktioniert, die Weiterführung von Tests in der Produktion und die Überwachung des Verhaltens der Systeme in Bezug auf die Geschäftsprozesse, für die sie bestimmt sind.

Das gleichzeitige Verschieben von Tests nach vorne und nach hinten verbessert die Geschwindigkeit, Qualität und Produktivität der Softwareentwicklung und steigert das Vertrauen in die Leistung von Geschäftsprozessen, die auf verschiedenen integrierten Informationssystemen beruhen.

 


Den Rest der Blog-Serie finden Sie hier:

  1. Hören Sie auf, Ihre Systeme zu kontrollieren – und beginnen Sie, diese zu steuern
  2. Investieren Sie in Produkte, nicht Projekte – und machen Sie Ihre Organisation effektiv
  3. Setzen Sie auf DevOps – und lassen Sie sich nicht entmutigen
  4. Testen Sie – immer dann, wenn es Ihnen am meisten bringt
  5. Automatisieren Sie so viel wie möglich – aber keinen schlechten Prozess
  6. Messen Sie - aber mit Köpfchen



 

Esko Hannula

Geschrieben von Esko Hannula