Software tester job definition

Der Beruf des Software-Testers hat viele Facetten und entwickelt sich beständig weiter. Die Stellen in den einzelnen Firmen sind vielfältig und die Berufsbezeichnungen umfassen sehr unterschiedliche Profile: Analysten, Designer, Tester, Prüf-Ingenieure, Qualitäts-Ingenieure, Agile Tester, usw. Manchmal haben wir eine völlig andere Auffassung davon, welche Aufgaben sich hinter diesen Bezeichnungen verbergen.

Le métier de Testeur logiciel
„Manuelles Testen“
Quelle: https://www.qualitesoft.com

Die meisten Menschen, die ich kenne, haben sofort die repetitive Natur manueller Tests im Kopf, was teilweise am Umfang und der Vielfalt der Tests liegt, die im Lauf einer Entwicklung vorgenommen werden. Die Aufgabe des Testers wird tatsächlich häufig (und irrigerweise) mit langweiligen und repetitiven Aufgaben in Zusammenhang gebracht, bei denen man nur den Prozeduren folgen muss, die ein Test-Manager oder -Leiter festgelegt hat um am Ende einen Test-Report zu erstellen, der jeden Testfall mit OK oder KO bewertet. Aber tatsächlich handelt es sich bei der rein manuellen Herangehensweise inklusive Non-Regression-Testing (zumindest meiner Meinung nach – ich weiß, dass es da auch andere Meinungen gibt) um eine nicht mehr zeitgemäße Sichtweise des Software-Testing, auch wenn sie manche immer noch bevorzugen. Für diejenigen, die diesen Service verkaufen, ist es ein sehr gutes Modell, aber für den Käufer hält es weniger Vorteile bereit!

Das Modell bietet mehrere Nachteile:

  • Es liegt in der Natur des Non-Regression-Testing, dass man komplett neu beginnen muss, sobald die Validierungsphase (die oft fälschlicherweise als „Recipe“ bezeichnet wird) beendet wurde und eine neue Version veröffentlicht werden soll! Daher ist es auf lange Sicht unmöglich Kapital aus den Investitionen zu schlagen.
  • Die Zeitpläne für die Validierung werden immer länger, was die Fertigstellung verlangsamt. Vielleicht denken Sie, dass Sie zusätzliche Tester brauchen um schneller fertig zu werden, aber das ist ein Trugschluss!
  • Die menschlichen Aspekte sind nicht zu vernachlässigen: Auf lange Sicht sind nur wenige Menschen damit zufrieden immer wieder die gleiche Aufgabe zu erfüllen. Aber Maschinen machen das andauernd und auch noch mit einem Lächeln auf den Lippen!

Diese Art des Testing bleibt relevant, wenn es einen speziellen Grund dafür gibt. Zum Beispiel wenn Sie eine einzelne Version eines Produkts absichern müssen oder eine Einschätzung der allgemeinen Qualität eines Projekts brauchen, das kurz vor dem Abschluss steht. Allerdings kann man diese Herangehensweise als Herausgeber nicht so einfach integrieren, wenn man ständig und immer häufiger neue Funktionen in Softwaresystemen veröffentlicht, die dadurch immer komplexer werden. Bei AT Internet kennen wir den Wert des manuellen Testens, aber nur in dem speziellen Fall, den wir in diesem Artikel vorstellen (Akzeptanz).

Deshalb habe ich beschlossen diesen Artikel zu schreiben: Ich möchte vorstellen, was ein „Test-Ingenieur“ in unserem Unternehmen tut und die seltenen Fähigkeiten umreißen, die man für diese Rolle braucht.

Die Position des Testers bei AT Internet

Test logiciel automatisé
„Automatisierte Tests“
Quelle: https://www.qualitesoft.com

Um die Position des Testers zu verstehen, ist es am besten man beschreibt die Rolle des Testers, wie sie von unserem Unternehmen definiert wird:

