Prix ​​de la qualité: 7 principes pour optimiser les coûts de test

image alt


Vous vous demandez comment économiser de l'argent sur le test de votre logiciel? Tu n'es pas seul. Il n'y en a qu'un petit mais: si le logiciel n'est pas testé, les scénarios les plus négatifs sont possibles - de la finalisation coûteuse et extrêmement peu rentable à la finalisation de l'application à la perte de réputation et au départ de clients / clients vers des concurrents.

Prêt à recruter les 50 testeurs les plus expérimentés pour garantir la qualité des produits? C'est cool! Pourquoi? Vous devez comprendre: si vous allouez trop de ressources pour les tests dans les cas où cela n'est pas justifié, vous gonflerez le budget et le logiciel sera trop cher. Vos utilisateurs et clients en sont-ils satisfaits? Vous êtes à nouveau en danger.

Oui, nous suggérons que la vérité se situe quelque part entre les deux. Dans cet article, nous parlerons des principes de base, après quoi vous pourrez trouver un équilibre entre le coût des tests et la qualité de votre produit.

Principe numéro 1. Commencez les tests le plus tôt possible


image alt


L'une des erreurs les plus courantes consiste à commencer à tester le produit dans les étapes ultérieures, lorsqu'il est presque prêt pour la sortie. Plus tôt l'équipe de test (QA) est connectée au processus de développement, plus la probabilité de manquer une erreur de production est faible. De plus, une erreur identifiée à un stade précoce de développement coûtera moins cher. Parfois. Notre expérience montre que le prix de la fixation dans les étapes ultérieures peut être 30 fois plus cher que de réparer la même erreur, par exemple, au stade du prototype.

image alt

Un exemple tiré de la pratique: nous avons attendu très longtemps pour tester une application serveur qui collectait et traitait un large éventail de données utilisateur. Les développeurs ont simplement refusé de le donner, citant le fait qu'ils ont beaucoup de problèmes et que les tests peuvent être effectués à la fin. Finalement, ils ont travaillé sur la nouvelle version pendant quatre mois.

Lorsque nous avons commencé à tester l'application avec la quantité réelle de données utilisateur, il s'est avéré que l'architecture de base de données sélectionnée ne pouvait pas faire face à une telle charge. L'équipe de développement de cinq personnes a dû tout replanifier, réécrire la conception et l'architecture de l'application, et nous avons dû la tester à partir de zéro. La libération a eu lieu six semaines plus tard que prévu.

Résultat: le désir d'économiser 150 heures-personnes sur les tests et de reporter sa publication a entraîné la perte de 1 100 heures-personnes de ses employés et le double du coût des tests.

Principe numéro 2. Enregistrer, mais pas l'analyse


Disons que vous avez écouté nos arguments et décidé de mettre en œuvre le premier principe. À quel stade de développement de produit est-il préférable de débourser et d'engager une équipe de test? Réponse: au stade de la planification de l'architecture de l'application, ou au moins au stade de l'analyse et de la préparation des exigences.

image alt

Sans une analyse bien conduite, vous courez le risque de lancer le produit parfait dont personne n'a besoin. Cela se produit lorsque vous ne tenez pas compte des caractéristiques de votre public cible.

Nous nous souvenons de l'histoire d'horreur de l'application en cours d'exécution, qui a été conçue pour les utilisateurs d'Asie. L'Asie centrale l'aimerait certainement et réaliserait un bénéfice si les clients pouvaient installer l'application sur leurs smartphones. Mais ils ne pouvaient pas, mais savez-vous pourquoi? Au stade de la collecte des exigences, une erreur a été commise en raison de laquelle l'application a été testée sur les iPhones et smartphones Samsung, qui sont au moins en Asie. Après tout, les utilisateurs asiatiques préfèrent clairement Huawei et OPPO.

Dans notre exemple, le développeur n'a pas réussi à enregistrer à nouveau. Non seulement vous avez dû dépenser 300 heures-homme pour finaliser et tester le produit, mais les coûts de réputation ont presque mis le projet à genoux.

Conclusion: vous pouvez inviter des experts externes ou vous limiter, l'essentiel est de se rappeler que les tests consommateurs au stade du support sont des dizaines de fois plus chers. Et par cher, nous entendons moins les pertes monétaires que les coûts de réputation. N'économisez pas sur l'analyse. Mais pas sur elle!

Principe numéro 3. Définir les objectifs et les attentes


Bien sûr, vous voulez que tout fonctionne et fonctionne bien. Mais cela ne suffit pas. Vous devez comprendre à quel point et pourquoi tant de choses.

image alt

Savez-vous comment reconnaître un bon gestionnaire de test? Il commence immédiatement à vous «torturer» pour comprendre de quel type de produit de qualité vous avez besoin. Nous l'appelons la collection des attentes. La qualité de votre logiciel est constituée de certaines briques. Un gestionnaire de test expérimenté voudra savoir quelles briques particulières mettre dans le fondement de la qualité.

