La taverne du testeur

Test et IA: Où allons-nous?

J’ai publié en début d’année dernière un article visant à parler des évolutions proches et défis actuels du test. A l’époque je n’avais pas parlé d’IA (Intelligence Artificielle) car considérait que ce défi arriverait mais pas forcément dans les 2-3 prochaines années. C’est toujours mon sentiment mais ces derniers mois j’ai beaucoup appris sur ce sujet, notamment avec des conférences et articles proposés par ALL4TEST et je pense que l’IA va soulever un certain nombre de problématiques et de défis qu’il faudra relever mais aussi qui dépasseront le seul cadre du test.

Faisons tout d’abord le point sur l’état actuel et les services proposés par l’IA dans le test :

1.    La première chose à laquelle on pense c’est tester les IA

En effet, comment tester des Chatbots ? Comment tester des systèmes évolutifs ?

Je dis souvent que le travail du testeur c’est de vérifier la conformité aux spécifications. Ce principe est fortement affaibli avec l’IA. En effet les spécifications indiquant un comportement ne sont sans doute pas testables… Si elles peuvent être écrites.

La conception devient alors également très compliquée, le résultat pouvant dépendre du passé du logiciel. Il faut alors revoir cette conception, penser en terme de personae… Et donc sur des tests plus haut niveau/fonctionnel (voir de l’acceptance). Une stratégie de test basée sur les risques devient également obligatoire.

2.      La seconde c’est les outils d’IA au service du test

Il existe de nombreux outils qui proposent différentes possibilités (pas totalement abouties) pour les tests comme proposer automatiquement :

·        Les tests de spécifications : on peut penser à des outils permettant de vérifier la cohérence des spécifications, le fait de pouvoir écrire les spécifications directement à partir du logiciel… (Stimulus)

·        La prédiction d’anomalie : Détecter les points faibles de l’application à partir du code et des retours déjà eu afin de savoir où chercher pour corriger des bugs « avant » qu’ils n’apparaissent. Un peu comme du shift « extreme » left (proche du TMMI niveau 5) ou un « minority report » des logiciels.

·        Les tests de régression : la possibilité d’écrire les tests de régression directement de façon automatiser afin de limiter le paradoxe des pesticides et… s’il y a un rapprochement avec la prédiction d’anomalie adapter la couverture en fonction ! L’idée est aussi de limiter le nombre de cas de test, le temps d’exécution…

·        Les stress test : partie assez « simple » à automatiser

·        La génération automatique de tests à partir des spécifications : C’est un peu ce qui est fait avec le BDD (HipTest, Yest). La prochaine étape sera de ne plus avoir à « renseigner » des données car elles seront définies par l’IA.

·        L’analyse statique : Analyse directe de code afin de savoir à l’avance si le code rentrera en conflit avec les spécifications. (exemple d’outil : INFER)

·        La génération de données de test : Travail très important permettant d’assurer une couverture fonctionnelle et une pertinence des tests. La génération de données est souvent problématique et il n’est pas rare d’utiliser des « copie » de production pour les tests. (exemple d’outil : EvoSuite)

Bref ceci n’est qu’un aperçu du futur possible. Les outils ne sont pas forcément tous assez performants, accessibles et/ou connus. Néanmoins ils sont annonciateurs de changements irréversibles.

Les changements amenés par l’IA :

Les changements sur comment tester l’IA apporteront forcément des évolutions sur le métier de testeur… Parce que cela va apporter une nouvelle façon de penser. Cela ne devrait par contre pas forcément apporter une révolution plus importante que celle que nous vivons actuellement en passant de cycle en V à des cycles itératifs de plus en plus court qui inclut de nombreuses évolutions culturelles et besoins techniques (automatisation).

Non, de mon point de vue, les changements viendront principalement des outils d’aide aux tests.

Revenons à ce que peuvent proposer les outils et ce que cela « pourrait » signifier :

·        Rédiger des spécifications à partir du code => Plus besoin d’écrire des spécifications et de les maintenir un outil d’IA le fera en mieux

·        Prédiction d’anomalie => Plus besoin d’exécuter des tests

·        Gestion des tests de régression => Plus besoin de les écrire/maintenir ou même de les sélectionner

·        Gestion des stress tests => en allant plus loin cela se généralisera à l’ensemble des tests que l’on appelle « tests de performance ». Il ne faudra plus les gérer.