„Zur Qualität der Produkte beitragen, die den Kunden zur Verfügung gestellt werden und dafür neue Funktionen automatisch validieren sowie unablässig Regressionen in bestehenden Funktionen finden.“

Die obige Aufgabe kann in eine Reihe von Aktivitäten aufgeteilt werden. Darunter:

  • Design und Implementierung testen (natürlich automatisiert)
  • Tools und Testumgebungen verwalten
  • Alle gefundenen Abweichungen melden und im Auge behalten

All das in enger Zusammenarbeit mit den Entwicklern. Tester sind gleichzeitig feste Mitglieder des Agile-Development-Teams.

Unabhängig, konstruktiv und kritisch

  • Sie müssen objektiv sein, unabhängig denken und einen ausgezeichneten Sinn für Kundenservice haben. Ein gefundener Fehler darf nie als „normal“ abgetan werden, wenn er negative Auswirkungen auf Kunden-Ebene hat!
  • Es wird von Testern auch erwartet, dass sie gut mit den Entwicklern kommunizieren. Da sie häufig die Überbringer schlechter Nachrichten sind, ist es wichtig sicherzustellen, das die Ergebnisse auf konstruktive Weise kommuniziert werden. Das Ziel ist es das Produkt zu verbessern und nie den Code eines Kollegen zu kritisieren!
  • Tester müssen eine positive Einstellung haben aber nichtsdestotrotz kritisch an das Produkt-Testing herangehen. Vor allem dürfen Sie dem Code niemals blind vertrauen – es verstecken sich immer irgendwo Bugs und der Trick ist sie zu finden! Das bezeichne ich als den „professionellen Pessimismus“ des Berufs: wachsam bleiben, während eine Anwendung sorgfältig auseinandergenommen wird um die Probleme und andere Auffälligkeiten zu entdecken, die sich darin verbergen. Das ist nicht immer leicht!

Testing-Skills

Um im Einklang mit unserer Unternehmens-Strategie zu bleiben, sollten Tester wissen, wie Tests im allgemeinen ablaufen. Die ISTQB Foundation bietet eine Zertifizierung an (sie ist aber nicht verpflichtend). Mit den geforderten Kompetenzen können Tester Funktionen effektiv analysieren, relevante Test-Pläne erstellen, gute Testfälle entwerfen und implementieren und gängige Anfängerfehler vermeiden. Dazu gehört zum Beispiel, dass Tests erstellt werden, die abhängig voneinander sind und damit das gleiche Testergebnis bringen oder Tests, die zu viele Funktionen gleichzeitig überprüfen. Für effektives Testing gibt es etablierte Techniken: Zum Beispiel Schwellenwerte, Äquivalenzklassen, Pfad-Abdeckung und andere Entscheidungstabellen analysieren.

Aber das ist noch nicht alles …

Ich muss gestehen, dass es hier für uns anfängt kniffelig zu werden: Unsere Tests müssen von den tatsächlichen Entwicklern implementiert werden! Um mit unserer andauernden Produkt-Integration Schritt zu halten und im Hinblick auf die Menge und Geschwindigkeit unserer Veröffentlichungen brauchen wir ein verlässliches automatisiertes Testing. Deshalb sind unsere Tester auch Entwickler. Ihre Fähigkeiten leisten einen Beitrag zur Produktqualität und unterstützen andere Entwickler durch die Implementierung effizienter Tools und Feedback-Mechanismen, die es ihnen erlauben die Qualität des Codes, den sie schreiben, richtig einzuschätzen.

Jeder spielt eine Rolle

Processus test logicial