Lorsqu'un client vient nous voir et dit: «Je veux que ça marche», nous commençons à lui demander: quel est l'objectif principal de la création d'un produit? Quelles fonctionnalités sont les plus demandées par les utilisateurs? comment les utilisent-ils?



Après avoir collecté les attentes, les objectifs SMART sont définis, ils sont décomposés, les tâches et les tables KPI sont construites. En conséquence, nous définissons clairement:

  • types de tests;
  • les dates de leur détention;
  • composition de l'équipe;
  • et même des risques possibles.

Tout cela est nécessaire pour assurer la qualité exigée par le client, sans faire de folies sur ses nerfs.

Parfois, cependant, des incidents se produisent. Sur le projet de la boutique en ligne de services d'assurance, nous avons effectué une analyse et préparé une proposition. En raison de la complexité de la fonctionnalité et de la taille des modules, en plus des tests fonctionnels et de régression complets du produit, nous avons recommandé d'automatiser la régression. Malgré le fait qu'il ait fallu la plupart du temps pour régresser, le client a refusé de l'automatiser, le motivant par le fait qu'il existe une solide équipe de «brasseurs», et l'automatisation prendra beaucoup de temps et deviendra non rentable. Tous nos autres arguments et calculs ont été ignorés. Nous n'avons pas pu prouver notre position et pendant trois mois, nous avons testé la régression manuellement, ce qui, en fait, n'était pas rentable pour le client.

Ensuite, le projet a été interrompu, analysé pendant deux mois et est revenu avec une proposition d'utiliser le plan d'automatisation que nous avions proposé il y a cinq mois.

Conclusion: vous devez non seulement être en mesure de comprendre les objectifs du projet et les souhaits du client, mais aussi lui prouver que vous êtes de son côté et que vous savez comment en bénéficier. Sinon, ce sera comme le nôtre: un budget fusionné pour les tests de régression manuelle, bien que l'automatisation permettrait d'économiser du temps et de l'argent. En parlant d'automatisation ...

Principe n ° 4. Automatiser


image alt

... mais sagement. Et après avoir calculé le ROI.

Pour que l'automatisation vous fasse économiser de l'argent, le produit doit être stable. Cependant, s'il change de façon très dynamique, cela ne signifie pas que l'automatisation ne vous aidera pas. L'utilisation d'outils et de programmes spécialisés est déjà une automatisation. Par exemple, vous pouvez aider à automatiser les opérations de routine qui grugent le temps de vos testeurs. Disons écrire un utilitaire qui collecte les configurations nécessaires.

Etude de cas: le client voulait être libéré tous les jours au lieu de deux fois par semaine. De plus, un test de régression manuel complet a pris deux à trois jours. Et comme 80% des fonctionnalités du produit étaient bien établies et stables, il a été décidé de l’automatiser. Pour cela, nous avons développé quatre scénarios d'automatisation et effectué une analyse comparative de leur efficacité. Nous utilisons généralement huit indicateurs pour cela:

  1. Montant de TC - le nombre de cas dans le script.
  2. Automatisation (homme * jours) - consommation de ressources pour l'automatisation des scripts (à l'exclusion des données de test pour chaque scénario de test).
  3. 1 Automatisation TC (homme * h) - le coût d'automatisation d'un cas de test.
  4. Test manuel (homme * jours) - le coût du test manuel du script dans son ensemble.
  5. Enquête sur les résultats (homme * heures) - le coût de l'examen des résultats d'un autotest.
  6. Temps d'exécution - le nombre d' exécutions de test requises pour la période de travail sur le projet. Ce nombre reflète le nombre d'exécutions escompté, en tenant compte de la stabilité du fonctionnement, du calendrier d'exécutions requis (régularité des informations), etc.
  7. Efficacité de l' automatisation (%) - testez l'efficacité de l'automatisation en% du temps gagné. Compte tenu des erreurs de calcul, une automatisation avec un indicateur supérieur à 150% peut être considérée comme efficace.
  8. Temps économisé (homme * jours) - le nombre de jours-homme économisés tout au long du projet.

Voici à quoi cela ressemble sur l'exemple de notre projet:



La sélection finale est passée par deux scénarios d'automatisation. Leur utilisation nous a permis de réduire la régression de deux jours à quelques heures pour l'exécution des autotests, plus deux heures pour les vérifications manuelles restantes, qui se sont révélées non rentables à automatiser.

Conclusion: l' automatisation peut réduire les coûts de main-d'œuvre pour les tests des dizaines de fois et peut vider le budget pour rien. Sans la capacité d'analyser et de calculer le retour sur investissement, vous courez toujours le risque de toujours être déçu par l'automatisation.