·        Génération automatique de tests à partir des spécifications => plus besoin de travailler sur la conception des tests ou d’écrire les tests

·        Analyse statique => Possibilité de faire travailler ensemble des IA de développement et de test

·        La génération de données de test => ne plus avoir à se pencher sur comment tester les fonctionnalités, un coup de grâce à la conception des tests.

Bref si on va au bout de ces possibilités l’IA pourrait faire mieux que nous sur : la conception des tests, l’anticipation des anomalies, la stratégie de test, la couverture… Et ce sur tous types de test… Et sur les niveaux composants, intégration et système. Seuls les tests d’acceptance résistant, à mon sens et pour le moment (merci le principe d’illusion d’absence d’erreur !), à cette prise de responsabilités de l’IA.

Il est d’ailleurs intéressant de noter que c’est également les tests d’acceptance (métiers) qui résistent le mieux aux tests de l’IA.

Conclusion :

Assisterons-nous à l’avènement de l’IA, à une prise de pouvoir de cette dernière, perdre totalement le contrôle ? Quand on y regarde de plus près, il n’y a pas besoin de « guerre » (comme dans terminator) pour une prise de pouvoir de l’IA.

Les machines sont capables de toujours plus et nous dépassent largement sur un nombre de plus en plus importants de points. Même sans le machine learning les machines avec IA nous ont dépassés sur des points qui étaient inimaginables il y a encore 20 ans (Go, recrutement de joueurs pour le baseball…).

Dans les faits nous nous reposerons toujours plus sur l’IA, de là à dire que le métier de test disparaitra totalement ? Pourquoi pas ?!?

Cependant je n’y crois pas vraiment. Le test va évoluer. Le nombre de testeurs nécessaire sera par contre surement moins important… Ou moins important en moyenne (avec le CrowdTesting on a besoin de beaucoup de testeurs mais sur un très courte période). Je ne vois par contre pas de prise de pouvoir générale de l’IA, que cela soit dans le test, l’ingénierie logicielle ou tout autre point. En effet, comme nous l’avons vu dans le passé, l’avènement d’un outil permettant de diminuer notre charge de travail nous permet de dégager du temps pour d’autres activités, que cela soit du travail (développement des services) ou non (loisirs, art, recherche…).

Nous remettrons cependant un grand nombre de décisions entre les mains de cette IA… Cela peut sembler provocateur et impensable, néanmoins, quand on y réfléchit sérieusement, nous voyons que nous le faisons déjà avec les algorithmes qui nous proposent des achats (amazon and co), des réponses à nos recherches (google), des suggestions de lecture (réseaux sociaux), des itinéraires optimisés (Waze, GPS) pour ne citer que ceux-là. L’IA n’est donc qu’une « suite logique » dans le développement des outils dont nous disposons en tant qu’humain.

Nombreuses d’informations (notamment sur les outils) prises sur le site d’ALL4TEST. Certaines idées inspirées du Livre Homo Deus (que je recommande moins que Sapiens du même auteur)

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

Une réponse

Laisser un commentaire

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

Outils

Outil de test: générez vos tests avec MaTeLo

MaTeLo en bref MaTeLo est un outil de Model Based Testing permettant de générer ses tests à partir d’un graphique qui a été conçu par un testeur. Contrairement à Yest, le point fort de MaTeLo n’est pas la conception ni la communication (même si un schéma vaut toujours plus que

Lire la suite »
culture générale

A la recherche de la qualité perdue: la route de la sueur et les contrées étrangères

Rappels des chapitres précédents L’application « New Soft » autrefois reconnue pour sa grande qualité n’est maintenant plus que l’ombre d’elle même et est envahie de bugs. Afin de retrouver la qualité perdue les représentants de l’application on nommé une communauté (les fameux Antoine le Berserker (surnommé BA), Délphine la Valkyrie (surnommée

Lire la suite »
Campagnes

Passer des tests de validation aux tests de régression

Introduction : Passer des tests de validation aux tests de régression, oui, mais c’est quoi les tests de validation et les tests de régression. Et surtout pourquoi ce passage ? En quoi cela est-il utile ? Pour quelles méthodes de travail ? J’espère qu’après avoir lu cet article vous aurez une réponse à toutes

Lire la suite »