Ex ante: Es scheint eine Menge Verwirrung darüber zu geben, was als testen von was nicht angesehen wird. Klar, jeder Entwickler muss seinen Code testen, während er ihn erstellt. Er muss überprüfen, ob er funktioniert. Sie / er kann es keinem Tester geben, bevor er / sie es für erledigt und gut genug hält. Entwickler sehen aber nicht alles. Sie erkennen möglicherweise keine Bugs. Diese Fehler können erst später im Entwicklungszyklus gefunden werden, wenn gründliche Tests durchgeführt werden. Die Frage ist, ob Entwickler diese Art von Tests durchführen sollten oder nicht, und meiner bescheidenen Meinung nach muss dies aus der Sicht eines Projektmanagers betrachtet werden:
Entwickler können Tester sein, aber sie sollten keine Tester sein . Entwickler neigen dazu, unbeabsichtigt / unbewusst zu vermeiden, die Anwendung auf eine Weise zu verwenden, die sie beschädigen könnte. Das liegt daran, dass sie es geschrieben und größtenteils so getestet haben, wie es verwendet werden sollte.
Ein guter Tester hingegen versucht, die Anwendung zu quälen. Seine / ihre primäre Absicht ist es, es zu brechen. Sie verwenden die Anwendung oft so, wie es sich Entwickler nicht vorgestellt hätten. Sie sind näher am Benutzer als am Entwickler und haben oft einen anderen Ansatz, um einen Workflow zu testen.
Die Verwendung von Entwicklern als Testern erhöht zudem die Entwicklungskosten und wirkt sich weniger auf die Produktqualität aus als ein dedizierter Tester. Ich würde es nicht zulassen, dass Entwickler ihre Werke gegenseitig testen, wenn ich es mir von einem Tester billiger machen lassen könnte. Nur wenn die Rückkopplungsschleife zwischen Entwicklern und Testern zu teuer würde, müssten sich die Entwickler gegenseitig den Code überlagern, aber meiner Erfahrung nach ist dies selten der Fall und es hängt stark vom Prozess ab.
Das bedeutet nicht, dass ein Entwickler schlampig sein und alles dem Tester überlassen sollte. Die Software sollte durch Unit-Tests gesichert und technische Fehler auf ein Minimum reduziert werden, bevor die Software dem Tester übergeben wird. Trotzdem, manchmal haben Sie hier Fehler behoben, es gibt Probleme oder andere Fehler, die kein Entwickler vorhersehen konnte, das ist in Ordnung. Außerdem sollten Integrationstests hauptsächlich von den Entwicklern durchgeführt werden. Das Hauptziel des Testers besteht darin, zu überprüfen, ob die Anforderungen erfüllt sind.
In einem so kleinen Team (und auch abhängig von der Größe der Anwendung) kann ich den Tester auch in einer Hybridrolle sehen, indem ich Unit-Tests und UI-Tests schreibe. Sie sollten auf jeden Fall einen mieten .
Wichtiger als der Tester sind jedoch regelmäßige Einfrierungen / Verzweigungen. Präsentieren Sie nichts, was nicht ordnungsgemäß getestet wurde. Wenn Sie ein Feature hinzugefügt oder etwas geändert haben, muss alles, was es umgibt, erneut überprüft werden. Sie erhalten nur dann einen schlechten Ruf, wenn Ihr Unternehmen dies nicht tut. Lass nichts Instabiles frei. Wenn der Kunde die Software zu einem bestimmten Zeitpunkt haben möchte, beenden Sie die Entwicklung früh genug und testen Sie sie ordnungsgemäß, damit Sie genügend Zeit für die Behebung von Fehlern haben. Oft ist es besser, Feature-Anfragen in letzter Minute abzulehnen, als sie schlecht zu implementieren oder ohne ordnungsgemäßen Test freizugeben.