fbpx

Was macht eigentlich ein Softwaretester?

Mein Name ist Francesco La Torre und im Jahr 2004 hatte ich meinen Berufseinstieg ins Software Testing und mich damals gefragt: Software Testing, was ist das eigentlich?


Außerhalb der IT-Welt sorgt der Begriff Softwaretester noch oft für ungläubige Blicke, daher habe ich schon sehr oft erklären müssen, womit ich jetzt als Softwaretester genau meine Brötchen verdiene. Ein paar der Fragen dich ich oft beantwortet habe, habe ich euch hier zusammengetragen, damit ihr euch ein genaueres Bild von der Arbeit als Softwaretester machen könnt.

qcademy francesco la torre

Du bist Software-Tester: Was ist das für ein Beruf?

Das ist eine gute Frage, die ich öfter höre. Der Beruf hat verschiedene Facetten: Im Kern lässt es sich auf wenige Punkte reduzieren (je nach Erfahrung der Software-Tester kann man aber noch einige weitere Punkte hinzufügen):

  • Als Software-Tester prüfe ich, ob Software das tut, wofür sie geschaffen wurde. 
  • Mit dem Team bespreche ich die Anforderungen an die Software, um Fehler zu verhindern, die durch Missverständnisse entstehen.
  • Nach der Umsetzung suche ich Fehler und Probleme bei der Nutzung der Software, bevor wir die Software auf die Kunden loslassen, sodass sie dort nicht auftreten.

Was sind das für Fehler, die man da finden kann?

Es gibt ein paar interessante Fehler, hier sind mal drei:

Bei der Entwicklung der F16 Kampfjets wurden allerlei Testflüge gemacht und der Jet war schon komplett gebaut. Auf einem der letzten Testflüge flog ein Pilot mit eingeschaltetem Autopilot über den Äquator und erlebte, wie sich das Flugzeug drehte und kopfüber weiter flog. Der Bordcomputer hatte die Überquerung des Äquators nicht richtig verarbeitet und die Ausrichtung des Jets entsprechend „korrigiert“.

air-jet-qcademy

In einem Projekt für eine Webseite für eine online Kreditabschlüsse hatten wir mehrere Server im Backend, um die zu erwartende Last zu verarbeiten. Während wir mit den Projektleitern noch darüber diskutierten, ob wir den Going-Live noch für einen finalen Performance-Test hinauszögern könnten, bat ich mein zehnköpfiges Team rasch mal alle einen Antrag auszufüllen und auf einmal auf „Antrag abschicken“ zu klicken. Wir bekamen dann doch Zeit für den Performance-Test und die anschließenden Optimierungen, denn die Server hatten allesamt nur Fehler generiert und konnten nur drei Anträge parallel verarbeiten, denn die Einstellungen waren nicht aufeinander abgestimmt.

1998 startete die NASA die Sonde Mars Climate Orbiter auf Ihre Reise Richtung Mars. Um Mittel zu sparen, wurde das System nicht ganz so redundant aufgebaut wie sonst. Nun flog die Sonde also nach geglücktem Start schon neun Monate Richtung Mars und sollte ihn einmal umkreisen, um dann zu landen. Nur aus dem Schatten des Mondes ist sie nie wieder aufgetaucht, sondern ist in der Atmosphäre des Mars verglüht. Die Analysen ergaben, dass die Ingenieursteams aus den USA und Großbritannien mit unterschiedlichen Einheiten gerechnet hatten und die Steuerung somit von den Sensoren falsche Daten für den Landeanflug übermittelt bekam. Die (Fehler-)Kosten der Mission von ca. 170 Mio. Dollar hätten leicht verhindert werden können.

qcademy-start

Wie ist das, bekommst du die Software einfach hingestellt und prüfst sie?

Das läuft heute in der Regel anders. Wir arbeiten in Projekten als Team an einer Software.
Im Team erarbeiten wir die Anforderungen an die Software mit den Kunden, dokumentieren diese und setzen sie um. Als Software-Tester begleite ich dabei die Software komplett in ihrer Entstehung. Ich bekomme also nicht erst das Endprodukt in die Hand gedrückt, sondern bin von Anfang an mit dabei und versuche erst die Entstehung der Fehler zu verhindern und suche die verbleibenden anschließend systematisch.

Was kannst du denn als Software-Tester machen, wenn die Software noch gar nicht bereit ist zum Testen?

