Schon mal gehört? „Bugs und (automatisierte) Tests...“?
Nicht nur in der Medizin werden durch Tests oder Studien Medikamente oder Geräte auf Wirksamkeit und Sicherheit geprüft. In der Softwareentwicklung auch. Denn Fehler machen ist menschlich und Software wird von Menschen entwickelt. Ergo: Auch in Software können Fehler sein, die sogenannten Bugs! Das Prüfen auf mögliche Fehler bzw. Testen von digitalen Lösungen wird bei einer umfangreichen und guten Qualitätssicherung mehrstufig durchgeführt. Während der Umsetzung werden zuerst die einzelnen Komponenten bzw. Teilbereiche der Software für sich getestet. Angenommen, die Software ist der Körper eines Menschen, wären die Komponenten des Körpers z. B. die Organe, die mittels sogenannter Unittests einzeln für sich getestet werden, z. B. ein Herz-Echo-Test für das Herz und eine Spirometrie für die Lunge. Ist sichergestellt, dass die Komponenten / Organe für sich funktionieren, wird geprüft, ob die Organe miteinander funktionieren (Integrationstests). Nach der Fertigstellung des Produktes wird erstmal, vergleichbar mit In-vitro-Tests, in kontrollierter (Test-) Umgebung das Produkt auf ihre Wirksamkeit und Funktionsfähigkeit geprüft, z. B. durch sogenannte Funktions-, Regressions- oder Smoketests. Während die Funktionstests sich darauf konzentrieren, ob eine bestimmte Funktion für sich wie definiert arbeitet, ist ein Smoketest eine schnelle Prüfung auf die wesentlichen und wichtigsten Funktionsbereiche, vergleichbar mit einem Puls, Blutdruck und Körpertemperaturcheck. Ein Regressionstests wiederum ist eher der Test, welcher möglichst vollumfänglich alles durchprüft, wie z. B. eine Vorsorgeuntersuchung. In der Softwareentwicklung folgt man der These, dass auch eine kleinste Änderung im komplexen System dazu führen kann, dass das Produkt in Teilen oder ganzen (anderen) Bereichen nicht mehr gemäß Definition funktionieren könnte, ähnlich wie die Einnahme von Medikamenten oder die Veränderung von Verhalten oder Therapien zu Wechselwirkungen bzw. Nebenwirkungen führen kann. Entsprechend versucht die Softwareentwicklung sicherzustellen, dass bei jeder Veränderung auch die genannten Tests erneut durchgeführt werden. Dies lässt sich primär nur dadurch bewerkstelligen, indem die Softwareentwicklung so viele Tests wie möglich automatisiert. Automatisierte Tests sind entsprechend solche Tests, die einmal von Softwareentwickler*innen definiert und entwickelt wurden und auf Knopfdruck automatisiert durchgeführt werden. Die Testergebnisse zeigen auf, welche Bereiche der Software nicht wie erwartet funktionieren und können dann gezielt korrigiert werden, um die Korrektur sofort wieder automatisiert neu zu prüfen. Das Prüfen auf Fehler bzw. das Testen von digitalen Lösungen, sowohl automatisiert als auch manuell durchgeführt, gehört zu den wichtigsten Aufgaben in der Softwareentwicklung.Denn nur so kann sichergestellt werden, dass auch wirklich alles im System wie erwartet funktioniert. Tests sind aufwendig und teuer. Fehler, die live gehen, auch. Am Ende zählt nur eins: Eine gute digitale Lösung!
Vorheriger Artikel