Umfangreiche Testmanagement Lösung für komplexe Herausforderungen.
Warum können Entwickler nicht testen (oder doch?)
Dieser Artikel richtet sich vor allem an Unternehmensleiter/Geschäftsführer von Start-ups, die entscheiden müssen, ob sie ein separates Budget für die Position des Testers bereitstellen oder die Stunden des Entwicklers extra bezahlen sollen.
Ein Tester überprüft, ob eine Software bei mehreren Benutzerszenarien auf verschiedenen Geräten wie erwartet funktioniert.
Disclaimer
Ja, ein Entwickler kann das Ergebnis seiner Arbeit testen. Er kann Sie sogar davon überzeugen, dass ein Tester nicht erforderlich ist. Unserer Meinung nach gibt es aber gute Gründe, einen externen Spezialisten zu beauftragen.
Gründe, einen externen Tester zu beauftragen:
"Entwickeln können" bedeutet nicht unbedingt "testen können"
Man muss das richtige Testen lernen. Nicht jeder Entwickler weiß, wie man verschiedene Arten von Tests schreibt, alle Benutzerfälle abdeckt und den Prozess automatisiert.
Ja, in der Theorie wissen wir alle, wie es geht, aber nicht jeder hat Erfahrung in der Praxis, weil es ein anderer Beruf ist.
Soft vs Hard
Für einen Tester sind Soft Skills besonders wichtig. Der Grund dafür ist, dass die Tester in der Lage sein sollen, gute Berichte zu schreiben, die erzielten halb-empirischen Ergebnisse zu strukturieren und die Voraussetzungen und Folgen im Detail zu beschreiben. Nicht jeder Entwickler ist bereit und in der Lage, einen aufschlussreichen Bericht über die geleistete Arbeit zu verfassen.
Es ist immer schwieriger, Fehler in der eigenen Arbeit zu finden als in der eines anderen
Ein unterbewusster Gedanken "das ist meins, ich kann keinen Fehler machen" und ein noch viel schrecklicherer "ich bin sicher, dass es funktioniert, weil ich mich an alle Codezeilen erinnere, es gibt bestimmt alle richtigen Prüfungen drin" rufen immer wieder den Wunsch hervor, einen Teil der Tests zu überspringen.
Entwickelt gerne, testet aber nicht so gerne
Die meisten Programmierer haben den Wunsch, zu entwickeln - Code zu schreiben, die Architektur aufzubauen, komplexe Code-Beziehungen im Auge zu behalten, Code zu überarbeiten...
Der Testprozess ist anders - ja, auch dort wird ein Code geschrieben, aber der Ansatz ist anders. Es ist so, als würde man einen Koch in einem Restaurant bitten, nur Kuchen zu backen - er kann es, aber er tut es wahrscheinlich nicht oder macht es schlecht.
Berufliche Deformation
Ein Programmierer durchschaut das Produkt, das er mit seinen eigenen Händen geschaffen hat, und benutzt es mit seiner Vision. Aber ein durchschnittlicher Nutzer wird die Anwendung mit anderen Augen sehen. Und nur der Tester, der nicht in die Produktentwicklung involviert ist, kann fast mit denselben Augen wie der Nutzer sehen → der Tester deckt mit größerer Wahrscheinlichkeit alle echten Benutzerfälle ab.
Geld
In der Regel kostet die Stunde eines Testers weniger als die Stunde eines Entwicklers. Daher ist es für Sie nicht rentabel, wenn ein Entwickler Zeit für Tests aufwendet.
Risiko, Entwickler zu verlieren
Entwickler profitieren von dem Testen auch nicht und verstehen das. Sie sind dafür Interessiert, Ihre Kompetenzen zu verbessern und etwas neues zu machen, um eine Beförderung in der Zukunft zu bekommen. Welchen Sinn hat es, einen Mitarbeiter zu fördern (finanziell und organisatorisch), der viel Zeit mit Tests verbringt, die von weniger qualifizierten Kollegen geschrieben werden können? Wenn ein Entwickler zu viel Zeit beim Testen verbringen soll, sucht er mit großer Wahrscheinlichkeit einen anderen Job, an der er mehr Interesse hat.
Uns fallen nur 2 Gründe ein, einen Tester nicht einzustellen:
Niemand kennt das Produkt besser als derjenige, der es entwickelt hat. Es ist der Entwickler, der die schwächsten oder empfindlichsten Punkte kennt;
Ein Programmierer kann gute Tests machen (wenn er/sie sich die Zeit nimmt, sie zu lernen), aber nur, wenn er/sie sicher ist, dass seine/ihre Arbeit geschätzt und bezahlt wird und er/sie nicht für die Anzahl der (von ihm/ihr und seinen/ihren Kollegen) gefundenen Fehler gescholten wird.
Schlussfolgerungen
Wir sind uns sicher, dass jedes Projekt einen Vollzeit-Tester braucht. Und er muss sowohl mit dem Manager als auch mit dem Entwickler in engem Kontakt stehen.
Denn egal, wie cool der Code ist, das Wichtigste ist, dass der Benutzer bei der Verwendung des Endprodukts nicht verletzt wird. Und nur ein Tester kann den Überblick darüber behalten.