Est-il bon que les testeurs soient en compétition pour voir qui ouvre plus de bugs?

54

Je suis un développeur de logiciels. Une équipe de testeurs suit et exécute des scénarios de test écrits par l'analyste, mais effectue également des tests exploratoires. Il semble que les testeurs se disputent pour savoir qui ouvre le plus de bogues, et j'ai remarqué que la qualité des rapports de bogues avait diminué. Au lieu de tester les fonctionnalités et de signaler les bogues liés au fonctionnement du logiciel, les testeurs ont soumis des bogues liés aux améliorations de l'écran, à la facilité d'utilisation ou à des bugs stupides.

Est-ce bon pour le projet? Sinon, comment puis-je (en tant que développeur de logiciels) essayer de changer les mentalités et les attitudes de l'équipe de testeurs?

Un autre problème est que l'échéance est estimée et qu'elle ne peut pas changer. Ainsi, à l'approche de l'échéance, les testeurs vont se démener pour terminer leurs scénarios de test, ce qui entraînera une baisse de la qualité des tests. Cela entraînera des bogues légitimes dans le produit final reçu par le client.

OBS: Ce concours n'est pas une pratique de l'entreprise! Il s’agit d’un concours organisé uniquement entre les testeurs, et sans aucun prix.

Seulement un esprit curieux
la source
3
Les testeurs sont-ils impliqués avant la construction? Cela signifie-t-il qu'ils sont impliqués dans le développement des exigences ou des cas d'utilisation ou des user stories, dans la révision de la documentation de conception ou dans la révision du code? Les rapports que les testeurs classent sont-ils corrects et y a-t-il des contrôles en place pour s'assurer que les rapports sont valides et complets? Si vous pouviez modifier votre question pour en savoir plus sur les rôles / responsabilités des testeurs et sur la gestion de leurs rapports, cela me permettrait de rédiger une bonne réponse.
Thomas Owens
35
La concurrence n’est pas forcément mauvaise, mais combinée à des incitations, elle peut avoir des effets néfastes. Cette question me rappelle une histoire sur The Daily WTF où des testeurs ont collaboré avec des développeurs pour créer des bogues supplémentaires qui pourraient ensuite être trouvés héroïquement . Fun lire. Ne répétez pas cette erreur.
amon
6
Votre argument est bien compris, mais en passant, j'apprécie que quelqu'un me dise que mon travail pose des problèmes de convivialité. C’est l’une des choses les plus difficiles à maîtriser dans un logiciel, mais aussi l’une des plus précieuses à avoir.
jpmc26
9
Venant d'un projet de plus d'une année avec une assurance qualité méticuleuse, je peux dire que, bien que les défauts liés à un trop grand espace blanc entre des éléments ou des symboles de couleurs différentes qui signifient la même chose puissent sembler non productifs, ils améliorent en fin de compte l'expérience utilisateur, améliorant souvent la productivité, réduisant la charge de support technique et donnant une apparence plus professionnelle à une application, toutes les caractéristiques souhaitables. Et, oui, parfois, les logiciels seront retardés à cause de cela, mais le prix à payer en vaut généralement la peine.
Phyrfox
9
Un certain nombre de réponses suggèrent que le travail des testeurs est de trouver des bugs; Cet état d'esprit est ce qui produit le problème que vous avez identifié. Le travail de l’assurance qualité consiste à déterminer avec précision si le produit répond ou non à une barre de qualité spécifiée . Je me fiche de savoir si un testeur produit des rapports de bugs; Je me soucie de savoir si un testeur produit une analyse précise et axée sur le client de la qualité du produit. C'est la chose qui devrait être incitée.
Eric Lippert

Réponses:

87

Je ne pense pas que ce soit une bonne chose qu’ils fassent un concours pour trouver le plus de bugs. S'il est vrai que leur travail consiste à rechercher des bugs, leur travail n'est pas "trouver le plus de bugs". Leur objectif n'est pas d'en trouver le plus, mais leur objectif est d'améliorer la qualité du logiciel. Les récompenser pour avoir trouvé plus de bogues équivaut à récompenser un programmeur pour avoir écrit le plus de lignes de code, plutôt que le code de la plus haute qualité.

Le transformer en jeu les incite à se concentrer sur la recherche de nombreux bogues superficiels, plutôt que sur les bogues les plus critiques. Comme vous l'avez mentionné dans votre édition, c'est exactement ce qui se passe dans votre organisation.

On pourrait argumenter que tout bogue qu’ils trouvent est un jeu juste, et que tous les bogues doivent être découverts. Cependant, étant donné que votre équipe dispose probablement de ressources limitées, préféreriez-vous que le testeur se concentre plusieurs heures ou plusieurs jours sur votre système à la recherche de gros bogues, ou passe plusieurs heures ou plusieurs jours à parcourir l'application à la recherche d'erreurs typographiques et de petites erreurs? des erreurs dans l'alignement des objets sur une page?

