fbpx

Der Einstieg als Softwaretester in ein Projekt

Startet man als Software Tester in einem Projekt, dann gibt es 2 mögliche Situationen. Entweder das Projekt startet gerade erst oder man steigt in ein Projekt ein. Es kann relativ am Anfang sein, in der Mitte oder auch kurz vor Ende eines Projekts. 

Die erste Situation:

Du kommst als Tester in ein Projekt, welches gerade startet und noch nichts fertig implementiert ist, genannt auch “auf der grünen Wiese”. Dies ist die ideale Situation für einen Tester. Hier hat man die Möglichkeit, die Software inkrementell kennenzulernen, was bedeutet, aufeinander aufbauend. Das heißt, es wird eine Funktion fertiggestellt, dann wird eine weitere Funktion darauf aufgebaut und so hat der Tester die Möglichkeit, eine Funktion nach der anderen kennenzulernen.

In der Regel bestimmt der Tester die Testabdeckung in dem Projekt und was getestet wird oder mehrere Tester, Personen, die daran beteiligt sind.  Das können zum Beispiel einzelne Funktionen sein, die aufeinander aufbauen. Er hat einen Überblick über die Testabdeckung, da die Funktionalitäten auch inkrementell mitwachsen, aber auch die Tests, die ausgeführt werden oder automatisiert werden, wachsen und so einen Überblick über die Testabdeckung bekommt. Während die Software inkrementell wächst, lernt der Tester die Geschäftsprozesse und die Geschäftsprozesse dahinter kennen, da der Tester von Tag eins, mit dabei ist. Er weiß, was getestet wurde, da er die Tests auch dokumentiert und auch das Wissen über die Software, die er ansammelt, wächst aufeinander aufbauend mit. 

Hier ist ein Beispiel:

Hier kann der Tester alles andere auf der Seite ignorieren und testet nur die Funktionalität der Fahrzeugauswahl nach KBA-Nummer. Er hat hier die Möglichkeit, sich die HSN und TSN Liste aus dem Internet zu besorgen und anhand der Nummern zu testen, ob die Fahrzeuge auch in der Funktion eingepflegt sind. 

 

Hier ein Beispiel, wie die Liste aussehen kann.

Die zweite Situation:

Der Softwaretester kommt in ein fortgeschrittenes Softwareentwicklungsprojekt. In dem fortgeschrittenen Projekt muss der Tester erstmal alle implementierten Funktionen der Software kennenlernen, da hier schon Funktionalität vorhanden ist. Im nächsten Schritt muss er die Geschäftsprozesse kennenlernen. Ein Beispiel wäre, wie kann ich als Privatkunde bei Amazon bestellen oder als Businesskunde etwas verkaufen auf Amazon. Der Tester hat so die Möglichkeit zu sehen, welche Geschäftsprozesse angeboten werden und welche Funktionalität schon fertig implementiert sind. 

Als Nächstes muss er sich Wissen erarbeiten, was schon getestet wurde, da er in einem Projekt kommt, das schon am Laufen ist. Es wird da Testfälle geben, die manuell ausgeführt werden oder automatisiert. Er muss sich einen Überblick verschaffen, was bei der Testabdeckung bei den bisherigen Tests schon abgedeckt wurde und was noch abgedeckt werden muss. Zusätzlich kommt immer neue Funktionalität hinzu. Das heißt für den Tester, er muss das Bestehende lernen und gleichzeitig die neuen Entwicklungen dazulernen. Das ist für ihn eine größere Herausforderung, als wenn das ganze inkrementell wächst. 

Ein Beispiel wäre jetzt, er sitzt vor einer Software, wo große Teile schon fertig implementiert sind und er dann eine Function-Tour macht, um einzelne Funktionalitäten kennenzulernen, die in einer Function-Map festhält, um so strukturiert einen Überblick zu haben (siehe Abschnitt Function Tour).

Ein anderer Schritt, um die Geschäftsprozesse kennenzulernen, ist, sich mit folgenden Rollen auszutauschen. Einmal ist es der Product-Owner, der die Schnittstelle zwischen dem Fachbereich, meistens auch auf der Kundenseite und dem Entwicklungsteam ist. Er legt fest, was entwickelt wird und priorisiert dies, da er schon einen Einblick in die Geschäftsprozesse hat.

Dann könnte er noch den Business-Analysten fragen, der die Prozesse abbildet im Austausch mit dem Product-Owner, der auch gute Kenntnisse hat.

Er kann auch den Fachbereich fragen. Ein Fachbereich könnte bei einer Steuersoftware die Steuerexperten sein. Er kann sich Wissen über Steuern holen, die er nutzen würde, um die Software zu testen.

Ebenfalls kann er die Support-Mitarbeiter fragen. Diese erhalten direktes Feedback von Kunden und haben daher einen guten Eindruck, wer die wichtigsten Nutzergruppen sind und wo Problematiken sind, mit denen die Kunden zu kämpfen haben.

Mithilfe von Tours die Software kennenlernen

 

Im Folgenden werden die einzelnen Tours zum Testen näher beleuchtet und erläutert. Vorab wird jedoch zunächst auf den Begriff „Tours“ eingegangen und was er bedeutet.