Principe n ° 5. Apprenez à utiliser les débutants


image alt

Vous ne voulez pas automatiser? Des testeurs expérimentés ont-ils atteint le budget? Vous songez à embaucher des diplômés du secondaire pour un salaire modeste mais raisonnable? Pas une mauvaise idée, mais il y a quelques nuances. Même si vous avez un produit simple, certains nouveaux arrivants ne vous suffiront pas.

Un enfant peut trouver un bug dans le jeu et casser l'application par la méthode du leurre, mais trouvera-t-il tous les bugs? Bien sûr que non. Nous aimons beaucoup les nouveaux arrivants, mais ils ne possèdent généralement pas de méthodes de test de recherche. Mais ils peuvent "marcher" sur les tests. Par conséquent, pour une entreprise de débutants aux yeux brûlants, vous avez besoin d'un "vieil homme" qui prescrira des contrôles à un niveau que vos débutants comprendront.

Par exemple, nous attirons de nouveaux arrivants sous la supervision de mentors même pour certains projets complexes. Initialement, le processus d'intégration et d'adaptation d'un débutant sur le projet a pris un mois, ce qui, bien sûr, a augmenté le temps et le coût des tests. Pour résoudre ce problème, nous avons développé des "packages débutants" avec la documentation de test et toutes les instructions pour installer et configurer les composants nécessaires. Cette étape a permis de réduire la période d'adaptation complète au début à deux semaines, et après l'ajout d'un ensemble de cas visuels et de vidéos de formation au «package» - jusqu'à une semaine.

Un fragment d'un ensemble de cas pour tester un produit d'assurance est présenté ci-dessous.

image alt

Un «package novice» peut inclure quelque chose de très simple mais utile, comme un générateur de données .

Et cela peut donner des étapes spécifiques pour passer des cas. Soit dit en passant, selon notre expérience, il est préférable de donner aux débutants exactement des cas de test (avec des étapes détaillées et des conditions préalables), plutôt que des listes de contrôle.



Ayant un tel ensemble à portée de main, un débutant saura toujours quel test passer, quoi faire et où chercher les informations manquantes.

Bottom line: il est rentable d'utiliser le travail des débutants sans perdre la qualité et la vitesse des tests. Junior est en mesure d'apporter de réels avantages au projet dès la deuxième semaine, réduisant ainsi les pertes de temps d'adaptation de 4 fois (de 160 à 40 heures).

Un mentor expérimenté et des processus métier d'intégration novice aideront à développer une équipe sympa en peu de temps. Nous le faisons régulièrement et le nombre de grands testeurs que nous avons formés a déjà dépassé le millier!

Principe numéro 6. Vous n'avez pas besoin d'une centaine de testeurs, vous avez besoin de ceux qui travaillent avec leur tête


image alt

Il ne devrait pas y avoir beaucoup de testeurs, il devrait y en avoir suffisamment. Vous ne voulez pas investir dans de grands gars expérimentés qui vont juste s'ennuyer au travail ou commencer des mineurs inutiles? De la même manière, vous ne voulez pas que quarante développeurs remplissent un malheureux spécialiste des tests avec toutes ses corrections et il n'a pas eu assez de temps ou d'énergie pour effectuer un travail de qualité sur les tâches. Donc, la sixième règle d'équilibre des prix et de la qualité est de rechercher cet équilibre.

L'intuition est importante, mais essayez toujours de recourir à l'aide de stratèges et d'analystes qui vous aideront à évaluer l'étendue des tâches, le nombre de personnes dont vous avez besoin et leurs qualifications.

