La taverne du testeur

Externaliser ses tests: pourquoi et comment ?

Aujourd’hui nous aborderons un sujet délicat: l’externalisation des tests. Il existe déjà un article  sur l’externalisation des tests mobiles dans la taverne, n’hésitez pas à le lire.

L’article aborde ce sujet différemment. L’externalisation des tests est toujours une possibilité, encore faut-il pourquoi et quand la faire, mais aussi comment la préparer… car externaliser ses tests sans préparation c’est saboter cette externalisation.

A noter: nous parlerons ici de l’externalisation de l’exécution/analyse/maintenance des tests mais pas de leur conception.

Pourquoi externaliser ses tests?

Il y a plusieurs raisons pour lesquelles on peut vouloir externaliser ses tests, en voici une liste non exhaustive:

  1. On souhaite avoir une forte indépendance des tests. L’indépendance des tests est un point important qui est bien expliciter dans le syllabus ISTQB. Plus un test est indépendant, plus il est partial… La contrepartie est souvent une connaissance plus faible de l’application.
  2. On souhaite pouvoir tester sur un très grand nombre d’environnements (ou devices) et il est impossible d’avoir les environnements et le matériel nécessaire. On parle ici d’adaptabilité. Ce problème est fréquent avec les applications mobiles grand public. Dans ce cas l’externalisation des tests peut être une solution… tout comme des bêta test (sous forme de crowdtesting par exemple).
  3. Les compétences en test ne sont pas disponibles. Ce point peut fréquemment arriver lorsque l’on parle automatisation des tests.
  4. La qualité en production de mon application n’est pas au rendez-vous. Cela rejoint en partie le point précédent.
  5. On souhaite accélérer le temps d’exécution des tests. Cela peut également être une raison valable dans le cas où la campagne nécessite un grand nombre de jours/homme (ex: 40 jours/hommes) de travail et que le nombre de testeurs disponibles (ex: 2 testeurs) ne permet pas d’exécuter assez rapidement tous les tests (1 semaine de campagne).
  6. Diminuer les coûts. C’est également une raison pour laquelle on peut vouloir externaliser. Cette diminution des coûts peut être obtenu par la suppression du besoin d’achats de certains licences.

Quels sont les risques de l’externalisation?

Externaliser ses tests n’est pas anodins et n’est pas sans risque! Dans les principaux risques il y a:

  1. Un manque de connaissance de la nouvelle équipe et donc la dégradation des tests qui entrainera une baisse de la qualité de l’application.
  2. Un manque ou une mauvaise communication qui entraine des incompréhensions
  3. Des problèmes de délais. Les problèmes de délais peuvent également arriver avec de l’externalisation, il faut être vigilant sur ce point.
  4. Une perte de connaissance sur les tests de l’équipe en place. Cette perte de connaissance est induite par la non « maitrise » des tests.
  5. Une dépendance envers le client externe suite à la perte de connaissance.
  6. Des aspects contractuels trop lourds prenant le pas sur l’intérêt du logiciel. Ce type de problème peut arriver dès lors où l’on travaille avec un partenaire, que cela soit de l’externalisation des  tests ou tout autre aspect du projet.

Que faire lorsque l’on souhaite externaliser ses tests?

Il n’y a pas de formule miracle. Néanmoins certaines actions/bonnes pratiques sont nécessaire:

  1. Prévoir en amont (de préférence dès l’élaboration du plan de test) l’externalisation des tests afin de bien la préparer. Une externalisation ne se fait pas à la légère. C’est une décision importante qui oriente la manière de travailler et qui doit être préparée. Ce point permet de limiter le risque de manque de connaissance de la nouvelle équipe et de manque de communication.
  2. Garder certaines activités de test (comme la conception et l’exécution des tests de validation). Cela permet de limiter les risques de perte de connaissance de l’équipe et de dépendance.
  3. Garder au moins un référent sur les tests afin de dialoguer avec le client externe. Cette action permet de fortement réduire les risques de perte de connaissance, de dépendance mais aussi de manque ou de mauvaise communication.
  4. Avoir une bonne documentation du logiciel dans son ensemble ainsi que des tests à externaliser très bien écrits et documentés (non sujets à interprétation). C’est primordial car les testeurs ne connaîtront pas le logiciel ni le contexte. Il sera impossible de compter sur la connaissance du testeur interne qui connait parfaitement l’application! Cette partie permet de limiter le risque de manque de connaissance de l’équipe externe.
  5. Prévoir du temps pour un passage de connaissance entre les équipes. Ce temps est malheureusement trop souvent sous-estimé mais reste nécessaire. Cela permet de limiter le risque de manque de connaissance et de problèmes de délais pour cause de monter en compétence de l’équipe externe.
  6. S’engager avec un partenaire de confiance avec lequel il sera possible d’établir une vraie collaboration. Cela peut paraitre évident ou futile mais il est important de le rappeler. C’est d’ailleurs un des 4 points du manifeste agile (la collaboration plus que les contrats). Il faut également s’assurer que son partenaire potentiel dispose des moyens nécessaires afin de mener à bien les tests que nous pouvons difficilement faire en interne. Bien choisir son partenaire externe permet de limiter les risques de connaissance (avec un partenaire expérimenté dans le test), de communication (avec une bonne collaboration) mais surtout éviter de n’échanger qu’autour du contrat.

Conclusion

Il y a un très grand nombre de raisons d’externaliser ses tests. Il faut cependant jamais le faire à la légère et toujours bien préparer cette externalisation. Afin de bien préparer cette externalisation il faut identifier pourquoi on veut externaliser et quels sont nos besoins. Cette partie devrait se faire lors de l’établissement du plan de test maitre. Cette externalisation doit alors être anticipée, préparée en proposant une documentation et des tests simples, clairs et fiables. Il faut également faire attention à toujours garder la connaissance des tests au sein de l’équipe et bien choisir son partenaire pour externaliser ses tests, partenaire qui devra être dans une démarche et collaboration mais également dans la capacité de bien réaliser ces tests (outils, environnements, personnel…)

 

Pensez à rejoindre le groupe Le métier du test si le test vous intéresse !

N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Agilité

La sobriété, prochain gros challenge du test ?

Lors d’un précédent article, je parlais d’évolution et du fait qu’elle ne rimait pas avec « toujours plus » ou « innovation »! L’évolution est, comme Darwin l’a postulé, avant tout une affaire d’adaptation. Dans le cas du test j’ai parler d’adaptation au contexte et il semble donc opportun, pour essayer d’anticiper les prochaines

Lire la suite »
Agilité

Le test en image (9)

Il y a 8 familles de tests définies par l’ISO-25010 afin de mesurer la qualité d’une application. Les tests fonctionnels ne représentent qu’une seule de ces familles: L’ATDD et le BDD c’est une sorte de fusion entre les tests et les spécifications: De même, la différence principale entre l’ATDD et

Lire la suite »
Stratégie

A partir de quand faut-il faire évoluer ses tests ?

Introduction Le paradoxe du pesticide est un des 7 principes du test et probablement celui qui a fait l’objet du plus grand nombre d’articles dans la taverne. Cet article met en avant la nécessité de faire évoluer ses tests car ces derniers sont de moins en moins efficaces! Savoir qu’il

Lire la suite »