Nous avons un système Java assez complexe qui inclut quelques niveaux de back-end comprenant une base de données et une balançoire exclusive. Il existe des API de recul auxquelles les parties externes peuvent attacher cela imiter notre front-end. Il y a environ 5 silos au sein de notre organisation partageant ce système. Au total, il existe environ 15 développeurs qui maintiennent ce système. P>
Y a-t-il une règle générale sur la taille de notre équipe QA? p>
Edit: em> Pour ajouter un peu de contexte basé sur des questions soulevées dans les réponses jusqu'à présent: p>
8 Réponses :
Cela dépend probablement de la manière dont la base de code est impliquée (qu'il y ait beaucoup d'intégration de modules) et de la manière dont l'expérience utilisateur est (s'il y a beaucoup d'éléments visuels et de contrôles d'entrée à tester). P>
Si c'est un système assez complexe, vous voudrez peut-être envisager des ingénieurs 2-3 AQ pour tous les 5 développeurs. Si toutefois, les caractéristiques ne changent pas beaucoup ou sont moins impliquées, je penserais que vous pourriez vous échapper avec seulement 1 QA pour tous les 5 développeurs (peut-être même pour tous les 10 développeurs). P>
Quels seraient ces 10 développeurs de production si "les fonctionnalités ne changent pas vraiment beaucoup?"
Je nomme un ratio, pas vraiment un certain nombre de développeurs nécessaires au projet.
1 QA pour 5 devs sur un système est assez mince et 1 QA pour 10 devs est juste absurde. Même avec un bon TDD, vous devriez avoir un bon rapport d'environ 1 Qa à 3 devs.
Si "les fonctionnalités ne changent pas vraiment beaucoup ou sont moins impliquées", je pense que je pense que vous iriez "assez mince" avec vos ressources d'assurance qualité par rapport à lorsque le système est "assez complexe". Je me suis qualifié quand vous voudriez aller "assez mince". Il y a évidemment un terrain moyen entre mes deux scénarios, que vous avez frappé avec 1 QA à 3 devs.
Non, il n'y a pas de règle de pouce. Chaque organisation est différente, car chaque organisation dispose d'un ensemble complet d'exigences, de besoins, de projets, etc., vous ne serez que capable de trouver ce qui fonctionne pour votre organisation. p>
+1: Je ne sais pas pourquoi cela a été évité, il existe de nombreux facteurs qui prennent une décision comme celle-ci unique à chaque entreprise.
Commencez avec un 1 QA à 5 ou 6 développeurs. Ensuite, commencez à modifier en fonction de la quantité de travail que vous pensez que les Qas devaient faire ou avoir rien à faire. P>
En vérité, c'est basé sur ma propre expérience car il y a trop de facteurs impliqués. Dans quelle mesure votre code de code est-il développé ou stable? Quelle est sa taille? À quel point les tests doivent-ils être complets? Quels types d'outils de test et d'analyse sont impliqués? Quelle est la fréquence des rejets de jalons? Quel type de processus de développement avez-vous? Combien de test manuel et combien de test automatisé? P>
Il y a beaucoup plus de questions. Donc, commencez simplement avec un numéro arbitraire et passez de là. P>
En tant qu'ancitive d'équipe de test, je suggérerais d'avoir autant de tests que vous le pouvez. Cela ressemble à beaucoup de personnes dans votre organisation dépendent de votre logiciel. Testez précoce et testez souvent. P>
Il est très important de réaliser que les tests sont la responsabilité de tout le monde. Les développeurs doivent écrire de bons tests unitaires. Les développeurs d'interface utilisateur devraient tester manuellement l'interface utilisateur. P>
J'essaie d'encourager le développement axé sur les tests, de garder les yeux sur des métriques (à l'aide d'un système de suivi de bogues formel, de suivre des densités de défauts, etc.), de configurer un service d'intégration continue et du code de conception pour la testabilité (utilisez un cadre comme le ressort pour l'injection de dépendance. , utilisez des simulacres et des talons pour des services externes, etc., je serais heureux de discuter plus en détail). Le coût de la fixation d'un bug devient exponentiellement plus cher le plus tard, vous le trouvez, il est donc mieux trouvé avant qu'il ne devienne à une QA formelle. P>
Jeff p>
"Les développeurs d'interface utilisateur devraient être testés manuellement l'interface utilisateur"? Ne devrions-nous pas investir dans des tests automatisés de l'interface utilisateur pour les développeurs ou est-ce une perte de temps / d'argent?
Le test automatisé de l'interface utilisateur est bon quand cela fonctionne, mais il est vraiment difficile de bien avoir raison. L'interface utilisateur doit être conçue pour des tests et une couche très mince devrait être une couche très mince - cela signifie à l'aide de motifs tels que le contrôleur de mode modèle et en veillant à ce qu'aucune logique commerciale n'est dans l'interface utilisateur. Si vous pouvez effectuer des tests automatisés, je le ferais aussi. Je voulais vraiment dire que les développeurs d'interface utilisateur devraient également tester leurs propres changements manuellement, ce qui ne fait pas nécessairement les tests de régression complètes manuellement. Les testeurs d'assurance qualité feront inévitablement tout ou partie des tests d'interface utilisateur manuellement.
Puisque vous utilisez Swing, je recommanderais le festival easytsting.org/swing/wiki/pmwiki Cadre de test .php - Il vous permet d'écrire des tests fonctionnels de vos gites Swing.
Une autre chose à retenir est que de bons outils ne font pas de bons testeurs. Vous avez besoin de bons testeurs pour commencer avec - ceux qui passionnent de tester et de vouloir être des testeurs, pas seulement des développeurs qui ont été sélectionnés pour les tests. Ils devraient avoir le désir de venir chaque jour et casser le logiciel, l'utiliser de manière inattendue (et bien sûr les moyens attendus). Un fond de programmation contribue également à cause des langages de script pour les tests.
Un ratio Rational QA à Dev ne peut être dérivé que par rapport à la complexité d'une application en question. P>
Clairement, un UberDéveloppeur peut probablement proposer une application complexe où seulement 3 Qas à temps plein peuvent tester efficacement en raison de la complexité du flux de travail; À son tour, il peut y avoir 1 QA pour 3 Devs Junior, en train de faire une application relativement simple de sortie d'entrée-sortie. p>
Donc, le nombre de personnel d'assurance qualité dont vous avez besoin sera déterminé par le nombre et la complexité des exigences que vous avez, et non le nombre de développeurs de logiciels que vous utilisez. P>
Je ne sais pas si son point de vue a changé depuis Cet article 9 ans Il y a, mais Joel recommanderait 1 personne d'assurance qualité à temps plein pour 2 devs à temps plein. Je dirais, avec un système qui évolue constamment, avec des mises à jour régulières, ce ratio est plutôt bon. P>
Encore une fois, si votre système ne change pas cela souvent, la mise à jour rarement, pourquoi auriez-vous de nombreux Devs pour commencer? J'ai été marqué pour me convaincre que 1: 2 est le ratio parfait dans la plupart des situations. :) p>
2 ingénieurs de test pour 3 développeurs est un début décent. Si de nombreux cas de test impliquent des choses qui ne peuvent pas être automatisées (branchement physiquement / débrancher, vérification oculaire du rendu d'interface utilisateur) Ajoutez 1 testeur pour 2 ingénieurs de test. p>
Beaucoup de cela dépend de ce que le système fait et quelles sont les conséquences des défauts? Écrivez-vous des logiciels financiers? Ou réseau social? Le coût probable d'une défaillance est supérieur à l'autre que l'effort d'assurance qualité varie. De même si c'est un produit (avec plusieurs bases d'utilisateurs installées qui pourraient être plus difficiles à patcher), vous en avez besoin pour être plus stable que si elle est interne. P>
Vous devez également demander que vous vous attendez également à ce qu'ils effectuent des tests de base du système ou des tests de volume et de chargement. On dirait que vous regardez une combinaison de tests d'interface utilisateur et de test de l'API. P>
Vous avez un point de départ, en supposant que vous parlez d'un type de système «normal» et que nous parlons des tests de base du système, la métrique que j'irais avec laquelle 33% de tous les efforts doivent être des efforts de test. En théorie, cela vous donne un rapport de 1 à 2, mais supposons que vos développeurs sont des tests unitaires, étirer peut-être 1 à 3. Je suis certainement en cours d'exécution avec 1 à 4 et cela ne suffit pas (je vais le rectifier dès que L'entreprise me permet de le faire). P>
Mais vous souhaitez également envisager la maturité de vos processus de développement de logiciels et de vos spécifications. En plus d'avoir le bon nombre de testeurs, vous devez leur donner les bonnes informations à tester - s'ils ne le font pas, ils ne seront pas capables de faire un emploi et que c'est sans doute gaspillé de l'argent. P >
Une autre option à lancer là-bas - on dirait que le produit est en cours de développement depuis un moment. Outre un noyau de testeurs réguliers, vous voudrez peut-être mener à bien un premier test majeur utilisant des entrepreneurs à court terme. Si vous ne faites que apporter une ressource de test dans vous, vous ne voulez pas les démarrer avec un arriéré majeur. P>
Combien de temps dure votre test de régression à compléter? Cela devrait sûrement être basé sur cela?
Je ne suis pas d'accord avec celui qui veut cela fermé. Bien que la programmation ne soit pas liée, elle est étroitement liée et absolument cruciale pour la qualité logicielle et le cycle de vie du développement de logiciels.
Le régresseur prend une semaine pour compléter