Un cas courant de la pratique. Il n'y a pas si longtemps, nous avons été approchés par un client qui comptait 12 testeurs dans l'équipe: TM, senior, middle et 9 junior. Nous avons effectué un audit des processus de test et abandonné huit mille tâches inutiles (telles que la fonctionnalité de régression non affectée par les mises à jour, l'institution des mineurs, etc.), et nous avons compris comment optimiser les tests. Il s'est avéré que le projet avait besoin de trois appareils d'automatisation (offerts en propre) et d'un autre middl, qui était issu de la junior. Les autres nouveaux arrivants ont dû être abandonnés.

image alt

Ensuite, nous avons laissé le test des fonctionnalités critiques dans le bloc "Identification et accusé de réception" au milieu. Ils l'ont vérifié à la main, faisant des tests de recherche. Tous les autres blocs sont presque complètement passés à l'automatisation.

image alt

Au final, cela a permis:

- Réduisez le coût des tests préliminaires de 232 400 à 35 200 roubles.

- Augmentez de 5 fois le test de retour sur investissement grâce à l'automatisation.

- Réduire le fardeau de gestion sur la gestion.

- Réduisez le temps de test de pré-version de 23 heures-homme.

- Améliorez la qualité des tests, en ne laissant que des testeurs expérimentés sur le projet.

Principe numéro 7. Découvrez ce qui est le plus rentable pour vous: le personnel ou l'externalisation


image alt

Souvent, mais pas toujours, l'externalisation est moins chère et vous permet d'embaucher des employés plus expérimentés à prix réduit.

Un autre cas de notre pratique: comment économiser plus d'un million et demi de roubles par an en embauchant neuf sous-traitants avec un salaire de 130 000 au lieu de neuf testeurs à temps plein avec un salaire de 70 000 roubles.

Afin de ne pas être infondé, nous présenterons un tableau qui expliquera d'où vient un tel avantage.

image alt

Dans notre exemple, un testeur à temps plein avec un salaire de 70 000 roubles par mois coûte à l'entreprise 14 877 roubles de plus qu'un spécialiste de l'externalisation plus cher avec presque deux fois plus de salaire. Si nous prenons en compte le département de 9 personnes qui ont travaillé pendant un an, l'avantage sera de 1 606 716 roubles. Et c'est de l'argent.

Cependant, il arrive parfois que, même en réalisant les avantages, les entreprises ne souhaitent pas externaliser les tests. Par exemple, nous rencontrons souvent le désir d'un client de tout transférer à son personnel. Cela est dû aux craintes et à l'incapacité de partager leurs meilleures pratiques et leur documentation avec des clients externes.

Cette position est pleinement justifiée: malgré tous les accords de non-divulgation, il subsiste toujours le risque de fuite accidentelle d'informations, dont le coût n'est alors pas couvert par des poursuites. Afin de ne pas entrer dans une telle situation, nous vous recommandons de faire preuve de prudence et de vous tourner vers une entreprise pour laquelle au cours des dix dernières années, aucune réclamation de ce type n'a été déposée, après avoir préalablement communiqué avec les clients indiqués sur son site Internet.

En bref sur ce qui a été dit


1. Selon la version de l'Institut national des normes et de la technologie, le coût des tests en fin de développement peut dépasser son coût aux étapes initiales de 15 fois et après la publication de 30 fois.

Vous ne voulez pas payer trop cher? Commencez les tests le plus tôt possible!

2. La méconnaissance de son public cible et de ses exigences en matière de produits a enterré de nombreux excellents projets.

Économisez sur l'analyse? Préparez-vous à payer pour le jeu de devinettes!

3. Il est nécessaire d'analyser non seulement l'AC, mais aussi les souhaits des clients. Sur cette base, vous devez être en mesure de définir et de décomposer des objectifs SMART.

Vous ne pouvez pas fixer d'objectifs clairs? Vos objectifs sont incompréhensibles pour le client? Fixez les coûts d'achèvement et de reprise!

4. L'automatisation permet d'optimiser les coûts de test. Mais pas partout et pas toujours.

Pensez-vous que tester avec vos mains est plus rentable? Calculez le ROI de l'automatisation dans plusieurs scénarios et comparez les nombres!

5. Les débutants en tests sont enthousiastes, mais manquent d'expérience. Un bon mentor et un «forfait débutant» augmentent l'efficacité du projet de juin de 2 à 3 fois.

Vous avez marqué les diplômés d'hier pour un prix raisonnable? Préparez-vous à payer un supplément pour leur transformation d'un "singe" en homme!

6. La qualité n'est pas égale à la quantité. Un bon spécialiste coûte plus cher car il donne le meilleur résultat.

Vous ne voulez pas enregistrer, travailler sur le résultat? Ensuite, vous ne devez pas auditer l'équipe de test et optimiser sa composition.

7. L'externalisation des tests vous permet d'obtenir une équipe expérimentée sur le projet avec une garantie du résultat. Mais l'externalisation n'est en aucun cas adaptée à tout le monde.

Vous voulez une solution clé en main avec un prix démocratique? Calculez les avantages de l'État et de l'externalisation, peut-être que la deuxième option sera beaucoup plus rentable.

Au lieu d'un épilogue


La qualité est un concept à multiples facettes, par conséquent, son prix peut varier en fonction de la profondeur de la compréhension de ce terme par une entreprise. Il existe de nombreuses façons d'économiser au détriment de la qualité, mais il n'y a pas beaucoup d'options pour améliorer la qualité sans surpayer. Le respect des principes ci-dessus nous a aidés à gagner une réputation fiable sur le marché et la fidélité de nos clients, et envers les clients eux-mêmes - pour économiser force, ressources et temps.

Essayez ces principes par vous-même, ils sont très simples et donc efficaces. Nous espérons que notre article vous aidera à économiser sur les tests sans compromettre la qualité. Et nous attendons vos questions, idées, suggestions et commentaires dans les commentaires.

Nina Ageeva
Directeur adjoint du laboratoire qualité.

Source: https://habr.com/ru/post/fr440486/


All Articles