Softwaretests
Testen ist ein wichtiger Bestandteil der Softwareentwicklung. Ein Tester hat direkten Einfluss auf die Qualität des Softwareprodukts, denn jeder Fehler kann theoretisch von ihm entdeckt werden, bevor die Software an den Kunden geht. In der Praxis gelingt das natürlich nie hundertprozentig, da man nicht alle möglichen Fälle in allen möglichen Kombinationen durchtesten kann. Hinzu kommt, dass man jedesmal, wenn ein Fehler behoben wurde, eigentlich wieder komplett von vorne mit dem Testen anfangen müsste, da durch die Änderung ja wieder neue Fehler entstanden sein könnten.
Man darf den Aufwand für das Testen nicht unterschätzen. In größeren Softwarefirmen ist es meines Wissens und meiner Erfahrung nach nicht ungewöhnlich, dass auf zwei Entwickler ein Tester kommt.
Meine Erfahrung
Ich scheine eine besondere Begabung für's Testen zu haben. Schon in der Schule hatte ich "magische Hände": Kollegen haben mich ihre Programme nicht mehr testen lassen, weil sie "super funktioniert" haben, bis ich sie einmal bedient hatte. Auch später, als ich bei Softwarefirmen arbeitete, war ich ein "gefürchteter" Tester. Woran liegt das?
- Offenbar kann ich gut jene Fälle finden, an die der Programmierer nicht gedacht hat. Das sind z. B. untypische Eingaben oder eine unübliche Verwendung des Programms sowie spezielle Umstände, die normalerweise nur selten auftreten. Meine Intuition ist da ziemlich kreativ und treffsicher.
- Meine analytische Arbeitsweise und Genauigkeit beim Arbeiten sind beim Testen sehr hilfreich. Man muss genau beobachten, systematisch experimentieren und die Fehler genau dokumentieren, sodass die Entwickler sie reproduzieren können. Vor allem aber darf man nicht gleich nach ein paar erfolgreichen Tests aufhören.
- Sicher hilft mir auch ungemein, dass ich selber schon viel programmiert habe und somit weiß, wo die typischen Schwachstellen sind.
Ich glaube, die meisten Entwickler
- testen eher ungern
- stehen vor einem psychologischen Dilemma: Sie wollen, dass ihr Programm einwandfrei läuft, aber beim Testen muss man wollen, dass das Programm einen Fehler zeigt. Ich vermute, dass sich das auf die Gründlichkeit ihrer Tests negativ auswirkt.
Irrtümer
- "Das brauch ich nicht testen, da kann kein Fehler passiert sein." – Leider zeigt die Erfahrung: Es kann immer ein Fehler passiert sein, auch und gerade dann, wenn man es nicht für möglich hält.
- Man glaubt, jeder kann testen und deswegen braucht man keinen eigenen Tester. – Sicher kann jeder testen, aber wenn man gute Softwarequalität haben will, braucht man einen guten Tester. Außerdem stehen Programmierer meistens unter Zeitdruck und können daher weniger umfangreich testen als eine Person oder Abteilung, deren einzige Aufgabe das Testen ist.
- Für gründliche Tests gibt es vor dem Abgabetermin keine Zeit, nachher gibt es keinen Grund mehr dazu (denkt man sich). – Nach dem Motto: Der Kunde wird sich schon melden, wenn etwas nicht passt.
Weiter
Siehe auch
- Fehlersuche im Programmcode – Meines Erachtens eine gute Ergänzung zum Testen des Programms "von außen"