Testen ist wie ein Kriminalroman | Technologischer Blog

05.04.2021

Jede Anwendung oder jedes komplexe Informationssystem muss einen langen Weg zurücklegen, bevor es in die Hände des Endbenutzers kommt. Und auch hier ist der erste Eindruck das Wichtigste. Nichts scheint den Benutzer mehr zu enttäuschen als eine Anwendung, die viele Fehler oder sogar Abstürze aufweist. 

Daher spielt das Testen eine unersetzliche Rolle bei der Entwicklung von Informationssystemen. Heute werden wir mit Mária Dujsíková über Testen sprechen, der leitenden Managerin für Testen bei ANASOFT.

Es wird viel über Testverfahren im Zusammenhang mit der Entwicklung von Informationssystemen gesprochen, was kann sich der Leser darunter vorstellen?

Am Anfang ist es wichtig zu sagen, dass, obwohl es verschiedene Formen des Testens gibt, über die lange gesprochen werden kann, dass das Testen einen anderen Anwendungsanblick erfordert als Anblick des Analytikers. Meiner Meinung nach ist dies die grundlegende Information für Leser, erst hier fängt alles an.

Wenn jemand eine Anwendung entwirft und entwickelt, bedeutet dies normalerweise, was die Anwendung tun soll und wie sie es tun soll. Im Gegenteil, beim Testen muss nicht nur überprüft werden, ob die Anwendung das tut, was sie soll, sondern auch herausfinden, ob die Anwendung nicht das tut, was sie nicht tun soll. Ob sie richtig auf ungewöhnliche Situationen reagiert. Und das ist genau der andere Anblick.

Das klingt interessant, kannst du es anhand eines Beispiels veranschaulichen?

Versuchen wir ein Beispiel aus einem Leben, das jeder kennt. Angenommen, Sie möchten Geld an einem Geldautomaten abheben. Ein Geldautomat ist eigentlich nichts anderes als ein Computer, eine Anwendung, die genau darauf ausgelegt ist, dass eine Person Geld daraus abheben kann. Wenn Sie sich entscheiden, Geld an einem Geldautomaten abzuheben, denken Sie ungefähr so: Ich komme zum Geldautomaten, lege die Karte ein, gebe die PIN ein, wähle den erforderlichen Betrag, nehme das Geld und gehe.

Stimmt, es sieht einfach aus. Man würde sich denken, dass es Nichts zu testen gibt.

Genau. Die Realität ist jedoch komplizierter und wir können sicher die Tatsache überspringen, dass der Geldautomat normalerweise zu Beginn nach der Sprache fragt, in der der Benutzer kommunizieren möchte.

Es reicht aus, wenn wir uns an das ursprünglich beschriebene einfache Szenario halten und bereits beim Einsetzen der Karte verschiedene Situationen auftreten können, auf die die ATM-Anwendung und damit das Testen sinnvoll reagieren sollten.

Was passiert zum Beispiel, wenn jemand eine ungültige Karte in einen Geldautomaten einlegt? Sollte die Karte vom Geldautomaten zurückgehalten werden? Sollte der Benutzer informiert werden?

Plötzlich schauen wir nicht mehr auf die asphaltierte Autobahn, die vom Anfang bis zum Ende führt. Plötzlich sehen wir eine Reihe von Zweigen, die angesprochen werden müssen.

Und du kannst weitermachen. Was passiert, wenn der Benutzer die falsche PIN eingegeben hat? Was ist, wenn am Geldautomaten nicht genügend Banknoten vorhanden sind? Was ist, wenn ein Benutzer vergessen hat, eine Karte oder Geld zu nehmen? Was ist, wenn der Bildschirm für den Benutzer nicht klar oder übersichtlich genug ist? Was, wenn? Was, wenn? Was, wenn? Testen kann leicht als "Warten" bezeichnet werden.

Und über All das muss der Tester nachdenken?

