Ex ante: Il semble y avoir beaucoup de confusion sur ce qui est considéré comme tester ce qui ne l’est pas. Bien sûr, chaque développeur doit tester son code au fur et à mesure qu'il le crée, il doit vérifier qu'il fonctionne. Il / elle ne peut pas le donner à un testeur avant qu'il / elle pense que c'est fait et assez bon. Mais les développeurs ne voient pas tout. Ils pourraient ne pas reconnaître les bugs. Ces bogues ne peuvent être trouvés que plus tard dans le cycle de développement, lorsque des tests approfondis sont effectués. La question est de savoir si les développeurs doivent effectuer ce type de test ou non, et à mon humble avis, cela doit être examiné du point de vue du chef de projet:
Les développeurs peuvent être des testeurs, mais ils ne devraient pas être des testeurs . Les développeurs ont tendance à éviter involontairement / inconsciemment d’utiliser l’application d’une manière qui pourrait la casser. C'est parce qu'ils l'ont écrit et le testent principalement de la façon dont il devrait être utilisé.
Un bon testeur, par contre, tente de torturer l'application. Son intention première est de le casser. Ils utilisent souvent l'application d'une manière que les développeurs n'auraient pas imaginée. Ils sont plus proches des utilisateurs que des développeurs et ont souvent une approche différente pour tester un flux de travail.
En outre, l'utilisation de développeurs en tant que testeurs augmente les coûts de développement et ne profite pas autant à la qualité du produit qu'à un testeur dédié. Je ne laisserais pas les développeurs confronter leurs travaux à des tests croisés quand je peux le faire mieux faire par un testeur pour pas cher. Seulement si la boucle de rétroaction entre développeurs et testeurs devenait trop chère, je demanderais aux développeurs d'analyser le code de chacun, mais d'après mon expérience, c'est rarement le cas et cela dépend fortement du processus.
Cela ne signifie pas qu'un développeur doit être négligent et tout laisser au testeur. Le logiciel doit être sauvegardé par des tests unitaires et les erreurs techniques doivent être réduites au minimum avant de confier le logiciel au testeur. Pourtant, parfois, vous avez des solutions, des problèmes ou d’autres bogues qu’aucun développeur ne pourrait prévoir, c’est bien. En outre, les tests d'intégration devraient être effectués principalement par les développeurs. L'objectif principal du testeur est de vérifier que les exigences sont remplies.
Dans une si petite équipe (et également en fonction de la taille de l'application), je peux également voir le testeur dans un rôle hybride, écrire des tests unitaires et des tests d'interface utilisateur. Vous devriez certainement en engager un .
Mais plus important que le testeur sont les gels / branches réguliers. Ne présentez rien qui n'ait pas été correctement testé. Lorsque vous avez ajouté une fonctionnalité ou modifié quelque chose, tout ce qui l'entoure doit être vérifié à nouveau. Vous n'aurez qu'une mauvaise réputation si votre entreprise ne le fait pas. Ne libérez pas quelque chose d'instable. Lorsque le client souhaite disposer du logiciel à une date donnée, arrêtez de développer suffisamment tôt et testez-le correctement afin de disposer de suffisamment de temps pour corriger les bogues. Il est souvent préférable de refuser les demandes de fonctionnalités de dernière minute que de les mettre en œuvre de manière médiocre ou de les publier sans tests appropriés.