Softwareprojekte sind oft ein komplexes Vorhaben und schon beim Zusammentragen von Anforderungen passieren Fehler – kleine Missverständnisse, die, wenn sie unentdeckt bleiben, auch schon mal großen Schaden anrichten können.

Deshalb ist es wichtig, dass wir schon ganz am Anfang Feedback einholen, ob die Formulierung von Anforderungen inhaltlich richtig und wirklich eindeutig formuliert ist.
In Workshops stellen wir die neuen Themen oder Anforderungen vor, stellen Verständnisfragen und diskutieren die Vor- und Nachteile der vorgeschlagenen Lösung.
Das ist zwar etwas aufwändig, aber so erreichen wir, dass größere Unklarheiten möglichst früh gefunden und geklärt werden können.

Ein Mittel, dass ich immer wieder mit Erfolg in diesen Situationen einsetze, ist möglichst gerade die Fehler- oder Sonderfälle auch mit den Beteiligten zu diskutieren.
Dies können zum Beispiel grobe Fehler durch einen Benutzer oder ein ausgefallenes Teilsystem sein, auf die unsere Software reagieren muss – gerade in der Anfangsphase sind hier verschiedene Perspektiven auf die Risiken sehr wichtig.

Grobe Schnitzer in den Anforderungen kann man am Anfang eines Projekts noch gut und günstig ändern, je länger schon an einer Software gearbeitet wird, desto teurer und aufwändiger wird die Korrektur für alle.
Solange wir also noch keine testbare Software haben, kümmern wir uns als Tester auch darum, dass möglichst wenige Fehler in die Software hereinkommen.

Was ist das für Software, die ein Software-Tester testet?

Ich habe schon in vielen verschiedenen Projekten Software getestet.
Im Moment bin ich Tester in einem Team, das eine Handy-App baut für Mitarbeiter der Deutschen Bahn.
Vorher war ich in einem Big-Data Projekt, das große Datenmengen verarbeitet, um eine bessere Prognose für die Ankunft der Züge der Deutschen Bahn zu errechnen.
In den Jahren zuvor war ich in der Finanzbranche in Projekten und hier rund um das Thema Kredite und Hypotheken.

Also im Großen und Ganzen kann es jede beliebige Software sein, die man als Software-Tester testet und mit jeder neuen Software lernt man wieder dazu.
Ich kenne andere Tester, die testen SAP, Rasenmäherroboter, computergesteuerte Roboter für Blutanalyse, Chatbots, Sprachassistenten und so weiter. Im Grunde wird alles, was mit einem Computer betrieben wird, auch getestet.

Muss man als Software-Tester auch gut programmieren können?

Grundsätzlich ist es in der IT nie verkehrt, wenn man auch programmieren kann oder zumindest grundsätzlich versteht, wie ein Computer Programme ausführt.
Im Software Testing ist es aber nicht unbedingt nötig auch selbst ein guter Programmierer zu sein.

programmierung-qcademy

Für Testautomatisierer ist das meist anders, sie entwerfen Programme, um sie im Test einsetzen zu können.
Dazu gehört neben der Wiederholung der immer gleichen Tests auch die Simulation von vielen hundert Benutzern für einen Performancetest oder der komplette Vergleich großer Datenmengen jede Nacht. Für diese Rolle im Projekt sind Programmierkenntnisse unbedingt nötig. Aber man kann ja klein anfangen und sich in die Rolle hinarbeiten und muss nicht als Meister einsteigen.
Man kann also auch ohne tiefe Programmierkenntnisse in den Beruf einsteigen, aber es hilft, wenn man programmieren kann.

Wie findest du Fehler?

Um Fehler zu finden, stehen uns einige Methoden zur Verfügung. Im einfachsten Fall ist das Trial-and-Error, aber das ist sehr ineffizient. Eine gute und bewährte Methode ist das sogenannte Szenario-basierte Testen. Hierbei wird der Ablauf verschiedener Szenarien untersucht und durchgespielt – das Verhalten der Software wird dann mit den Anforderungen verglichen. In agilen Projekten wird systematisch auf das explorative Testen gesetzt.

quereinsteiger-technical-sales

Kann man mit dem Testen einfach anfangen, sobald die Software vorliegt?

