Thèse Tests automatisés des systèmes informatiques par apprentissage sur les données d'usage et les métadonnées du développement F/H
CDI Pessac (Gironde) Développement informatique
Description de l'offre
about the role
Votre rôle est d'effectuer un travail de thèse sur les : Tests automatisés des systèmes informatiques par apprentissage sur les données d'usage et les métadonnées du développement.
Contexte :
Ce sujet de thèse, intitulé « Tests automatisés des systèmes informatiques par apprentissage sur les données d'usage et les métadonnées du développement » vise à développer une solution de tests automatisés fondée sur les techniques d'Intelligence Artificielle. Plus précisément, ce projet de recherche permettra d'exploiter les traces d'exécution à l'usage et lors des phases de tests manuels et automatisés, pour créer et maintenir en continu les scripts de test de régression.
Au regard de l'extension des pratiques Agile du développement logiciel, les tests logiciels constituent un goulet d'étranglement des projets. C'est en particulier le cas pour les tests de régression où l'automatisation est couteuse, à la fois à leur création et aussi à leur mise à jour lors des évolutions du système testé.
Ce projet de recherche s'inscrit dans une collaboration scientifique d'Orange Labs Services avec plusieurs partenaires académiques et industriels au travers du projet ANR PHILAE. La thèse visera le développement et l'évaluation des techniques de production et maintien par l'IA des tests automatisés de régression dans le contexte des applications du SI Orange. Le travail réalisé contribuera à un outillage open-source réalisé avec les partenaires du projet PHILAE.
Etat de l'art :
Ce projet de recherche se situe dans un courant devenu très actif du Génie Logiciel consistant à utiliser des techniques d'apprentissage automatique (typiquement du machine learning avec des réseaux de neurones récurrents) pour automatiser des activités de créations d'artefacts du logiciel.
Dans le contexte de ce projet de recherche sur l'utilisation de l'IA pour le test, plusieurs directions de recherche sont fondées sur l'utilisation du Machine Learning pour interpréter des données du développement logiciel. Voici plusieurs travaux récents qui seront représentatifs des recherches en cours dans la communauté de la recherche en tests logiciels :
· [1] Busjaeger et Xie ont proposé des heuristiques pour apprendre comment prioriser les cas de test dans un environnement industriel (Salesforce.com) par des techniques d'apprentissage supervisé.
· En utilisant l'apprentissage non supervisé, une méthode de clustering a été mise au point pour sélectionner les tests de régression [2], et une combinaison d'algorithmes génétiques et de clustering a été utilisée pour sélectionner les cas de test dans un cadre d'optimisation des tests multi-objectifs [3].
· L'apprentissage par renforcement a été utilisé pour tester les API logicielles en sélectionnant successivement les appels à l'API dans le but d'augmenter la couverture de test dans [4]. En outre, l'apprentissage par renforcement a été utilisé pour générer des cas de test pour les tests d'interopérabilité basés sur les risques [4]. Dans un contexte différent, Spieker et al. ont appliqué l'apprentissage du renforcement pour sélectionner et prioriser les cas de test en intégration continue [5].
Tous ces travaux récents montrent la dynamique de recherche du domaine, mais avec des objectifs spécifiques poursuivis à chaque fois. Le projet de recherche pour cette thèse vise spécifiquement l'exploitation des traces d'exécution pour le calcul des tests.
Se référer à la section 3 « Le plus de l'offre » pour des informations détaillées sur la mission scientifique et les principales activités associées à la thèse.
about you
Vous avez un Master ou un diplôme d'ingénieur en informatique et vous disposez d'une expérience en recherche (stage en laboratoire ou en équipe R&D).
additional information
Objectif scientifique - verrous à lever
L'objectif de la thèse est de développer, en lien avec le projet ANR PHILAE, des techniques à base de Machine Learning pour la création et la maintenance des scripts de tests automatisés. Il s'agit d'un objectif ambitieux, de nature à avoir un impact fort sur le développement logiciel en automatisant l'automatisation des tests de régression. Les principaux verrous technologiques et de recherche sont les suivants :
· Quels modèles d'apprentissage seront les plus performants pour l'analyse de données de traces d'exécution permettant d'identifier des traces candidates pour devenir des tests ? Plusieurs modèles de réseaux de neurones seront expérimentés, tels que les modèles LTSM (Long short-term memory). Des librairies existantes de Machine Learning seront utilisées pour cela telles que Scikit-Learn et Waka.
· Comment reconstruire les scripts automatisés à partir des traces sélectionnées avec les techniques d'apprentissage ? Sur ce point, il s'agira aussi d'utiliser des techniques d'IA pour identifier et adapter les mots d'action de test automatisé permettant la construction des scripts exécutables.
Approche méthodologique-planning
Le travail de thèse combinera des aspects théoriques (en particulier sur les modèles d'apprentissage automatique pour la sélection des traces) avec des aspects expérimentaux dans le contexte de projets Orange Labs Services.
La première année, essentiellement sur l'analyse de l'état de l'art et les premières approches techniques, est organisée de la façon suivante :
· Du démarrage (T0) à T0+4 : travail de revue de l'état de l'art, le contexte des applications Orange Labs Services, ainsi qu'une première application de la production des scripts de tests à partir des traces d'exécution. Une première évaluation de l'approche dans un contexte proposé par Orange Labs Services.
· De T0+4 à T0+9 : réalisation d'une première implémentation du processus avec document méthodologique et mise en place d'une évaluation fondée sur un protocole scientifique.
· De T0+9 à T0+12 : conceptualisation de l'approche et positionnement par rapport à l'état de l'art.
La deuxième année portera sur le développement d'outillage open-source support pour accroitre le degré d'automatisation du processus.
La troisième année, essentiellement sur la validation opérationnelle, permettra une validation de l'approche dans les différents contextes réels et un passage à l'échelle.
Ce travail de thèse sera accompagné de façon régulière par des publications dans des conférences du domaine (telle que IEEE ICST - International Conference on Software Testing, Verification and Validation par exemple). 1 conférence de qualité (rang B) en année 2 et 2 conférences de qualité (au moins rang B) en année 3 sont visées.
department
Au sein d'OLS/IVA/B2R (Orange Labs Services / Intégration Validation Automatisation / Build to Run), notre équipe DOC (Déploiement et Orchestration dans le Cloud) fait la promotion du DEVOPS en contexte Cloud (IaaS, CaaS, PaaS) et propose un support d'excellence sur l'automatisation du Delivery en mode containeurs (chaines Continous Integration/Continous Delivery, Docker, Kubernetes, GitLab, Katalon, …). Notre équipe contribue à des projets de recherche et tout particulièrement sur la 5G (Ultra Agile 5G et Release Management) ou sur l'intelligence Artificielle et le test (PHILAE).
Qu'est ce qui fait la valeur ajoutée de cette offre ?
Travail dans le cadre du projet PHILAE, pour améliorer la qualité de l'offre orange et des matériels sous-jacents. Ce travail sera mené en collaboration avec le consortium : 2 laboratoires de recherche (Norvège, Australie), 2 universités (Franche Comté et Rhones Alpes), 2 entreprise (Orange et Smartest).
Références :
[1] Benjamin Busjaeger, Tao Xie, Learning for test prioritization: an industrial case study, Proc. of the 24th ACM SIGSOFT Int. Symp. on Foundations of Soft. Eng., Seattle, WA, USA, 975-980, 2016
[2] Songyu Chen, Zhenyu Chen, Zhihong Zhao, Baowen Xu, Yang Feng, Using semi-supervised clustering to improve regression test selection techniques, 4th IEEE Int. Conf. on Software Testing, Verification and Validation, Berlin, March 2011
[3] D. Pradhan, S. Wang, S. Ali, T. Yue and M. Liaaen, CBGA-ES: A Cluster-Based Genetic Algorithm with Elitist Selection for Supporting Multi-objective Test Optimization, In 10th IEEE International Conference on Software Testing, Verification and Validation (ICST 2017). IEEE, 2017.
[4] Alex Groce, Alan Fern, Jervis Pinto, Tim Bauer, Amin Alipour, Martin Erwig, and Camden Lopez. Lightweight Automated Testing with Adaptation-Based Programming, In IEEE Int. Symp. on Software Reliability Engineering (ISSRE), pages 161-170, Dallas, Texas, November 2012.
[5] Helge Spieker, Arnaud Gotlieb, Dusica Marijan, Morten Mossige, Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration, in Proc. of 26th Int. Symp. on Software Testing and Analysis, Santa Barbara, CA, USA, July 2017 (ISSTA'17), 2017.
contract
Thesis