fbpx

Function Testing – Ein Überblick

Die Aufgabe von Software ist – ganz allgemein gesprochen – für ihre User einen Zweck zu erfüllen, für die Stakeholder einen spezifischen Nutzen zu erzeugen. Dazu verfügen Programme über einzelne Tasks, sogenannte Funktionen, um den entsprechenden Nutzen auch tatsächlich zu erzeugen. Um diese Definition besser zu veranschaulichen, werden im Folgenden einige konkrete Funktionen von Amazon, dem weltweiten Marktführer im Bereich des Online-Shoppings, ausführlicher erklärt.

1. Die Suchfunktion 

Die Suchfunktion ist eines der Herzstücke der Plattform. Zigtausende Waren können über Amazon bestellt werden, wobei Amazon sowohl als direkter Anbieter bzw. Verkäufer auftritt als auch Plattform für unzählige sogenannte Drittanbieter ist. Die Eingabe bestimmter Suchbegriffe fördert eine mehr oder weniger große Übersicht über die Angebote in diesem Bereich zutage.

Im konkreten Beispiel suchen wir nach dem Buch „Basiswissen Softwaretest“, geben diesen Titel im Suchfeld ein (wobei durch Autoergänzung verschiedene Hinweise zu weiteren Produkten gegeben werden) und klicken entweder auf die Lupe oder drücken die Enter-Taste.

function-testig-amazon-suchfunktion

Umgehend wird uns das Suchergebnis angezeigt:

amazon_2a_suchfunktion

Bei vielen Produkten werden nun zusätzlich verschiedenen Anbieter angezeigt. In diesem Fall sieht man nur das Angebot von Amazon selbst, das ja ursprünglich als Online-Buchhändler gestartet ist. 

2. Kundenrezensionen

Eine wichtige Ergänzung zu den angezeigten Angeboten sind die Kundenrezensionen. Kunden bewerten sowohl das Produkt als auch den Service des Anbieters: einerseits anhand einer 5-teiligen Skala (Sterne), andererseits mit ausführlichen verbalen Begründungen. Die Bewertungen bieten den potenziellen Käufern eine Orientierung, ob es sich lohnt, dieses Produkt bei jenem Anbieter zu bestellen oder auch nicht. Diese Funktion ist wichtig, weil man beim Online-Handel im Gegensatz zum traditionellen Handel das Produkt ja nicht real sehen kann, nicht berühren kann und auch dem Lieferanten nicht in Person begegnen kann.

amazon_3a_Kundenrezensionen

Klickt man auf die Gesamtbewertungen, so wird man auf die Rezensionsseite weitergeleitet, auf der man eine Vielzahl an Kommentaren lesen und sich dadurch ein Bild machen kann, ob sich die Anschaffung lohnt und ob der Lieferant zuverlässig arbeitet.

amazon_3b_Kundenrezensionen

3. Der Einkaufswagen

Im Einkaufswagen werden alle Produkte gesammelt, die im Verlauf des Surfens auf der Amazon-Website in den Warenkorb gelegt wurden.

amazon_4_in_den_Einkaufswagen

Man entnimmt die Ware gewissermaßen dem virtuellen Regal und legt sie in den ebenso virtuellen Einkaufswagen, mit dem man abschließend zur Kasse geht. Man kann den Artikel allerdings auch wieder aus dem Einkaufswagen entfernen, die Menge verändern, den Artikel vom Einkaufswagen auf eine persönliche Vormerkliste verschieben oder sich ähnliche Produkte anzeigen lassen.

amazon_5_Einkaufswagen

Den Einkaufswagen kann man jederzeit über den Eintrag in der Kopfleiste öffnen, egal wo sich der Einkäufer  auf der Website befindet.

amazon_5a_Einkaufswagen

4. Das Amazon Konto

Als Kunde von Amazon verfügt jeder User über ein eigenes Konto, wobei hier zwischen Konten von Privatkunden und Geschäftskunden unterschieden wird. Im Konto sind unzählige Informationen hinterlegt, persönliche Daten wie Anschrift und/oder bevorzugte Zustelladresse, bevorzugte Zahlungsmethoden, bisher erfolgte Bestellungen usw. 

