Si vous avez l’habitude de lire mes articles ou de la taverne du testeur, le terme « Crowdtesting » ne vous est pas inconnu! Ce thème a déjà fait l’objet de quelques articles dont une série poussée faite en collaboration avec Stardust.
Il ne vous aura pas échappé que, dans « Crowdtesting » il y a le mot « Crowd » que l’on pourrait traduire par « la foule ». Littéralement le Crowdtesting revient à faire tester son logiciel par « la foule ». Si ce terme peut paraître flou et assez abstrait il existe néanmoins une science qui étudie le comportement de cette dernière et que je connais sous le nom de « Fouloscopie ».
J’ai eu le plaisir de connaître cette science grâce à la chaîne YouTube d’un chercheur français que je recommande vivement et qui s’appelle Fouloscopie. Remarquez que, comme je l’écrivais dans un article récent, s’intéresser à de nombreux sujets nous aide dans notre vie de testeur !
Que retenir de la foule ?
La foule n’est pas une masse informe et totalement aléatoire. La foule n’est pas non plus « stupide » (je pense par exemple aux moutons de panurge) et peut même s’avérer très performante (voire plus que certains experts) sur certaines problématiques ! Il y a eu par exemple des expériences comme :
- « La foule » contre Kasparov aux échecs. Kasparov jouait contre 50 000 joueurs amateurs. Chaque « coup » joué par la foule était en fait le coup le plus voté par la foule. Au final la partie a été très serrée et la « foule » a crée un nouveau « coup » (le 10ème coup de la foule) qui a fortement déstabilisé Kasparov et changé la méta aux échecs. « La foule » s’est donc retrouvée ici comme quasiment aussi forte que le meilleur du monde.
- « La foule » peut permettre de résoudre des problèmes beaucoup plus rapidement que des équipes de scientifiques (3 semaines pour trouver une solution pour la foule au lieu de plusieurs années d’échecs (11m20s))
- « La foule » est très efficace pour estimer une valeur (6m50s) (ex : estimer un poids, une population, un nombre de pâtes dans un bocal, la température de fusion de l’aluminium)… On parle du théorème de la sagesse de la foule.
Bref, la foule arrive à faire beaucoup de choses très bien et très rapidement… A condition de savoir comment l’orienter. Cette capacité, elle le doit à sa diversité, au temps cumulé de cerveau utilisé… et aux statistiques.
L’idée est d’utiliser la foule afin de créer une intelligence collective. Le sujet est très vaste et a fait l’objet de nombreux travaux comme ceux de Pierre Lévy et plus particulièrement son projet IEML un méta langage qui a pour but de représenter l’intelligence collective.
Quel apport de la foule au test en général ?
Le Crowdtesting se sert de la foule pour tester des systèmes, vérifier leur fonctionnement !
De par sa diversité,la foule va exécuter un très grand nombre de scénarios incluant la totalité de ceux que le meilleur testeur du monde accompagné de la meilleure équipe du monde auraient conçus mais aussi de nombreux autres !
De par son temps cumulé de temps investi, la foule testera beaucoup plus longtemps (charge de test) que n’importe quelle équipe, et en un temps beaucoup plus faible. Cela pourra notamment permettre de faire de nombreux tests non fonctionnels comme des tests de charge et d’adaptabilité.
De par cette diversité et le temps cumulé, la foule trouvera statistiquement beaucoup plus de failles avec des comportements spécifiques. On remarque par exemple cela avec les Speedrun dans les jeux vidéo.
Le Crowdtesting est donc forcément une bonne solution ?
Non, tout ce qui est dit à la partie précédente est vraie… mais dépend du contexte et de certaines conditions. En effet, une foule est manipulable (comme on peut le voir avec la propagation des fake news), une foule peut aussi, faute d’orientation correcte, être amenée à faire des actions totalement stupides.
De plus, selon le contexte, un logiciel ne peut pas être testé par la foule ! De même, la présence de spécialistes du test est et restera obligatoire. Malgré le théorème de la sagesse de la foule, il est beaucoup plus simple et rapide de demander l’avis à une personne plutôt qu’à des milliers !
Enfin, si la foule n’est pas bien orientée (ou que cette dernière a des leaders qui influent sur un grand nombre de personnes), alors on perd, au moins en partie, un grand nombre de ses facultés.
Dans l’état actuel des choses, le Crowdtesting a démontré son efficacité sur ces types de contexte:
- L’utilisabilité en général
- Les configurations multiples et massivement variées (comme avec les modèles de téléphones, leurs OS, les applications installées, la localisation…)
- La répartition géographique
- Une diminution des coûts d’exécution (mais avec l’émergence de coûts de plateforme et d’organisation)
Il est bon de noter que seuls les 2 premiers points se servent des compétences de la foule!
De même, toujours à l’heure actuel, le Crowdtesting montre certaines limites dans:
- la mesure des couvertures et de la profondeur des tests
- la gestion et l’unicité des anomalies (éviter les doublons)
- la faible proportion de tests négatifs si les crowdtesteurs ne sont pas guidés
- le contexte d’un SUT (System Under Test – logiciel testé) critique où les anomalies peuvent avoir des conséquences vitales
Comment utiliser le Crowdtesting pour bien se servir de la foule ?
Utiliser la « foule » pour tester demande donc une bonne préparation. Le Crowdtesting, comme déjà indiqué dans certains des articles de la taverne peut permettre de faire des tests localisés, de faire des tests grandeur nature, d’avoir beaucoup de testeurs en peu de temps et pour peu de temps… Néanmoins cela demande aussi une forte préparation en amont.
Pour réussir une campagne de Crowdtesting, il faut bien la préparer… Et une préparation de campagne de Crowdtesting n’est pas la même chose que la préparation d’une campagne de test habituelle… Tout simplement car une campagne de test habituelle n’est pas exécutée par une foule !
La préparation de la campagne de Crowdtesting est particulièrement importante et doit être encore plus préparée que l’externalisation de campagne! Ces changements induisent de nouvelles manières de préparer ses tests.
Peut-on aller plus loin avec le Crowdtesting ?
Le Crowdtesting est actuellement vu comme un moyen de faire des tests d’adaptabilité, de faire de la localisation, de faire du test exploratoire en sélectionnant certains profils prédéfinis.
Je pense que ce n’est qu’une part infime de ce que la foule peut apporter au test !
En effet, le Crowdtesting peut faire plus que simplement servir à faire certains tests spécifiques. La foule devrait pouvoir permettre de mettre en place des plans de test, imaginer des méthodes de conception, donner des retours d’expériences, proposer des nouvelles fonctionnalités… La seule limite pour amener le Crowdtesting plus loin est en fait notre imagination.
On peut également imaginer d’autres moyens de se servir des compétences de la foule et de l’intelligence collective comme:
- se servir des doublons des anomalies pour établir des courbes statistiques et identifier la probabilité d’occurrence des anomalies. Cela peut ensuite servir de base pour recentrer les efforts de correction de l’équipe de développement.
- allier la campagne de test de la foule avec des outils de mesures performants et pousser le Shift right à la bêta test de la foule
- Se servir des tests de la foule comme un moyen de comptage des bugs et faire un parallèle avec le travail des biologistes qui font des prélèvements sur une zone, font un marquage et après un certain temps, ils refont un autre prélèvement pour observer combien sont marqués et combien ne le sont pas pour extrapoler la population globale de cette zone. Ce qui permettrait également de mesurer l’évolution de la population des anomalies.
- Enfin, en allant plus loin il est toujours possible d’imaginer une modélisation de la foule où chaque individu deviendrait une « particule » et dériver sur des modèles comme la planche de Galton ou les fentes d’Young.
Conclusion
La foule est l’association de nombreux cerveaux humains. Plusieurs cerveaux « moyens » deviennent vite un super cerveau à condition de savoir s’en servir. Le Crowdtesting part de ce principe mais ne va pas forcément, à ce jour, aussi loin qu’il le pourrait… Les possibilités étant virtuellement infinies, le crowtesting actuel ne propose, selon moi, qu’un échantillon assez faible de ces possibilités.
A quand une nouvelle vision du Crowdtesting proposant une expérience totalement nouvelle et dépassant les « normes » actuelles ?
Il est bon de noter que la foule peut même dépasser le « Crowdtesting ». Il existe par exemple, une pratique connexe qui utilise l’IA et où le but est d’étudier les logs pour générer des campagnes de régression. Dans ce cas la foule crée les logs permettant de générer la campagne.
Bref, la foule est puissante, il faut apprendre à l’appréhender et à s’en servir (dans les limites du respect de la vie privée) afin de lui permettre de contribuer, comme pour la science, à améliorer le test.
Et vous ? Quelle vision avez-vous de la foule ? Qu’imaginez-vous pour améliorer le Crowdtesting et le test en général en se servant des compétences de notre nouveau testeur nommé foule et qui dispose d’une intelligence collective impressionnante ?
Merci à Zoé Thivet, Olivier Denoo, Benjamin Butel et Christophe Moustier pour leurs relectures et leurs conseils. Il me semblait inconcevable de parler de la « foule » sans proposer un article un minimum collectif!
Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test
Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles
N’hésitez pas à faire vos propres retours d’expérience en commentaire.
Publié par