„Qualität ist die Aufgabe von allen!“, sagte W.E. Deming (Pionier beim Qualitätsmanagement). Tatsächlich leistet in dieser Sache jeder seinen Beitrag. Nicht nur die Tester oder einzelne Teams, die mit diesem Aspekt unserer Produkte zu tun haben, sind dafür zuständig (tatsächlich haben wir so ein Team gar nicht). Jeder muss sich daran beteiligen. Die Rollen und Verantwortungsbereiche hängen vom Testing-Level ab:

  • Unit Testing / Komponenten-Integration (automatisiert)
    • Entwickler
  • System-Testing / Integration (automatisiert)
    • Tester (oder wenn nötig Entwickler)
  • Akzeptanz-Testing (oder „Recipes“) (manuell)
    • Produkt-Repräsentanten (Product Owner, Product Manager)

In manchen Fällen treffen unsere Teams die strategische Entscheidung manuelle Testing-Sessions mit verschiedenen Angestellten zu machen, zum Beispiel um die Veröffentlichung einer Anwendung sicherzustellen, die durch automatisierte Tests nur unzureichend abgedeckt wurde oder um Funktionen zu liefern, die ein hohes Geschäftsrisiko haben. In diesen Fällen braucht man eine umfassende und unmittelbare Lösung ohne zunehmend komplexe Validierungs-Systeme zu implementieren.

Warum in automatisiertes Testing investieren?

Wir verpflichten uns zu langfristigen Kundenbeziehungen. Dafür braucht man Vertrauen. Deshalb müssen wir wachsam sein, wenn es mittel- und langfristig um die Qualität unserer Produkte geht. Dafür muss man sich um die technische Komplexität, die zunehmende Entropie von Systemen und die Gesamtkosten (Total Cost of Ownership – TCO) kümmern. Tester wissen darüber Bescheid.

ROI software testing automation
Quelle: http://www.fsc-consultants.de/

Wie bereits in diesem Artikel erwähnt, haben wir uns entschieden, unsere qualitätsbezogenen (oder vielmehr bezogen auf fehlende Qualität) Kosten in Investitionen umzuwandeln, die uns allmählich dabei helfen die folgenden Ziele zu erreichen:

  • Zeit sparen
  • Veröffentlichungen sicherstellen
  • Die Entwicklung vereinfachen
  • Unsere Planung verbessern
  • Geld sparen

Unsere Tester stellen mit Ihrer Expertise sicher, dass diese Ziele erreicht werden. Wir haben jede Menge Bedarf in diesem Bereich.

Nachwuchs-Suche

Hauptsächlich durch den Mangel an Training zum Thema Testing bei Berufsanfängern, ist das Recruitment nicht immer einfach. Kurse in Ingenieurs-Schulen zum Thema Testing und Automation sind nach wie vor selten obwohl es in Unternehmen eine wachsende Nachfrage nach qualifizierten Personen gibt.

Bei Testern handelt es sich häufig um Entwickler, die aus Zufall zum Testen gekommen sind oder Menschen, die in einer Position mit Kundenkontakt (Support, Problemlösung, …) waren und sich in der Folge Entwickler-Fähigkeiten angeeignet haben.

Da es nicht einfach ist die perfekte Mischung aus Tester, Entwickler, Analyst und Automation-Experten zu finden, konzentrieren wir uns auf die Soft-Skills der Bewerber. Es ist viel einfacher Kandidaten die Prinzipien des Software-Testing und der Script-Entwicklung beizubringen, die eine verlässliche Arbeitsmoral haben. Aber natürlich freuen wir uns immer über gewissenhafte Entwickler, die ihre Fähigkeiten im Bereich Test-Automation anwenden wollen! Wo können Sie sich einbringen?

Author

Mit über 10 Jahren Erfahrung mit Software-Testing-Strategie und Implementierungen in einem agilen Umfeld ist Alexandre dafür verantwortlich die Entwicklungen bei AT Internet voranzutreiben. Seine tägliche Herausforderung: Unsere Entwicklungsteams bei der Implementierung von Tools und Methoden anzuleiten. Das Ziel ist es regelmäßige Veröffentlichungen mit hoher Qualität für unsere Kunden zu garantieren.

Comments are closed.