Bei Geschäftskunden werden zusätzliche Informationen wie z.B. die UID, die Umsatzsteuer-Identifikationsnummer erfasst. Bei Lieferungen innerhalb der EU, die über Staatsgrenzen hinweg erfolgen, entfällt dadurch die USt. auf Basis des sog. Reverse Charge.

amazon_6_Konto

Aus Sicht von Amazon ist das Konto ähnlich einer Kundenkartei, in der alle Informationen über den User gesammelt abrufbar sind.

5. Das Verzeichnis aller bisherigen Bestellungen

Menschen sind Gewohnheitstiere. Wir neigen dazu, lieb gewonnene Produkte immer wieder zu kaufen und häufig auch bei demselben Lieferanten, sofern wir mit dessen Dienstleistung zufrieden waren. Als Geschäftskunde ist es gelegentlich auch angebracht, z.B. Verbrauchswaren erneut zu bestellen. Es wäre ein unnötiger Umweg, erneut die Suchfunktion zu nutzen, viel rascher geht das über die Funktion „Meine Bestellungen“, welche über das Amazon Konto aufgerufen werden kann.

amazon_6_Konto

Hier findet man sämtliche Bestellungen, die man seit der Erstellung des Kontos vorgenommen hat, wieder. Entweder chronologisch über das Dropdown Menü mit den Jahreszahlen, oder auch über das Suchfeld rechts neben „Meine Bestellungen“.

amazon_7_Bestellungen

Man kann sich Bestelldetails anzeigen lassen, die Rechnung abrufen, oder eben auch denselben Artikel durch Anklicken des Feldes „Nochmals kaufen“ erneut in den Einkaufswagen legen. Alles ist individuell anpassbar und wieder bestellbar.

Die oben genannten Funktionen sind nur ein kleiner Bruchteil der gesamten Plattform von Amazon. Die Beispiele sollten aber genügen, um ein Verständnis dafür zu erzeugen, was unter „Funktionen einer Software“ zu verstehen ist.

Was ist eine Tour?

Eine Tour ist eine Variante, die genutzt werden kann, um eine Anwendung besser kennenzulernen. Durch sie werden die Funktionalitäten eines Programms bewusst, man tourt durch die Anwendung, dies erleichtert den anschließenden Test des Programms enorm. Gehen wir davon aus, dass wir uns jede einzelne Kleinigkeit der Anwendung anschauen und aufzeichnen, profitieren wir davon. Wir erstellen unseren eigenen Guide. Ein Pluspunkt sind auch Touren mit Kollegen in einem Programm. Gemeinsam erarbeitet man mehr und schaut zudem aus einem anderen Blickwinkel auf die Situation.

Was ist der eigentliche Zweck einer Tour?

Der Zweck einer Tour ist es, das Produkt zu verstehen, was es beinhaltet, was die Anwendung eigentlich macht und was wir als Nutzer von diesem Produkt möchten.
Hierbei geht es nicht darum, Fehler zu finden, sondern lediglich das Programm kennenzulernen, sowie Funktionen zu identifizieren.

Was ist eine Function Tour?

In einer Function Tour werden die Funktionen eines Programms genauer unter die Lupe genommen. Welche Funktionen gibt es? Was machen diese Funktionen? Eine Funktion ist etwas, das das Programm tun kann (z. B. Suchfunktion, Warenkorb, Benachrichtigungen). Diese Fragen können mithilfe der Function Tour beantwortet werden. Sehr hilfreich für eine Function Tour ist das Erstellen einer Function Map, sie hilft uns dabei besser zu verstehen, welche Funktionen die Anwendung beinhaltet. Weshalb ist so eine Tour wichtig? Durch die verschiedenen Perspektiven erhalten wir einen besseren Überblick und ein besseres Verständnis für die Anwendung. Je mehr wir über die Anwendung oder die Software wissen,  desto besser bekommen wir ein Gefühl dafür, wer die größte Nutzergruppe und welche die meistgenutzte Funktion ist. Dies hilft uns beim Testen, den Fokus gezielt zu setzen.

