Wer kennt sie nicht, die nervenaufreibenden Momente, wenn die App oder Software nicht so funktioniert, wie wir es eigentlich erwarten würden. Bereits zum vierten Mal wurde der gleiche Knopf gedrückt, aber nichts bewegt sich.
Das kann doch nicht sein?!
Das müsste doch eigentlich funktionieren?!
Vor dem Update hat es doch einwandfrei funktioniert?!
Als Anwender solcher Software ist es mühsam, wenn’s sich nicht wie erwartet verhält. Aber als Firma, die ihre Kunden mit der fehlerhaften Software beliefert hat, kann dies unter Umständen weitreichende Folgen haben. Da stellen sich zwangsläufig die Fragen, hätte man den Fehler vor der Auslieferung in die Produktion finden können und wer hätte eigentlich testen sollen, der Anbieter oder der Kunde?
Eine pauschale Antwort gibt’s wie meistens nicht. Denn Software ist nicht gleich Software und Kunde ist nicht gleich Kunde. Jede Software hat mal mit einer Idee gestartet, aus Ideen werden Spezifikationen und Anforderungen, daraus entstehen User Stories die entwickelt werden und die umgesetzten Features werden bestenfalls getestet. Und für jeden dieser Schritte wird entschieden, können und machen wir das selbst oder übergeben wir an die Profis. Im Bereich der Spezifikationen sind das die Requirements-Engineers, in der Umsetzung die Software-Engineers und bei der Qualität die Test-Engineers. Neben dem vorhandenen internen Wissen sind auch die Finanzen ein wichtiger Faktor bei der Entscheidung «selber machen oder einkaufen?».
Aus meiner persönlichen Erfahrung kann ich berichten, dass häufig klar ist, dass die Entwicklung extern vergeben und auch bei der Definition der User Stories die Hilfe von Profis beigezogen wird. Und leider meint man häufig, dass zu wenig Geld vorhanden ist, um auch beim Testen auf die professionelle Unterstützung zu setzen. Klar, es ist wichtig und richtig, dass Abnahmetests von Kunden übernommen werden. Der Kunde weiss selbst am besten, was er gefordert hat und wie die Applikation dann im Alltag genutzt werden soll. Aber mein persönliches Ziel als Testerin besteht immer darin, dass der Kunde in den Abnahmetests keine Fehler mehr findet. Ja ich weiss, «keine» ist ein absolutes Wort und fehlerfrei ist niemand und somit auch keine Software, aber man soll sich ja hohe Ziele setzen und mir ist wichtig, dass die von mir getestete Software-Qualität so hoch wie möglich ist.
Und um eine hohe Qualität zu erreichen bin ich gerne bereits beim Requirements-Engineering involviert, damit schon bei der Definition der Anforderungen wichtige Testing-relevante Fragen geklärt werden können. Je früher mit dem Testen begonnen wird, also auch ein entsprechendes Testkonzept aufgesetzt wird, desto tiefer können die Fehlerbehebungskosten gehalten werden. Denn Fehlerzustände, die erst in der Produktion erkannt werden, sind nicht nur in der Behebung aufwändiger und teurer, sondern können auch noch erhebliche Reputationsfolgen haben. Diese Mehrkosten werden häufig zu Beginn nicht erkannt und führen nicht selten dazu, dass das Projekt verzögert oder gar abgebrochen werden müssen, da die angestrebten Ziele und Meilensteine nicht erreicht werden konnten.
Braucht’s denn jetzt einen Testing-Profi im Boot? Meiner Meinung nach ganz klar, Ja! Denn es gibt noch viel zu viele qualitativ schlechte, mit Fehlern gespickte Applikationen da draussen. Aber das ist vielleicht auch meinem Testing- und qualitätsliebenden Blick geschuldet. Meine Familie kann bald ein Buch füllen mit all den Fehlern, die ich ihnen immer wieder vor die Augen halte. Mein liebstes Beispiel da wäre; Die Solaranlagen-App meines Vaters, die beim Login so fehlerhaft war, dass das Login extrem unzuverlässig war und er sich regelmässig gar nicht einloggen konnte. Die Nerven lagen schon fast blank und auch nach mehrmaligem kontaktieren des Anbieters wurde es nicht besser. Sie könnten sich bei ihm einloggen und mit seiner Anlage sei alles korrekt. Ich hätte von Beginn an auf mein Bauchgefühl hören sollen, denn der Benutzername wurde mit einem «ä» erstellt. Ich habe somit selber mit dem Anbieter Kontakt aufgenommen (mein Vater meinte, vielleicht läge es an seinem Alter, dass er nicht ernst genommen werde 😉 ) und gebeten, den Benutzernamen anzupassen. Und siehe da, das Login funktioniert nun zuverlässig jedes Mal. Mein Fazit, hätte da ein systematisches Testen eines Testing-Profis stattgefunden, wäre dieser Fehler gar nicht erst beim Endkunden gelandet. Denn wie bei allem, ein Spezialist kann auf langjährige Erfahrungen zurückgreifen und Fehler finden, die dem Kunden erst viel später aufgefallen wären.
Dem Testing-Profi ist auch bewusst, dass Negativtests und auch Grenzwerttests wichtig sind, um eine fundierte Aussage darüber machen zu können, ob die Software die gestellten Anforderungen erfüllt. Weiter gibt es aber in allen Applikationen Anforderungen, die so nicht explizit kommuniziert wurden, vom Kunden aber als selbstverständlich angesehen werden und bei nicht-erfüllen die Qualität als schlechter bewertet wird. Beispielsweise, dass Seiten mit viel Text scrollbar sind und nicht Textteile abgeschnitten werden. Auch wird ein Profi ein Augenmerk auf die nicht funktionalen Anforderungen wie Sicherheit, Wartbarkeit, Benutzerfreundlichkeit usw. setzen und den aufzuwendenden Aufwand in diesen Bereichen in Rücksprache mit dem Kunden definieren. Ein Testing-Profi weiss auch, dass automatisierte Regressionstests den manuellen Testaufwand erheblich reduzieren und ab einer gewissen Reife der Software eigentlich unabdingbar wären. Aber auch diese automatisierten Tests bedürfen einer ständigen Wartung und Prüfung, da sich vielleicht in der Zwischenzeit etwas an den Funktionalitäten geändert hat und somit der Testfall angepasst werden muss. Dem Profi ist trotz allem bewusst, dass für eine gute Software Qualität auch der Kunde regelmässig in den Testing-Prozess miteinbezogen werden muss. Sei es, dass er darüber aufgeklärt wird, welche Abweichungen der ursprünglichen Anforderungen gefunden wurden und wie eine Anpassung dieser priorisiert werden soll. Es kann auch mal vorkommen, dass gemeinsam entschieden wird, dass der vermeintliche Fehler doch keiner ist und entgegen der ursprünglichen Spezifikation jetzt als die bessere Variante empfunden wird. Kunden sollten auch stets über den Testfortschritt auf dem Laufenden gehalten werden. Wie hoch ist die Anforderungstestabdeckung, die Fehlerquote, wie viele Fehler in welcher Kritikalität wurden gefunden und wie hoch sind die aktuell noch offenen Fehlerzustände?
Ihr möchtet mit eurem Software-Projekt Erfolg haben und in Sachen Testing miteinbezogen werden, aber es soll nicht nur euer Job sein? Zögert nicht und sprecht uns an, damit wir eure Software-Qualität von einem löchrigen Holzboot zum stabilen Frachter aufwerten können.
Schreiben Sie einen Kommentar