Natürlich muss das gesamte Team darüber nachdenken, das an der Vorbereitung des Antrags beteiligt ist. Von Analysten, Designern, Programmierern und Testern. Aber es ist selbstverständlich, dass andere Rollen im Projekt sich mehr darauf konzentrieren, den Pfad von Anfang bis zum Ende zu zertrampeln, da die Anwendung in erster Linie einen Zweck folgt. Ohne ihn wäre sie nicht notwendig. Daher ist es auch selbstverständlich, dass der Tester derjenige ist, der eine Art kritisches Denken in gesamten Prozess einbringt, der die Aufmerksamkeit anderer auf wichtige Dinge lenkt, die aber die Aufmerksamkeit nicht so direkt auf sich zieht.

Wie finden solche Testverfahren von Informationssystemen statt?

Wie bei anderen Aktivitäten gibt es Best Practices für Tests und Erfahrungen. Es ist definitiv notwendig, die Ziele des Testens festzulegen, d.h. klar zu sein, was wir durch Testen beantworten möchten. Weiter ist es wichtig, einen Testplan zu erstellen, nach dem der Test selbst durchgeführt und schließlich ausgewertet wird. Dies ist keine "Freizeitaktivität", bei der sich ein oder zwei Enthusiasten hinsetzen und auf die App klicken, um zu sehen, ob sie funktioniert. Sinnvolles und effektives Testen ist ein komplexer Prozess und erfordert, dass Tester so schnell wie möglich in das Projekt einbezogen werden.

Was, wenn? Was, wenn? Was, wenn? Testen kann leicht als "Was-Wenn" bezeichnet werden.

Warum ist es wichtig? Ist Testen nicht die allerletzte Aktivität während der Systementwicklung?

Es ist wichtig, da der Tester den Endbenutzer im Anwendungsentwicklungsprozess ersetzt. Wenn man ein Haus bauen, zeigt man das Projekt dem zukünftigen Benutzer des Hauses kontinuierlich und konsultieren ihn. Man versucht ihm so gut und so schnell wie möglich zu präsentieren, wie sein Haus am Ende aussehen wird, damit er darauf reagieren kann. Wenn man ihn in das Haus lässt, erst wenn es fertig ist, laufen Sie in Gefahr, dass es ihm nicht gefällt. Wobei das Haus zu diesem Zeitpunkt umzubauen teuer sein mag.

Beim Testen ist es ähnlich. Der Tester muss den Zweck der zu erstellenden Anwendung so schnell wie möglich verstehen, damit er rechtzeitig auf mögliche Fallstricke hinweisen und sich auf den Test vorbereiten kann. Er muss einzelne Testfälle aufschreiben, welche Eingaben in sie eingehen und welche Ergebnisse von ihnen erwartet werden. Tester muss die Grenzsituationen verstehen, die beim Testen getestet werden sollen.

Ich teste gerne und es erfüllt mich. Wenn es nicht so wäre, würde ich es wahrscheinlich jahrelang nicht tun. Testen ist für mich keine Routine, im Gegenteil, es hängt mit allem zusammen.

Die Meisten betrachten das Testen heute als routinemäßige und sich wiederholende manuelle Arbeit. Ist das so?

Ich teste gerne und es erfüllt mich. Wenn es nicht so wäre, würde ich es wahrscheinlich jahrelang nicht tun. Testen ist für mich keine Routine, im Gegenteil, es hängt mit allem zusammen.

Am Anfang geht es um Neugier und Kreativität, wenn ich zu verstehen versuche, was das Informationssystem tun soll und worauf es sich konzentrieren soll. Dann kommt die Struktur rein, wenn der Tester die einzelnen Testszenarien und ihre erwarteten Ergebnisse formell vorbereitet.

Später ist es ein Ameisenjob, bei dem man immer wieder einzelne Testfälle durchgeht und die Ergebnisse aufzeichnet. Und schließlich ist es die Freude und das Gefühl einer gut gemachten Arbeit, wenn eine Person wahrnimmt, wie die Anwendung unter ihren Händen "gereift" ist.

Es muss auch gesagt werden, dass das Testen alles andere als manuell ist. Es ist durchaus üblich, einige Tests bei großen Projekten zu automatisieren.

Über automatisierte Tests sprechen aber erst nächstes Mal ...

 

Vielen Dank für das Gespräch

Das Interview wurde von Boris Rybár, Teammanager für Softwareentwicklung vorbereitet