Wenn Sie Testautomatisierungsentwickler sind oder darüber nachdenken, es zu werden, haben Sie sich schon einmal gefragt, ob Testkenntnisse für Ihren Job unerlässlich sind? Dieser Artikel wird Ihnen helfen, diese Frage zu beantworten.
So hat mir das Erlernen einer „Tester-Mentalität“ geholfen, ein besserer Automatisierungsentwickler zu werden.
Meine Geschichte: Paralleles Arbeiten als Automatisierungsentwickler und Tester
Mein erster Job nach der Universität war als Testspezialist bei IBM. Ich war begeistert, hauptsächlich weil ich bei meinem Traumunternehmen angefangen hatte. Allerdings hatte ich tief in meinem Inneren das Gefühl, dass mir etwas fehlte. Bald merkte ich, dass meine Leidenschaft im Studium schon immer die Softwareentwicklung gewesen war.
Um mein Ziel als Coder zu verfolgen, sprach ich deshalb gleich zu Beginn mit meinem Projektleiter darüber, mich an der Testautomatisierungsentwicklung zu beteiligen. Zu meiner Freude stimmte er sofort zu! Allerdings fügte er hinzu, dass ich dennoch meine Rolle als Testspezialist parallel weiterhin ausüben sollte.
Die Vereinbarung sah folgendermaßen aus: Ich arbeitete als Testspezialist für eine Gruppe von Komponenten und als Automatisierungsentwickler für eine andere bedeutende Produktkomponente.
Ein paar Tage später machte ich eine verblüffende Entdeckung!
Ich entdeckte, dass mir die Arbeit als Tester geholfen hat, meine Entwicklungsskills zu verbessern. Während ich Code entwickelte, begann ich, wie ein Tester zu denken. Ich achtete auf Testabdeckung, verschiedene Testpfade, auf Nutzungsaspekte, Lesbarkeit und vieles mehr!
Mein erster Test-Experten-Mentor
Außerdem hatte ich in diesen Anfangstagen die Gelegenheit, mit einem Testexperten an einem Fachartikel über Barrierefreiheitstests zu arbeiten, der auf einer internationalen Technologiekonferenz eingereicht werden sollte.
Während wir unseren Artikel auf Basis unserer Erfahrungen und Erkenntnisse schrieben, fand ich meinen ersten Test-Mentor.
Da ich neu im Testbereich war, hatte ich viele Fragen. Mein Mentor-Kollege unterstützte mich bestmöglich und leitete mich an. Er war begeistert vom Testing! Diese Begeisterung war ansteckend, und sie hat mich auch gepackt!
Netzwerken mit Test-Enthusiasten
Und was folgte dann? Wir besuchten die Technologiekonferenz, bei der unser Artikel angenommen wurde!
Während der Technologiekonferenz trafen wir eine leidenschaftliche Community von Testliebhabern wie meinen Mentor. Ich war beeindruckt, wie sehr die Menschen das Testen schätzten und wie sie ihre Karriere in diesem Bereich weiterentwickeln wollten. Wir trafen Leute, tauschten Notizen aus, lernten Tipps und Tricks zum Testen!
Ein Rückblick
Das Schicksal brachte mich in meinem ersten Job zum Testen, obwohl Automatisierungsentwicklung eigentlich meine ursprüngliche Leidenschaft war.
Nach und nach entdeckte ich, wie mir das Testen geholfen hat, ein besserer Entwickler zu werden! Schließlich stellte ich fest, wie die „Tester-Mentalität“ es mir ermöglichte, hochwertige automatisierte Testskripte zu entwickeln.
Ich hatte Glück, dass ich diesen Blickwinkel lernen durfte, indem ich gleichzeitig als Tester und Testautomatisierungsentwickler gearbeitet habe.
Teste deinen Code: Hervorragende Leistungen als Entwickler
Während meiner Erfahrung als Tester und Automatisierungsentwickler entdeckte ich, dass ein Entwickler mit verbesserten Testfähigkeiten letztendlich auch „besser“ programmiert.
Schließlich gilt: Je früher Fehler im Code entdeckt werden, desto kostengünstiger ist es. Wenn Sie als Entwickler also den Fehler selbst erkennen, bevor Sie den Code an das Testteam übergeben, sparen Sie sich Aufwand.
Wenn Sie wie ein idealer Tester denken, stellen Sie zudem die geschäftliche Nutzungs-perspektive des Produkts in den Vordergrund, was äußerst wichtig ist. Sie beginnen, „über den Tellerrand hinaus“ zu denken.
Ein Beispiel:
Bevor Entwickler ihren Code an das QA-Team übergeben, sollten sie geplante Unit Tests durchführen. So lassen sich unnötige Fehler vermeiden, die ansonsten auf Integrations- oder Systemebene auftreten könnten.
Bei Unit-Tests überprüfen Entwickler einzelne Einheiten des Quellcodes, ob sie die Anforderungen erfüllen und der Code wie vorgesehen funktioniert.
Darüber hinaus kann ein Entwickler sich an Integrationstests beteiligen.
Integrationstests sind eine Form des Testens, bei denen Entwickler verwandte Systeme oder Codeeinheiten überprüfen, um sicherzustellen, dass die verschiedenen Aspekte des Frameworks auch integriert gut funktionieren.
Was könnten die Gründe sein, dass Entwickler Testfähigkeiten oft übersehen?
Die Gründe könnten folgende sein:
1. Eine bestehende Überzeugung, dass Testen ausschließlich von Testern durchgeführt werden muss
Sie denken vielleicht, dass Softwaretests nichts mit ihnen zu tun haben oder dass sie selbst wenig mit dem Testen zu tun haben sollten.
2. Sie gehen davon aus, dass sie sich nur auf die Verbesserung des Frameworks konzentrieren sollten
Entwickler, die sich ausschließlich auf die Verbesserung von Framework und Dokumentation konzentrieren, statt auf das Auffinden von Fehlern in der Software, werden meist später mit unangenehmen Überraschungen konfrontiert.
Wenn ein „offensichtlicher“ Fehler vom Entwickler übersehen wird und später von einem Tester entdeckt wird, bedeutet das, dass Zeit für die Nachbesserung des Codes aufgewendet werden muss, um den Fehler zu beheben. Dies ist kein bevorzugtes Szenario.
Und wie man weiß – ein Entwickler ist mit dem selbst geschriebenen Code am besten vertraut. Wäre es daher nicht am besten, wenn sie den Fehler selbst und frühzeitig entdecken? Dadurch können Tester ihre Zeit und Energie darauf verwenden, sich auf wichtigere und kritischere Fehler zu konzentrieren.
3. Die Angewohnheit, die Behebung des Problems aufzuschieben, wenn es erstmals bemerkt wird
Entwickler gehen manchmal davon aus, dass das spätere Debuggen effizienter ist. Tatsächlich wird das Debuggen jedoch viel einfacher, wenn ein Entwickler den Fehler früh entdeckt.
Beim ersten Auftreten eines Fehlers sieht der Entwickler im fehlgeschlagenen Szenario direkt die Debug-Ausgabe sowie die Zeilennummer, die das Problem verursacht hat.
Wenn der Fehler hingegen „aufgeschoben“ wird, müssen Fehler-Reviews, ausführliches Debugging und Mehraufwand zur Nachbesserung erfolgen.
Fünf Tipps zum Ausbau der Testing-Mentalität als Entwickler im Bereich Automatisierungstests
1. Melden Sie sich freiwillig für eine Testrolle
Es ist eine gute Idee, sich freiwillig für eine Testrolle zu melden, um praktische Erfahrungen zu sammeln. So können Entwickler ihre Testfähigkeiten weiter ausbauen.
Und was können Sie tun, um eine Testrolle zu übernehmen?
Die Antwort ist simpel: Während Sie nach einer solchen Rolle suchen, können Sie sich selbst weiterbilden, um zu verstehen, wie ein effizienter Tester „denkt“.
2. Bilden Sie sich weiter
Lesen, diskutieren, brainstormen, Fragen stellen!
Ich erkläre später in diesem Artikel, wie Sie das tun können.
3. Netzwerken
Workshops und Konferenzen sind hervorragende Orte, um Experten aus dem Testbereich zu treffen. Dort können Sie Ihre wichtigsten Ideen und Anliegen diskutieren, und ich bin sicher, Sie werden jemanden finden, der Ihnen weiterhelfen kann.
4. Finden Sie einen Mentor
Wie ich bereits erwähnt habe, hatte ich das Glück, einen Mentor zu finden, der mich für das Testen begeisterte. Es ist äußerst wertvoll, jemanden zu haben, der für das Testen brennt und Sie anleitet.
5. Seien Sie aufgeschlossen und hören Sie auf das Feedback Ihrer Automatisierungs-Tester
Es wird Momente geben, in denen Tester, die Ihren Automatisierungscode ausführen, auf Probleme stoßen und ihre Anliegen mitteilen. Hören Sie ihnen mit positiver Absicht zu und setzen Sie die Vorschläge um, wenn sie sinnvoll sind.
Ihre Testerkollegen werden Ihren Blickwinkel erweitern und Ihnen helfen, Ihre Automatisierungscode-Entwicklung weiterzuentwickeln.
Wie können Sie sich selbst zum Thema Testen weiterbilden?
Lesen Sie Blogs und wissenschaftliche Arbeiten
Lesen Sie viel über das Testen und wenden Sie das Gelernte praktisch an. Wir leben in einer Zeit, in der uns alle Informationen über das Internet zur Verfügung stehen.
So können Sie Blogs und sogar wissenschaftliche Arbeiten lesen, um großartige Inhalte zum Lernen zu finden. Und Sie können Ihr Wissen ebenfalls weitergeben!
Besuchen Sie Seminare, Workshops, machen Sie Zertifizierungen
Sie könnten Seminare, Workshops und Konferenzen besuchen, die das Testumfeld erläutern. Dies sind großartige Gelegenheiten, um zu lernen, Wissen zu teilen und eigene Ideen zu entwickeln. Außerdem treffen Sie auf Menschen, die ebenfalls eine Leidenschaft für das Testen haben.
Darüber hinaus können Sie anstreben, Testzertifikate wie ISTQB, CSTM und andere zu erwerben. So lernen Sie Testmethoden, Werkzeuge, Tipps und Techniken kennen und verschaffen sich einen tiefen Einblick in die Welt des Testens.
Fazit
Eine Testing-Mentalität und solide Kenntnisse über Testmethoden, Werkzeuge, Tipps und Techniken sind notwendig, um als Entwickler für Automatisierungstests ausgezeichnete Arbeit zu leisten. Es ist zweifellos vorteilhaft für jeden Entwickler, zu verstehen, warum, wann und wie getestet werden sollte.
Wenn ein Entwicklerteam seinen Code effizient prüft, bevor er zum Testen an das QA-Team übergeht, verbessert sich die Dynamik im gesamten Team erheblich.
Diese Veränderung kommt allen zugute: Entwickler können hochwertigen Code veröffentlichen und die Tester können sich auf das Auffinden kritischer Fehler konzentrieren, die Entwickler anschließend beheben.
Das Ergebnis ist ein hochwertiges Produkt, das beim Kunden ankommt.
All das ist möglich, wenn Sie als Entwickler bereit sind, Neues über das Testen zu lernen. Haben Sie noch nicht damit begonnen? Keine Sorge, es ist nie zu spät, dazuzulernen! Starten Sie, indem Sie sich unsere Podcast-Bibliothek ansehen! Hier ist eine Empfehlung: DIE GENERATION DER AUTONOMEN AUTOMATISIERUNG UND WIE SIE AUSSIEHT (MIT BERTOLD KOLICS VON MABL)
Verwandter Beitrag: BEST PRACTICES FÜR AUTOMATISIERUNG IN DER DIGITALEN TRANSFORMATION