Si l'entreprise souhaite vraiment en faire un jeu, donnez aux développeurs le pouvoir d'ajouter des points à un bogue. "bugs stupides" obtenir des points négatifs, difficile de trouver des bugs avec des rapports bien écrits obtenir plusieurs points. Cela déplace alors l'incitation de "trouver le plus" à "être le meilleur dans votre travail". Cependant , cela n'est pas recommandé non plus, car un programmeur et un analyste d'assurance qualité pourraient travailler ensemble pour compiler artificiellement leurs chiffres.

En bout de ligne: ne faites pas un jeu hors de la recherche de bugs. Trouvez des moyens dans votre organisation pour récompenser le bon travail et en rester là. La gamification récompense les personnes qui atteignent un objectif. Vous ne voulez pas qu'un analyste d'assurance qualité ait pour objectif de "trouver le plus de bogues", vous voulez que son objectif soit "d'améliorer la qualité du logiciel". Ces deux objectifs ne sont pas les mêmes.

Bryan Oakley
la source
5
La première chose à laquelle je pensais était similaire: s’ils veulent en faire un jeu, il serait préférable qu’un responsable de l’assurance qualité (s’il en existe un) définisse des points sur les bogues détectés, en supposant que l’on puisse confier à cette personne le meilleur intérêt de tous. l'entreprise à l'esprit. À cet égard, il peut mieux contrôler la concurrence et, que cela soit considéré comme acceptable ou non, peut même arbitrairement rapprocher la concurrence en attribuant des points légèrement supérieurs ou inférieurs à la concurrence. ( Sinon, si une personne prend de l'avance en testant ce que ce nouveau développeur a écrit, tous les autres abandonnent. )
DoubleDouble,
2
Malgré tout, je ne recommanderais pas cette idée car elle devient vite ennuyeuse à moins que les membres de votre équipe soient presque tous identiques (ce qui ne se produit pas). Il est préférable de rivaliser avec vous-même.
DoubleDouble
1
L'idée selon laquelle mesurer la productivité de l'assurance qualité en fonction du nombre de bogues trouvés équivaut à mesurer la productivité du programmeur à l'aide de lignes de code écrites (ou de points de scénario fermés). Les deux sont ridicules mais les deux persistent dans l'esprit des PHB qui ne voient pas de manière plus subtile de quantifier la performance.
dodgethesteamroller
Votre réponse est la même chose que je pensais. Mais le point @DoubleDouble sur le même niveau de testeurs est un bon point à considérer!
Seulement un esprit curieux
2
D'accord. Même si mon ancien travail d'assurance qualité ne comportait pas de quotas précis et rapides, quelques testeurs ont estimé qu'il était très important d'insister sur tous les petits tatouages ​​qu'ils pouvaient trouver - des choses comme "la chemise du personnage est trop longue, la plupart des gens le font." ne portez pas de chemises aussi longues "(lorsque la longueur du personnage était totalement hors de propos pour le jeu) plutôt que de chercher les vrais bugs comme" connecter / déconnecter de manière répétée un câble réseau sur l'hôte [dans un jeu hébergé par des pairs] entraînant la perte du jeu par client et gagnant ajouté au dossier en ligne de l'hôte ".
Doktor J
17

Je vais un peu en désaccord avec les autres réponses. "Trouver des bugs" pour un testeur est un peu comme "écrire du code" pour un développeur. La quantité brute n'a pas de sens. Le testeur doit trouver le plus grand nombre possible de bogues existants, et non le plus grand nombre. Si le testeur A trouve 5 des 10 bogues dans un composant de haute qualité et que le testeur B trouve 58 des 263 bogues dans un composant de basse qualité, alors le testeur A est le meilleur.

Vous voulez que les développeurs écrivant le minimum de code pour résoudre un problème particulier et un testeur écrivant le nombre minimal de rapports décrivant correctement le comportement endommagé. Concourir pour trouver le plus de défauts revient à concurrencer pour écrire le plus de lignes de code. Il est beaucoup trop facile de se glisser dans le système de jeu pour être utile.

Si vous souhaitez que les testeurs soient compétitifs, vous devez vous baser davantage sur ce qu'ils sont censés faire, à savoir valider que le logiciel fonctionne comme décrit. Alors peut-être que des personnes se font concurrence pour savoir qui peut écrire les scénarios de test les plus acceptés ou, mieux encore, écrire l'ensemble des scénarios de test qui couvrent le plus de code.

La meilleure mesure de la productivité des développeurs est le nombre de tâches complétées par la complexité des tâches. La meilleure mesure de la productivité du testeur est le nombre de scénarios de test exécutés fois la complexité du scénario de test. Vous voulez maximiser cela, pas les bugs trouvés.

Gort le robot
la source
3
Le testeur doit trouver le plus grand nombre possible de bogues existants, et non le plus grand nombre. S'il est prévu qu'il y ait une grande différence entre ces énoncés d'objectifs de test, c'est perdu pour moi.
Atsby
6
Parce que si le testeur A trouve 5 des 10 bogues dans un composant de haute qualité et que le testeur B trouve 58 des 263 bogues dans un composant de mauvaise qualité, alors le testeur A est le meilleur.
Gort le robot
6
@Atsby si un seul comportement cassé se manifeste à 10 endroits différents, un rapport de bogue sur la chose réellement brisée vaut bien mieux que 8 rapports de bogues distincts qui décrivent 8 symptômes différents sur 10.
Peteris
8
@Peteris (et Steven) Ce sont deux points intéressants, mais ils ne sont pas communiqués efficacement par la déclaration citée de Steven .
Atsby
@Atsby Dans la phrase que vous citez, la première clause est une déclaration relative (recherchez la plus grande fraction de bogues), et la seconde est absolue (recherchez le plus grand nombre de bogues). C'est la différence entre dire remplir ce seau à 90% et remplir ce seau de 1/2 gallon lorsque le seau contient 1 gallon.
dodgethesteamroller
16

D'après mes expériences personnelles, ce n'est pas une bonne chose. Cela conduit presque toujours les développeurs à classer des bogues dupliqués, ridicules ou totalement invalides. Vous en verrez généralement apparaître beaucoup à la fin d'un mois ou d'un trimestre, alors que les testeurs s'empressent d'atteindre des quotas. La pire chose à ce sujet, c’est que vous pénalisez également les développeurs en fonction du nombre de bogues trouvés dans leur code. Vos équipes de test et de développement travaillent alors les unes contre les autres, et l’une ne peut réussir sans que l’autre soit mal vue.

Vous devez rester concentré sur l'utilisateur ici. Un utilisateur n'a aucune idée du nombre de bogues répertoriés lors des tests, il ne voit que celui qui est passé. En fin de compte, les utilisateurs ne se soucient pas de savoir si vous déposez 20 rapports de bogue ou 20 000, tant que le logiciel fonctionne au moment où ils le reçoivent. Un meilleur indicateur pour évaluer les testeurs serait le nombre de bogues signalés par les utilisateurs, mais qui auraient dû être raisonnablement détectés par les testeurs.

C'est beaucoup plus difficile à suivre, cependant. Il est assez facile de lancer une requête dans une base de données pour savoir combien de rapports de bogues ont été signalés par une personne en particulier, ce qui, je suppose, est la principale raison pour laquelle la mesure "bugs archivés" est utilisée par autant de personnes.

bta
la source
+1, mais le seul problème avec votre meilleure métrique est, cela crée une incitation à ne pas améliorer le système de rapport de bogues des utilisateurs ... L'idée est bonne, mais peut-être faudrait-il un "bogues plus général trouvé en dehors du processus de test officiel"
user56reinstatemonica8
@ user568458 - Je supposais que l'organisation en question avait différentes équipes pour l'assurance qualité interne et le support client, et que cette question ne traitait que de l'assurance qualité interne. Si les deux sont la même équipe, alors vous aurez effectivement des conflits d'intérêts (que vous utilisiez ma méthode ou non).
BTA
6

Il n'y a rien de mal à faire un jeu en trouvant des bugs. Vous avez trouvé un moyen de motiver les gens. C'est bon. Il a également révélé un échec dans la communication des priorités. Mettre fin au concours serait un gaspillage. Vous devez corriger les priorités.

Peu de vrais jeux ont un système de score simple. Pourquoi le bug devrait-il chasser?

Plutôt que de marquer le jeu simplement par le nombre de bogues, vous devez fournir une mesure de la qualité des rapports de bogues. Ensuite, le concours porte moins sur le nombre de bugs. Ce sera plus comme un concours de pêche. Tout le monde cherchera à trouver le gros bug qui obtiendra un score hautement prioritaire. Faites de la qualité du rapport de bogue une partie du score. Demandez aux développeurs de fournir aux testeurs des informations sur la qualité du rapport de bogue.

Il n’est pas une tâche facile d’améliorer l’équilibre du jeu. Soyez donc prêt à passer du temps à le faire. Il devrait communiquer clairement vos objectifs et ce devrait être amusant. Vous pourrez également vous adapter à l'évolution des besoins de votre entreprise.

confits_orange
la source
5

Trouver des insectes est leur travail. Tant qu’ils ne rendent pas les choses moins efficaces (par exemple, en ouvrant un bogue pour 10 fautes de frappe au lieu d’une pour en couvrir plusieurs), cela les encourage à faire exactement ce qu’elles sont supposées faire, alors Je ne vois pas trop d'inconvénient.

mootinator
la source
Ne pouvait pas être plus d'accord avec Moot. Bien sûr, les gens peuvent faire quelque chose de stupide (fichier de centaines de fautes de frappe, etc.) - mais "les gens peuvent faire quelque chose de stupide" en suivant n'importe quel stratagème.
Fattie
1

Ceci est une extension de la réponse de @ CandiedOrange .

Pour commencer à attirer l'attention sur des objectifs plus utiles, considérons quelque chose de très informel et non officiel. Par exemple, les développeurs pourraient acheter des petits jetons et des trophées.

Chaque jour où au moins un bogue important a été signalé, laissez un jeton "Bogue du jour" sur le bureau du testeur. Une fois par semaine, organisez une cérémonie avec une procession de développeurs remettant un jeton ou un trophée "Bug of the Week" plus gros et meilleur. Rendez la distribution du trophée "Bug du mois" encore plus dramatique, peut-être avec un gâteau. Chaque jeton ou trophée doit être accompagné d'une citation expliquant pourquoi les développeurs ont pensé que c'était une bonne chose que ce bogue ait été détecté lors des tests. Des copies des citations doivent être placées quelque part où les testeurs peuvent toutes les lire.

L'espoir est que les testeurs détournent leur attention de la recherche du plus grand nombre d'insectes au profit de la collecte du plus grand nombre de trophées et de jetons. Pour ce faire, la meilleure stratégie consiste à lire les citations et à réfléchir aux approches de test susceptibles de générer des bogues importants pour les développeurs.

Ignorez simplement les rapports de bogues sans importance. Comme tout serait très officieux et informel, il pourrait être fermé ou modifié à tout moment.

Patricia Shanahan
la source
Je serais d'accord. Une chose: ne faites pas cela pour obtenir l'approbation de la direction. Pour que cela ressemble à un jeu, il est essentiel que les testeurs aient l’impression de comprendre les règles eux-mêmes. Si le système de connexion est prioritaire, faites-le savoir à l'avance et libérez-le. Si les défauts de cas d'utilisation à fort trafic sont la priorité plutôt que les cas obscurs, expliquez-le clairement et expliquez comment il est évalué. Le simple fait d’avoir des priorités claires rendra cela amusant et incitera les gens à pêcher dans le bon trou.
candied_orange
1

Est-ce bon pour le projet?

Non . Vous avez vous-même fait remarquer que vous aviez constaté que les rapports de qualité médiocre ne ciblaient pas les fonctionnalités requises et que les testeurs finissaient par aggraver le problème, s'efforçant de terminer le travail qu'ils étaient en réalité "supposés". "faire.

Sinon, comment puis-je (en tant que développeur de logiciels) essayer de changer les mentalités et les attitudes de l'équipe de testeurs?

Relevez le problème avec votre gestionnaire de projet. Ils devraient considérer ce genre de choses comme faisant partie de leur travail. Si votre premier ministre ne veut pas ou ne peut pas en venir à bout, vous êtes en quelque sorte coincé dans l’élaboration de vos propres stratégies d’adaptation. (ce qui serait une question différente)

David
la source
-1

Je pense que ce sera (ou ce que c'est déjà) si cela continue, vous n'obtiendrez pas nécessairement une qualité inférieure. Bien que je pense que cela va diminuer le rapport quantité / qualité. Cela dépend si c'est une mauvaise chose ou non. Ça dépend si

signaler des bugs concernant les améliorations d'écran, la facilité d'utilisation ou des bugs stupides.

est quelque chose que vous ne voulez vraiment pas. Si cela est clair pour les testeurs, je leur dirais simplement de ne pas faire les choses que vous ne voulez pas signaler, mais de les clarifier. Faites-le quand un de ces rapports réapparaîtra.

La raison pour laquelle ils ont un concours est probablement de s'amuser tout en travaillant, ils n'ont donc probablement pas l'intention de faire un mauvais travail (si cela est considéré comme mauvais).

Loko
la source
1
Je veux absolument savoir sur les problèmes de convivialité. Nous les appelons "bugs dans la spécification".
RubberDuck
1
@RubberDuck Eh bien, si cela est clair à 100% pour l'équipe, il y a une raison de le leur dire tout en laissant savoir que vous n'aimez pas ce qu'ils font et qu'ils savent pourquoi. Alors avertis-les. Si cela n’est pas discuté avec l’équipe en particulier, je ne pense pas que vous puissiez réellement vous fâcher contre elle, donnez simplement un exemple de rapport que vous désapprouvez et faites-leur savoir que vous ne le voulez pas comme ça.
Loko