Sehr wichtig ist es, die Funktionen erst einmal zu identifizieren. Das können wir tun, indem wir z. B. die Gebrauchsanweisung und die Spezifikation des Programms lesen, das Programm eigenständig erforschen und uns durch die Anwendung klicken. Wir sprechen möglichst mit den Entwicklern und holen uns somit alle Informationen, die wir für das Verständnis des Programms benötigen.

 

Was ist eine Function Map und wozu kann sie genutzt werden?

Eine Funktion Map hilft uns, die Funktionen einer Software besser darzustellen. 

Hier ein Beispiel dafür, wie eine Function Map aussehen kann: 

function-testing-function-map

In dieser Funktion Map sehen wir in der Mitte die Anwendung “Twitter” (engl. für Gezwitscher) Twitter ist ein soziales Netzwerk, über das öffentlich kurze Textnachrichten (sowie, Links, Bilder und Videos) („gepostet“) werden können. Aufgrund seines Telegramm-Stils, hoher Aktualität und Schnelligkeit und einfachen Suchfunktionen hat es sich als Nachrichten- und Mitteilungsplattform etabliert.
Twitter bietet einem User zahlreiche Funktionen, die man anhand dieser Function map erkennen kann. Über die Tweet-Funktion sind mehrere Funktionen gegeben wie z.B. das Erstellen einer Umfrage, einen Tweet “retweeten” (d.h. einen Beitrag eines anderen Users teilen), Beiträge liken, Bilder einem Tweet hinzufügen, ein “GIF” hinzufügen (GIF steht für „Graphics Interchange Format“. Ein GIF ist ein animiertes Bild. Eine sehr nützliche Funktion Twitters ist der “scheduled tweet”. Diese Funktion eignet sich hervorragend für Tweets, die an Wochenenden, abends oder zu einer Zeit gepostet werden sollen, zu der ein User selbst nicht zum Twittern kommt.

Worum geht es bei Funktionstests?

Wir haben in unserem Artikel erzählt, dass unsere Software einen Nutzen haben muss, einerseits für den Stakeholder, andererseits für den Anwender. Beispiel: Amazon hat eine klare Aussage als Verbraucherplattform, hier werden Dinge benötigt, die in der Suchfunktion gefunden werden können. Nun nicht nur in der Suchfunktion, aber diese ist die am häufigsten benötigte.

Ein Funktionstest testet sehr spezifisch mit mehreren Testszenarien zum Beispiel, ob Umlaute, ä, ö und ü erkannt werden. Ob die Suche vollständig ist, wenn mit Umlauten gearbeitet wird, wie dabei die Auswahl anhand Autovervollständigung angezeigt wird. Wie alleine die automatisch erzeugte Liste ausschaut, wie sie gegliedert ist. Hier wird geschaut, WIE dieses abgebildet ist und auch WAS herauskommt, beim Betätigen der Enter-Taste.

Beim Programmieren dieser Software war mit Sicherheit eine der Akzeptanzkriterien, dass der Anwender mit solchen Begrifflichkeiten auf keinerlei Probleme treffen sollte.

function-test-amazon

Ein interessanter Side Fact zu der Suchfunktion von Amazon ist, dass hier wohl die Meinungen zu dieser Funktion auseinander gehen. Einige Foren berichten über die schlechte Auswahl der Filter und dass Amazon nicht das absolute Interesse hat, auch wirklich günstigste Produkte auf der ersten Seite zu platzieren..

Warum sind Funktionstests wichtig?

Große Softwareprojekte besitzen oft umfangreiche und aufwändige Funktionen, die viele Anforderungen erfüllen müssen. Je kritischer eine Funktion für die gesamte Software ist, desto wichtiger ist es, diese mit spezifischen Funktionstests ausreichend zu prüfen.

Damit wir dem Thema Suchleiste treu bleiben:

80 % aller Nutzer geben an, dass diese Funktion auf einer Webseite nicht fehlen darf, dabei wird auch angegeben, was eine Suchleiste ausmacht.

Wenn nun der Nutzer der Plattform Amazon eine gute Autosuggest- oder Vorschlagsfunktion erwartet, ist dahinter ein größerer Programmieraufwand versteckt. Diese Programmierung ist zu untersuchen. Werden hier die richtigen Begriffe vorgeschlagen, wie ist es gegliedert, gibt es Kategorien, ist der Begriff direkt mit dem Produkt verknüpft? Finde ich somit mein Produkt?

Um dem Stakeholder einen Wert zu generieren und dem Nutzer eine schmackhafte Anwendung dar zu reichen, wird hier viel Anstrengung reingesteckt, damit es nicht hakt und der Nutzer sich einem anderen Anbieter zuwendet.

Wie verwende ich Funktionstests?

Ein Beispiel: Nehmen wir an, dass eine Website gegeben ist und wir ermittelten in einer Tour verschiedene Funktionen. Wir schrieben jeden Button, den wir fanden, in eine Map.

Der Tester wählt eine Funktion zum Testen aus und je nach Funktion werden Testfälle durchgespielt. Es wird z.B. eine Liste an möglichen Vorgaben für eine Suchleiste abgearbeitet.

Die einzelnen Testfälle werden dokumentiert, indem sie nachvollziehbar für den Entwickler mit Screenshots und einzelnen Steps belegt werden. So kann ein Fehler immer nachgebaut werden, um ihn korrigieren zu können.

Wann sollten wir Funktionstests einsetzen?

Es ist natürlich immer einfacher, wenn wir als Tester selbst mit dem Programm wachsen können, daher sollten Funktionstests möglichst früh in der Entwicklungsphase beginnen, es erleichtert den Einstieg in das Programm. Wir kennen dies aus den Diskussionen des Daily, des Sprint Planning und des Sprint Review, kennen die Probleme welche schon gelöst wurden. 

Sobald die Funktion implementiert wurde, ist der perfekte Moment damit anzufangen zu testen.

Was sind die Nachteile von Funktionstests?

Funktionstests sind immer nur eine abgeschlossene Betrachtungsweise der einzelnen Funktion. Es ist ein isolierter Test, bei dem die Gefahr besteht, dass im Gesamten etwas übersehen wird.

Greifen wir das Beispiel der Verlinkung aus dem Autosuggest auf: Klicken wir auf einen vorgeschlagenen Artikel, werden wir weitergeleitet. Ab hier sind wir nicht mehr in der Suchfunktion, wir begeben uns in ein anderes Fenster mit neuen Funktionen. Eine Schnittstelle also … Als Tester könnten wir im abgeschlossenen Bereich bleiben, aber eventuell übersehen, dass die Verlinkung defekt ist.

Also sollten wir nicht vergessen, unseren Tellerrand auch verlassen zu können.

Was sollten wir bei Funktionstests beachten?

Wir haben beim Funktionstest zunächst die Aufgabenstellung herauszufinden, was eine einzelne Funktion macht. Es ist ungemein hilfreich, wenn der Tester sich dazu eine Struktur zurechtlegt, anhand der er/sie testen kann. Anhand dessen kann die Erarbeitung leichter erfolgen und wenn Funktionen und Anforderungen bekannt sind, ist es leichter, sich in Testszenarios frei bewegen zu können.

Die Function Map ist dazu ein wichtiges Tool und wirkt unterstützend und richtungsweisend.

Cecilia Strüber

Cecilia Strüber

Softwaretesterin in Ausbildung

Cecilia Strüber hat eine künstlerische Ausbildung als Graveurin abgeschlossen, nie in diesem Beruf angekommen ging es in die technische Richtung. Mehrere Jahre und Instanzen später arbeitet sie nun im Reklamationsmanagement als Kundenverantwortliche, eine Qualitätsstelle durch und durch

Georg Brandenburg

Georg Brandenburg

Softwaretester in Ausbildung

Georg Brandenburg hat Volkswirtschaftslehre studiert und zusätzlich einen Master für systemischisches Coaching. Seit 2016 ist er Betreiber eines Co-Working-Spaces in Klagenfurt am Wörthersee (Businesscampus Ehrenhausen). Er ist leidenschaftlicher Community Manager und außerdem begeisterter Podcaster (MutmacherInnen).