Tours“ werden von Software-Testern genutzt, um das jeweilige Programm zu erforschen. Der Fokus einer Tour liegt nicht darauf, einen Fehler zu suchen, sondern z. B. – abhängig von der jeweiligen Tour – Funktionalitäten eines Programms zu erkunden. Zu jeder Tour kann eine Mindmap erstellt werden, welche dem Software-Tester dabei hilft, einen Überblick über die Software selbst zu erhalten und im späteren Verlauf seinen Fokus im Testen besser setzen zu können. Außerdem hilft die Mindmap dabei, die Testabdeckung zu bestimmen, d.h. wenn beispielsweise 10 Funktionen identifiziert und 8 davon getestet wurden, stellt dies eine Testabdeckung von 80 % dar. Wichtig ist jedoch, dass die Testabdeckung keine Aussage darüber trifft, wie getestet worden ist. Stattdessen muss der Tester die Art, wie getestet wurde, mit kommunizieren.

 

  1. Function Tour

Zunächst muss erstmal definiert werden, was unter einer „Function“ („Funktion“) zu verstehen ist. Bei diesem Begriff handelt es sich um die Funktionen eines Programmes wie z. B. bei Amazon die Suchfunktion, die Registrierung, das Hinzufügen eines Produktes im Warenkorb u.v.m. Der Begriff „Feature“ wird oft als Synonym für die Funktion verwendet. Ihre Identifizierung erfolgt, indem der Software-Tester 

  • die Gebrauchsanweisung und Spezifikationen des Programmes liest und dadurch ihre unterschiedlichen Funktionen ausmachen kann,
  • mit den oben genannten Rollen (Product Owner, Entwickler, Business-Analyst etc.) Rücksprache hält,
  • oder auch selbst anhand einer Function-Tour eine Mindmap erstellt und die Funktionen des Programmes erforscht.

Was genau ist unter einer Function-Tour zu verstehen? Mithilfe dieser Tour erforscht der Tester die möglichen Funktionen einer Anwendung und erstellt hierfür eine Mindmap, um durch die visualisierte Form der Darstellung Transparenz und einen Überblick zu verschaffen. Wie bereits erwähnt, kann der Software-Tester mit dieser Tour auch die Testabdeckung bestimmen sowie die von den Nutzern am meisten verwendeten Funktionalitäten zu bestimmen, um im späteren Verlauf des Testing-Prozesses seinen Fokus daraufzusetzen. 

Hier eine Function-Tour anhand des Beispiels Twitter:

Wie erfolgt das Function-Testing? Hierbei wird jede Funktion isoliert getestet. Am Beispiel Amazon würde man die Login-Funktion, die Suchfunktion, die Registrierung etc. isoliert testen. Ausschlaggebend ist an dieser Stelle, dass die Function-Tour aussagt, was getestet wird, jedoch nicht wie getestet wird. Zur Veranschaulichung dient folgendes Fallbeispiel:

Tester A hat sich für die zu untersuchende Anwendung eine Mindmap zu ihren Funktionalitäten erstellt. Er möchte seinen Fokus auf die Suchfunktion setzen, da diese von den Nutzern der Anwendung am häufigsten verwendet wird und daher von enormer Wichtigkeit ist. Mit der Function-Tour testet er die Suchfunktion isoliert von allen weiteren Funktionen, jedoch sieht diese Tour nicht vor, wie er beim Testen der Suchfunktion vorgeht. Die Art und Weise des Testens ist abhängig von der Erfahrung des jeweiligen Testers und den von ihm eingesetzten Testmitteln, z. B. Heuristiken. 

Ein großer Vorteil des Function-Testings ist, dass die Funktionen isoliert getestet werden und damit potenzielle Fehlerquellen genau ausgemacht und behoben werden können. Werden mehrere Funktionalitäten kombiniert getestet, ist nicht mehr klar, welche Funktionalität den Fehler verursacht.

 

  1. Variable-Tour

Bei der „Variable“-Tour („Variablen“-Tour) identifiziert der Software-Tester die Variablen einer Anwendung. Die Variable einer Anwendung ist etwas, womit wir das Programm verändern können und die Möglichkeit haben, Daten einzugeben. Beispiele hierfür sind: 

  • Textfelder, 
  • Checkboxen, 
  • Dropdown-Menü, 
  • Slider etc. 

Hier eine Variable-Tour anhand des Beispiels der “WISO-Steuer”-Software:

 

 

  1. Transaction Tours

 

Bei einer Transaction Tour wird nun, nicht wie bei einer Function bzw. Variable Tour eine einzelne Funktion oder eine Variable isoliert getestet, sondern man testet mehrere Funktionen in einem Verbund, um ein spezielles Ziel zu erreichen.

Dabei ist es wieder sehr hilfreich, sich für jede durchgeführte Transaction Tour eine Mindmap zu erstellen. Dadurch sieht man sehr gut, welche Funktionen für den Nutzer zusammenhängen, um eben eine gewisse „Transaction” durchführen zu können. Gewisse Softwarefehler lassen sich erst im Testen dieser zusammenhängenden Funktionen finden.

