Genauso wie es Entwickler gibt, die um Größenordnungen produktiver und kreativer sind als andere Entwickler, gibt es auch Tester, die ähnlich herausragend sind. Wir alle haben unsere eigene Meinung darüber, was einen hervorragenden Tester ausmacht. Ich glaube, dass ein wichtiger Faktor die Perspektive ist, dass ein brillanter Tester anders an Software herangeht als ein Entwickler.

 

Damit will ich nicht sagen, dass eine Person nicht beide Perspektiven einnehmen kann oder dass die eine der anderen überlegen ist.

Ich frage, weil es manchmal vorkommt, dass ein Tester einen Fehler in einem Anwendungsfall findet, den ein Entwickler nie in Betracht ziehen würde. Oder ein Tester entwickelt eine unorthodoxe, clevere und für die jeweilige Aufgabe perfekte Methode zum Testen, und auch hier frage ich mich, wie er darauf gekommen ist.

Wie unterscheidet sich die Perspektive eines Entwicklers von der eines Testers? Ich glaube, die Frage ist für Vorstellungsgespräche und vielleicht auch für die Weiterbildung und die Kultur eines Unternehmens relevant.

Ich denke, der grundlegende Unterschied zwischen Tester und Entwickler ist der Unterschied zwischen Synthese und Analyse. Der Entwickler synthetisiert den Code. Er baut Dinge auf, setzt Teile zusammen und findet lustige und einzigartige Wege, diese verschiedenen kleinen Teile zu kombinieren, um wunderbare und erstaunliche Dinge zu tun.

Bei den Testern dreht sich alles um die Analyse. Sobald alles zusammengesetzt ist, nimmt der Tester es gerne wieder auseinander, Stück für Stück, und sucht diesmal nach den kleinen Ecken, Kanten und Unstimmigkeiten, die sich in den seltsamen und merkwürdigen Interaktionen verstecken, die sich aus den neuen und erstaunlichen Möglichkeiten ergeben, die Teile zusammenzusetzen.

Sowohl Tester als auch Entwickler finden gerne heraus, wie etwas funktioniert, aber der Unterschied besteht darin, dass der Entwickler sich darauf konzentriert, die Dinge so zusammenzusetzen, dass sie auf eine bestimmte Art und Weise funktionieren, während der Tester sich darauf konzentriert, die Dinge auseinanderzunehmen, um all die unbeabsichtigten Folgen herauszufinden.

Zitat Frank: Was testen mit Punk zu tun hat? Ich kann etwas auf verschiedene Weisen zerstören, kann meine Wut in eine Analyse umwandeln, und werde dafür gut bezahlt. Das erklärt eigentlich auch was einen brillianten Tester ausmacht. Den Willen in verschiedene Richtungen zu denken, Analysen, nicht nur in eine Richtung, sondern in positive und negative Wege. Testen ist Punk! Das war es immer für mich.

Einfach erklärt =

Entwickler: Lass uns etwas machen!

Tester: Lass es uns in die Luft jagen!

Als ich meinen ersten Job in der Qualitätssicherung antrat, beschrieb ich den Leuten meine Arbeit folgendermaßen: Ich habe einen Hammer und einen Schraubenzieher, und jemand hat mir gerade eine Standuhr gezeigt, mit der Anweisung, sie auseinanderzunehmen, um herauszufinden, wie sie funktioniert, und… (das ist der beste Teil) ich muss sie nicht wieder zusammensetzen.

Für mich bauen die Entwickler die Elfenbeintürme, die Zahnräder und das Innenleben eines Systems. Die Aufgabe eines Testers besteht darin, diese Türme, das Getriebe und die Eingeweide systematisch zu zerlegen, um Schwachstellen und Ausfälle zu finden.

Das Herz der Entwicklung ist die Schöpfung. — Das Herz des Testens ist die Wissenschaft.

Beim Testen von Software geht es immer um die Hypothese “Ist diese Software geeignet, um sie an den Kunden zu liefern?”. Es gibt viele Nuancen, das Testen hat viel mit Kunst zu tun und es geht um das Testen von Annahmen.

Die Denkweise bei der Entwicklung sollte lauten: “Wie kann ich das Problem des Kunden mit den mir zur Verfügung stehenden Ressourcen am besten lösen?”

Die Denkweise beim Testen sollte lauten: “Hat mein Entwicklungsaufwand das Problem ausreichend gelöst?”

