L’apprentissage automatique prend une part croissante dans les systèmes logiciels de notre quotidien. Il repose sur un programme apprenant qui traite des données d’entraînement et produit des modèles à mettre en production. L’apprentissage en ligne permet de construire ces modèles itérativement et de les faire évoluer au fil des données rencontrées. Les phases d’apprentissage et de production y sont entremêlées, les données d’entrées étant traitées à la fois par le programme apprenant et le modèle.
Les équipes de développement conçoivent et réalisent leurs propres programmes apprenants ou réutilisent des solutions existantes. Dans les deux cas, il faut vérifier que ces programmes se comportent comme attendu, qu’ils sont sans défaut et adaptés au domaine d’application, ou encore comparer plusieurs versions. Le test est un moyen d’y parvenir.
Cette thèse distingue le test d’un modèle du test d’un programme appelant et cible le test de programmes apprenant en ligne. L’objectif est de vérifier le comportement de ces derniers, i.e., de vérifier qu’ils construisent des modèles en accord avec les données d’entraînement. Les difficultés rencontrées résultent principalement de la nature complexe des programmes apprenants et des modèles produits, de celle des domaines d’application et des résultats attendus, ainsi que du non déterminisme et de l’absence d’oracle de test.
Une approche de test à base de scénarios est proposée. Un scénario définit une séquence d’interactions entre le programme apprenant et les données. Une interaction d’apprentissage décrit une situation dans laquelle le modèle doit produire une sortie ainsi que la sortie « correcte ». Une interaction d’évaluation décrit aussi une situation ainsi qu’une propriété attendue sur la sortie produite. Le comportement du programme apprenant est ainsi testé indirectement, via le comportement du modèle produit.
La définition des scénarios est à la charge d’un expert du domaine et repose sur ses connaissances « métier ». Cette activité complexe et coûteuse ne garantit pas une couverture satisfaisante du domaine. Pour répondre à ce problème, cette thèse propose une solution de génération et de sélection automatiques de scénarios. Elle est basée sur l’identification d’intentions et de patterns de test et sur un partitionnement du domaine en régions. L’Adaptive Random Testing (ART), basé sur la stratégie Select Test From Candidates et une métrique de distance entre scénarios, permet de construire itérativement un jeu de test en sélectionnant, parmi l’ensemble des scenarios possibles, ceux qui sont les plus éloignés de ceux déjà retenus.
Le cadre de ce travail est le projet de composition logicielle opportuniste mené dans notre équipe : le moteur de composition opportuniste (Opportunistic Composition Engine) apprend en ligne les préférences de l’utilisateur sur la configuration logicielle de son environnement ambiant. Le test à base de scénario a été mis en œuvre au travers de trois outils. OCE Scenario Maker permet au testeur de concevoir et d’implémenter des scénarios de test d’OCE. OCE Scenario Runner automatise l’exécution des scénarios en interaction avec OCE, en se substituant à l’utilisateur et à l’environnement ambiant. Enfin, OCE Scenario Crafter implante la solution à base d’ART et construit automatiquement des jeux de test.
Une première expérimentation, basée sur Maker et Runner, a permis de révéler la présence de défauts dans OCE et de mettre en évidence des contextes d’utilisation plus ou moins favorables. D’autres expérimentations, basées sur Crafter et Runner, ont permis de comparer la solution à base d’ART avec le Random Testing. D’une part, elles ont montré que le surcoût de l’ART est limité, établissant ainsi la viabilité de l’approche. D’autre part, pour un ensemble de régions représentatif des différents cas d’utilisation d’OCE, elles ont montré une meilleure couverture du domaine et, en procédant par Mutation Testing, une capacité supérieure à révéler des défauts. |
Machine learning is playing an important role in the software systems we use every day. It relies on a learning program that processes training data and generates models for deployment. Online machine learning allows these models to be built iteratively and adapted as new data is encountered. The training and operation phases are intertwined, with input data being processed by both the learning program and the model.
Development teams design and build their own learning programs or reuse existing solutions. In both cases, it is necessary to check that these programs behave as expected, that they are defect-free and suitable for the application domain, or to compare multiple versions. Testing is a way to achieve this.
This thesis distinguishes testing a model and testing a learning program, and focuses on testing online learning programs. The aim is to check the behavior of these programs, i.e., to check that they build models in accordance to the training data. The issues encountered stem primarily from the complex nature of a learning program and the models it produces, the complexity of the application domains and expected results, as well as the non-determinism nature and the lack of a test oracle.
A scenario-based testing approach is proposed. A scenario defines a sequence of interactions between the learning program and the data. A learning interaction describes a situation in which the model must produce an output as well as the “correct” output. An evaluation interaction also describes a situation as well as an expected property of the produced output. The behavior of the learning program is thus tested indirectly, by the behavior of the produced model.
The design of scenarios is the responsibility of a domain expert and relies on their “domain” knowledge. This complex and costly activity does not guarantee a good coverage of the domain. To address this issue, this thesis proposes a solution for the automatic generation and selection of scenarios. It is based on the identification of test intentions and patterns and on a partitioning of the domain into regions. Adaptive Random Testing (ART), based on the Select Test From Candidates strategy and a metric of distance between scenarios, allows the iterative build of a test suite by selecting, from the set of all possible scenarios, those that are furthest from those already selected.
The scope of this work is the Opportunistic Software Composition research project led by our team: the Opportunistic Composition Engine (OCE) learns online the user's preferences regarding the software configuration of their ambient environment. The proposed approach was implemented through three tools. OCE Scenario Maker allows the tester to design and implement OCE test scenarios. OCE Scenario Runner automates the execution of scenarios in interaction with OCE, acting as a substitute for the user and the ambient environment. Finally, OCE Scenario Crafter implements the ART solution and automatically build test suites.
An initial experiment, based on Maker and Runner, revealed the presence of defects in OCE and highlighted usage contexts that were more or less favorable. Further experiments, based on Crafter and Runner, enabled a comparison of the ART solution with Random Testing. On the one hand, they showed that the additional cost of ART is limited, thereby establishing the viability of the approach. On the other hand, for a set of regions representative of the various use cases of OCE, they desmonstrated better domain coverage and, by using Mutation Testing, a better ability to detect defects. |