Das kann man nicht ohne weiteres mit einem Ja oder Nein beantworten. “Kommt darauf an..” – wäre die bessere Antwort. Je nach dem zu prüfenden Fall kann die Vorbereitung der Tests recht aufwändig sein, wenn z. B. die zu prüfenden Datenkonstellationen im Testsystem erst erstellt werden müssen, um den Test starten zu können. Stellt euch zum Beispiel vor einen Rechnungseingang zu verbuchen für einen Kunden, der schon drei Mal abgemahnt wurde und dann nur einen Teilbetrag überweist. In den Vorbereitungen kann man schon mal mehr Zeit verbringen als für den Test selbst. Aber das ist immer abhängig vom Thema, das ihr gerade prüft, teils kann auch direkt losgelegt werden.

Welche wichtigen Eigenschaften hat ein Software-Tester?

Als Tester ist es sehr wichtig, dass man Spaß daran hat Dinge zu hinterfragen. Man muss den inneren Drang haben Dinge zu verstehen und neues zu lernen. Wie vorher schon gesagt, wird man oft mit neuen Themen konfrontiert, die nicht ganz einfach sind und muss sich in Sie hinein arbeiten.

Eine weitere wichtige Eigenschaft ist in meinen Augen, dass man gern mit Menschen kommuniziert und sich auf sie einlässt.


Wenn ich Fehler in einer Software finde, dann kann ich auf mehrere Arten damit umgehen. 

  • Ich kann mit jedem Fehler direkt zum Programmierer gehen und ihn darauf aufmerksam machen 
  • Ich kann den Programmierern meine Fehlerinformationen einfach per E-Mail senden oder 
  • Ich kann mich mit den Programmierern zusammensetzen und bespreche die Auffälligkeiten und kann gemeinsam besprechen, wo sie herkommen und wo der Fehler liegt.

Meine Erfahrung zeigt, dass es sehr wichtig ist, wie man mit Programmieren spricht, wenn man ihnen von Fehlern berichtet. Hier ist viel Fingerspitzengefühl nötig, denn schließlich haben sie sich in der Regel viel Mühe gegeben, die Software so zu bauen, wie sie gerade ist. Zu behaupten es sei ein  Fehler in der Software ist für manche wie ein persönlicher Angriff oder wenigstens negatives Feedback.

Ist Software-Tester ein destruktiver Beruf?

Das kommt immer darauf an, wie man die Sache angeht. Zum einen ist für einen Software-Tester immer mit auch das Ziel, die Stellen herauszufinden, wo sich die Software generell nicht so verhält wie erwartet oder vielleicht sogar abstürzt.
Man muss schon eine gewisse Freude daran empfinden an Dingen zu rütteln und zu schütteln, bis etwas abfällt. 

Auf der anderen Seite suchen wir ja die Fehler gezielt, sodass die späteren Benutzer umso mehr Spaß und Freude an der Software haben und eben nicht diese Fehler finden. Die Fehler, die wir finden, sind dann bestenfalls nicht mehr in der Software, wenn die Benutzer sie bekommen.


Meiner Erfahrung nach haben die guten und erfahrenen Entwickler auch Freude daran, wenn ein Software-Tester einen kniffligen Fehler findet, nur so können sie das Produkt verbessern.
Wenn wir also unser Bestes tun, um Fehler aus der Software herauszubekommen, dann ist Software-Tester ein sehr konstruktiver Beruf.

Macht Dir die Arbeit als Software-Tester Spaß?

Ja, meistens ist es sehr interessant und vielseitig. Man spricht mit vielen verschiedenen Menschen. Erst über die Wünsche der Kunden, dann über die Pläne, wie man sie umsetzen kann und dann über Implementierungsdetails und Testautomatisierung. Ein Softwareprojekt ist ja immer Teamarbeit und alle müssen an einem Strang ziehen. Da ich gern mit Menschen arbeite und kommuniziere macht mir der Beruf sehr viel Spaß.

Wenn ich Dein Interesse für das Softwaretesten geweckt habe, dann ist unser Quereinsteigerprogramm genau richtig für Dich. 

Francesco La Torre

Francesco La Torre

Gründer & Coach Qcademy

Seit 2004 liebe ich es Menschen für das Softwaretesten zu begeistern. Ich habe schon vielen Quereinsteigern eine neue berufliche Perspektive im Softwaretesten ermöglicht. Ein guter Start in Softwareentwicklungsprojekte ist ein Einstieg ins Software Testing und mit Qcademy werden wir mehr Menschen die Möglichkeit geben, beruflich neue Wege zu gehen und über sich hinaus zu wachsen.