Es kann schwierig sein, einen anderen Weg einzuschlagen. Deshalb sollten Sie die Software von Personen testen lassen, die einen anderen Blickwinkel als die Entwickler haben, um zu verhindern, dass Tests übersehen werden, die die Hypothese entkräften würden. Es ist eine gute Idee, dass der eigentliche Entwickler so viel wie möglich von dem, was er schreibt, testet. Dies verkürzt die Rückkopplungsschleife, senkt die Kosten und erhöht schnell die Fähigkeiten der Entwickler.

Entwickler müssen ihr Ego aufs Spiel setzen, um ein guter Entwickler zu sein, braucht man eine gewisse Selbstüberschätzung. Man muss glauben, dass man das Unmögliche erreichen kann. Sie müssen sich das Problem zu eigen machen, und der Code wird zu Ihrem Baby. Wenn Sie nicht so leidenschaftlich sind, dass Sie sich in den Code, den Sie schreiben, persönlich einbringen können, brauchen Sie einen neuen Job.

Ein Berufsrisiko für Tester besteht darin, dass sie anfangen zu testen und sich über alles zu beschweren. Seien Sie davor auf der Hut. Greifen Sie die Entwickler niemals persönlich für Fehler in der Software an. Finden Sie heraus, wie Sie ihnen sinnvolles, umsetzbares Feedback geben können, ohne ihr Ego zu zerstören. Wenn Sie glauben, dass es Entwickler motiviert, hart zu sein, sollten Sie sich einen neuen Job suchen.

Als Tester müssen wir verstehen, dass die Entwicklung eine kreative Anstrengung ist und unsere Aufgabe darin besteht, auf Fehler in etwas hinzuweisen, in das der Entwickler viel Mühe investiert hat. Es ist produktiv, auf Mängel in der Ausführung hinzuweisen, aber nicht auf die Person. Sie könnten zum Beispiel sagen: “20% der BVTs, die wir vereinbart haben, sind noch nicht bestanden.” Das ist ein objektives, nützliches Feedback. “Du bist schlecht, du arbeitest schon seit Wochen daran und es ist immer noch nicht fertig.” Nicht objektiv. Technisch immer noch korrekt und vielleicht sogar in gewissem Maße verdient, aber nicht angebracht.

Nichts ist trauriger als ein technisch versierter Tester, der der Feind eines jeden Entwicklers im Team ist. Mit Ausnahme desjenigen, der das Testen mit nach Hause genommen hat und nun von seiner Familie entfremdet ist.

Entwickler müssen Fachexperten sein und Misstrauen ausschalten. Entwickler müssen sich intensiv mit der Lösung schwieriger Probleme auf Mikroebene befassen. Sie müssen Experten für jede Codezeile sein, die sie schreiben. Spezialisierung bedeutet, Ablenkungen zu ignorieren und Besprechungen, die zu allgemein gehalten sind, auszublenden.

Entwickler müssen sich auf die Lösung der anstehenden technischen Probleme konzentrieren.

Tester sollten das große Ganze nicht aus den Augen verlieren. Tester sollten nicht danach streben, so viel wie ein Experte auf der Mikroebene zu sein. Sie müssen sowohl in der Mikro- als auch in der Makrowelt zu Hause sein und den Entwicklern, die nicht mehr weiter wissen, Daten zur Kurskorrektur liefern. Ein guter PM kann dem Tester einen Teil dieser Last abnehmen, aber ein Tester, der das große Ganze nicht im Blick hat, ist eine Belastung für den Entwickler, mit dem er zusammenarbeitet.

Tester müssen sich darauf konzentrieren, sicherzustellen, dass die zu lösenden technischen Probleme die Benutzererfahrung als Ganzes fördern.

Tester müssen wissen, wann sie die Widgets vermessen und wann sie das Fließband reparieren müssen, Testaktivitäten lassen sich grob in Qualitätskontrolle und Qualitätssicherung unterteilen. Bei der Qualitätskontrolle wird sichergestellt, dass die gelieferten Produkte den Spezifikationen entsprechen. Bei der Qualitätssicherung geht es darum, sicherzustellen, dass der Prozess von vornherein zu einem qualitativ hochwertigen Ergebnis führt.

Na ja, das beschreibt alles eigentlich ganz gut, was einen Tester ausmacht, aber auch den Unterschied zwischen Testern und Entwicklern.