Bionik bei der Fehlersuche

Wer Anforderungen an ein innovatives System ermitteln will, sollte dafür Kreativitätstechniken anwenden. Eine dieser Techniken ist die Bionik, also die Suche nach Analogien in der Natur. Aus diesen können kreative Vorschläge abgeleitet werden, wie man mit Softwarefehlern verfahren kann.

Anpassung und Evolution

Tiere und Pflanzen sind permanent bestrebt, sich an ihre Umgebung anzupassen. Wenn es dem Erhalt der Art dienlich ist, ändern sie ihre Verhaltensweisen. Wer hätte gedacht, dass die im Blumenkasten nistende Amsel im 19. Jahrhundert noch ein scheuer Waldvogel war? Was in einer Generation nicht möglich ist, schafft die Natur durch Evolution in vielen Generationen.

Leider funktioniert Anpassung in der Natur nicht immer. So hat sich die Annahme, Igel würden sich zu ihrem Schutz einrollen, sobald ein Auto naht, als Irrglaube herausgestellt. Igel wissen inzwischen sehr gut, wie gefährlich die Straße für sie ist. Sie haben sich angepasst und sind sehr vorsichtig. Zu vorsichtig – denn sie bleiben oft einfach mitten auf der Straße stehen und horchen, ob ein Auto kommt. Leider nimmt diese gelernte Verhaltensweise selten ein gutes Ende.

Auch in der Softwareentwicklung sind evolutionäre Strategien zu beobachten. So ist ein bekannter Hersteller eines ebenso bekannten Betriebssystems inzwischen dazu übergegangen, kontinuierlich Updates herauszugeben. Dadurch hat die Verweildauer grober Bugs im System tatsächlich abgenommen. Doch leider „horchen“ unsere Computer ständig nach neuen Updates, was sich negativ auf die Performance auswirkt.

Trial and Error

Eine weitere Strategie der Natur ist "trial and error". Immer wieder kommt es zu Mutationen, die sich dann entweder bewähren oder aussterben. Verifizierung, also Korrekturen vor Auslieferung, kommen in der Natur selten vor. Stattdessen wird in der Regel nach der Geburt selektiert. Dieses Prinzip ist für Anwender von Software nicht akzeptabel; besonders dann nicht, wenn es sich um sicherheitskritische Systeme wie z.B. Steuerungssoftware für Bremsen handelt. Tatsächlich ist eine Analogie zu „trial and error“ in der Industrie eher selten zu finden. Welche Firma entwickelt schon freiwillig die gleiche Software in verschiedenen Technologien?

Stattdessen kultiviert die Industrie den Plattform-Gedanken, der wiederum der Natur fremd ist. Denn die Natur setzt niemals alles auf eine Karte. Vielleicht sollte uns dies zu denken geben. Wie sehen die Technologien von morgen aus? Wird die Anzahl von zu testenden Produkt-Varianten weiter ansteigen, oder nicht? Falls ja, wie werden wir dieser Vielfalt Herr? Können wir möglicherweise  die Cloud auch für Softwaretests nutzen? Die Antwort lautet „ja“. Das Konzept Test@Cloud verbindet modellbasiertes Testdesign mit Virtualisierung und Cloud Computing.

Konstante Planung

Auffällig ist, dass sich die Natur streng an den initialen Plan hält. Ein Menschenbaby braucht neun Monate, bis es geboren wird; ein Elefantenbaby etwa 2 Jahre. Bei Frühgeburten kommt es oft zu Schwierigkeiten. Auch hier besteht eine Analogie, die zu denken gibt, denn immer kürzere Entwicklungszeiten führen zu immer höherem Aufwand in der Wartungsphase.

Und wie sieht es mit der Auslagerung von Aufgaben in der Natur aus? Hier ist der Kuckuck Vorreiter, lässt er doch andere seine Kinder großziehen. Allerdings hat sich auch der Kuckuck angepasst. Seine Eier gleichen in Form und Farbe den Eier der Pflegeeltern und auch das Kuckucksbaby weiß, die richtigen Laute von sich zu geben. Wer schon einmal die Tests für deutschsprachige Anforderungen nach Indien oder Rumänien vergeben hat, wird wissen, was gemeint ist.

Die Beispiele zeigen, wie uns die Bionik auf neue Möglichkeiten und Schwierigkeiten aufmerksam machen kann. Auf Software-Qualitätssicherung angewandt, eröffnen sich Themen wie verteilte Tests in der Cloud, realistische Aufwandsabschätzungen oder Sprachbarrieren mit Dienstleistern, über die es sich lohnt, genauer nachzudenken.

Neuen Kommentar schreiben

CAPTCHA
Um Bot-generierten Kommentaren vorzubeugen, bitten wir Sie, dieses Captcha zu lösen.
2 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.