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

Publié par

2 réponses sur « Test et IA: Où allons-nous? »

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s