Dafür möchte ich folgendes Beispiel anführen. Bei einem Webshop ist bei Produkten im Warenkorb das Entfernen dieser oder eines Produktes nicht möglich. Diesen Fehler findet man nur, wenn man zuvor Produkte zum Warenkorb hinzugefügt hat. Dazu muss man einige Schritte bzw. Funktionen in diesem Webshop ausführen. Isoliert betrachtet, wäre dieser Fehler im Warenkorb eventuell nicht aufgefallen.

 

Als Beispiel möchte ich hierfür eine Transaction Tour auf der Seite von Amazon zeigen. Hierbei geht es darum, dass man sich in die Sicht eines Kunden versetzt, der auf der Seite von Amazon ein spezielles Produkt suchen und dann auch kaufen will.

 

    1. Eingabe des gewünschten Artikels im Suchfeld.
    2. Bei der Ergebnisseite einen der angezeigten Artikel auswählen.
    3. Eventuell muss man noch Größe, Farbe, Modell, … des Produktes auswählen
    4. Jetzt kann die Entscheidung getroffen werden, ob man den Artikel „In den Einkaufswagen” gibt oder auf den „Jetzt Kaufen” Button klickt (dann kommt man direkt zu Punkt 7).

Entscheidet man sich für „In den Einkaufswagen” gibt es folgende Optionen:

    1. Es werden weitere (ähnliche) Produkte angezeigt und klickt auf einen dieser Artikel (wieder zu Punkt 3)
    2. Eingabe eines weiteren Artikels im Suchfeld (wieder zu Punkt 2)
    3. „Zum Einkaufswagen”
    4. „Zur Kasse gehen” (hier geht’s gleich weiter zu Punkt 7).
          1. Ist man im Einkaufswagen, hat man nochmals die Möglichkeit, gewisse Änderungen vorzunehmen (Menge, Löschen, weitere Artikel, …)
          2. Bei allen Varianten landet man nun hier, um noch folgende Punkte zu klären:
          3. Versandadresse prüfen
          4. Zahlungsart prüfen und eventuell Gutscheincode eingeben
          5. Menge, Geschenkoption und Versandart auswählen
          6. Bestellung aufgeben und bezahlen.

        Zur Verdeutlichung hier abgebildet noch eine Mindmap für diese Transcation Tour.

         

        4. Complexity Tours

         

        Bei der sogenannten „Complexity Tour” wird versucht, das Komplexeste an einer Software, aus Sicht des Nutzers, aber auch aus technischer Sicht zu finden und darzustellen. Hierbei ist es oft wichtig, mit der Software zu experimentieren und diese zu erforschen, um auf komplexe Bereiche zu stoßen.

        Aus der Sicht des Nutzers können komplexe Vorgänge folgende Dinge sein:

          • Zahlungsadresse ändern
          • Konto deaktivieren oder löschen
          • Abonnement kündigen
          • Zahlungsdaten ändern
          • Rückgabe eines Produktes

         

        Zur Veranschaulichung eine Mindmap. Hierbei wird der Weg dargestellt, den ein Kunde wählen muss, um ein bereits bestehendes Spar-Abo zu stornieren:

        Aus technischer Sicht kann man folgende Beispiele nennen:

        • Produktvorschlag basierend auf Kauf- und Suchverhalten des jeweiligen Kunden
        • Implementierung alter Datensysteme in ein neues System
        • Zusammenführen verschiedener entwickelten Elemente von unterschiedlichen Teams

         

        Wie man sieht, hat man als Softwaretester:in verschiedene Werkzeuge zur Verfügung, um eine Software kennenzulernen. Dabei kommt es natürlich stark darauf an, ob man von Beginn an im Projekt als Tester:in dabei ist oder ob man erst später im Projekt dazu kommt.
        Vor allem, wenn schon viele Bereiche einer Software vorhanden sind, stellen Tours eine sehr gute Möglichkeit dar, um sich einen Überblick über die Software zu verschaffen und die Software aus verschiedenen Perspektiven zu betrachten und kennenzulernen.
        Dabei sind Mindmaps sehr hilfreich, da diese einerseits einen guten und strukturierten Überblick geben und andererseits auch um die Testabdeckung bestimmen zu können.

        Rupert Pfister

        Rupert Pfister

        Software Test Engineer

        Rupert hat eine Ausbildung in Umwelttechnik und Landwirtschaft abgeschlossen, mit Matura (Abitur). Die letzten 16 Jahre hat er als Versuchstechniker in einer Forschungsanstalt für biologische Landwirtschaft gearbeitet. Hierbei hat er schon Bekanntschaft mit Datenbanken, VBA und SQL Programmierung und dem Erstellen einfacher Programme für die Forschungsergebnisse gemacht.

        Ercan Akkol

        Ercan Akkol

        Software Test Engineer

        Yassin Ftita

        Yassin Ftita

        Software Test Engineer

        Ich habe Wirtschaftsinformatik an der Frankfurt University of Applied Sciences studiert. Ich interessiere mich leidenschaftlich für die IT und das Testen und freue mich darauf, mein angeeignetes Wissen in die Praxis umzusetzen.