Loin d’être une nouveauté, l’automatisation des tests applicatifs pose cependant un problème de ressources : l’analyse des résultats des tests automatiques réclame un temps souvent plus important qu’estimé à l’origine, parfois un temps considérable. Et si l’intelligence artificielle venait à bout de ce problème, permettant aux équipes en charge de la qualité logicielle de ne se concentrer uniquement sur la gestion des exceptions ?
L’automatisation des tests n’est pas une solution miracle
La digitalisation des services et l’accélération du time-to-market ont conduit la plupart des organisations à profondément modifier leurs processus de travail en matière de développement logiciel : méthodes agiles, intégration et livraisons continues, etc. La mise à disposition de nouvelles versions à un rythme de plus en plus soutenu, mais également la multiplication des interconnexions applicatives, rendent l’automatisation des tests incontournable pour maintenir la qualité logicielle dans le temps.
Mais l’automatisation ne rime pas avec la suppression de tous les contrôles : certaines tâches restent encore à la charge des équipes, telles que la maintenance du patrimoine de tests, et bien sûr le traitement des résultats des tests automatisés invalides. Cette charge de travail peut s’avérer particulièrement chronophage pour l’ensemble des acteurs impliqués dans ces projets : ops (opérationnels), développeurs, testeurs et product owner.
En effet, les raisons qui conduisent à des remontées d’erreurs (tests KO) sont au nombre de trois :
- Véritables bugs, vraies régressions ;
- Problèmes liés à la fiabilité du robot (environnement de tests ou scripts d’automatisation inadaptés) ;
- Incohérences ou invalidité du jeu de données de test.
Or à plusieurs centaines de tests par jour, si même seulement 10 % des tests sont KO, ce sont plusieurs dizaines de résultats qu’il s’agit d’analyser. Une masse d’informations qui fait courir le risque d’éluder les problèmes les plus sérieux, susceptibles de dégrader durablement la qualité du code et de générer, à terme, d’importants dysfonctionnements.
Le machine learning et l’IA, pour accélérer le traitement des résultats
Telle qu’on l’envisage aujourd’hui, l’automatisation des tests applicatifs se limite donc à l’exécution des tests eux-mêmes. Mais avec le développement des IA et du machine learning, il est aujourd’hui envisageable d’aller plus loin, et de confier les tâches d’analyse, à la fois ingrates et chronophages, à la machine. En d’autres termes, il s’agit d’automatiser le traitement des résultats des tests automatiques.
Dans les faits, la majorité des résultats des tests sont très répétitifs. Une machine apprenante sait rapidement comprendre et restituer les résultats pour les tests suivants. Nous avons constaté chez un client que jusqu’à 80 % des résultats des tests applicatifs peuvent être traités grâce à l’IA, et notamment l’identification, le tri et la hiérarchisation des anomalies, afin de prioriser les éventuelles actions de correction.
La solution d’IA que nous avons testée et mise en œuvre n’est pas une « grosse machine » gourmande en ressources : nous avons déployé une « petite IA » peu coûteuse, qui a rendu le service attendu. Le principal enjeu est l’apprentissage de la machine. Au départ, cette phase peut s’avérer un peu longue et fastidieuse, mais elle garantit des résultats pertinents sur le long terme.
En route vers le testeur augmenté
Comme dans tous les domaines, l’IA n’a pas pour objet de remplacer l’Humain. Elle lui apporte aide, confort et gain de temps dans son quotidien. Dans ce cas précis, les testeurs peuvent se concentrer sur les anomalies considérées comme de vraies régressions. Et bien sûr analyser et traiter les exceptions, à savoir les lignes de tests pour lesquelles l’IA doute du résultat. Auquel cas, l’Humain prend le relais de l’IA, et c’est bien là toute sa valeur ajoutée.
Dans tous les cas, l’objectif reste d’améliorer la qualité logicielle et de limiter les coûts en supprimant les tâches répétitives et à faible valeur ajoutée, faisables par une machine. De cette façon, l’IA ne remplace pas l’Humain mais permet d’utiliser son intelligence, ses capacités avancées d’analyse et sa créativité à bon escient, au service de tâches que la machine est incapable de produire. En bref, il s’agit, ni plus ni moins, de créer de véritables testeurs augmentés !
Vous souhaitez en savoir plus ? Contactez-nous !
* Ces champs sont obligatoires.
Olivier GIBOT
Ingénieur Conseil – Qualité du SI & Testing
Partager sur :