<?xml version="1.0" encoding="UTF-8"?><mets:mets xmlns:mets="http://www.loc.gov/METS/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:mads="http://www.loc.gov/mads/" xmlns:metsRights="http://cosimo.stanford.edu/sdr/metsrights/" xmlns:suj="http://www.theses.fr/namespace/sujets" xmlns:tef="http://www.abes.fr/abes/documents/tef" xmlns:tefextension="http://www.abes.fr/abes/documents/tefextension" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.abes.fr/abes/documents/tef/recommandation/tef_schemas.xsd">
<mets:metsHdr CREATEDATE="2025-11-24T16:17:37" ID="ABES.STAR.THESE_241263.METS_HEADER" LASTMODDATE="2026-04-23T08:06:53" RECORDSTATUS="valide">
<mets:agent ROLE="CREATOR">
<mets:name/>
<mets:note>Note</mets:note>
</mets:agent>
<mets:agent ROLE="DISSEMINATOR">
<mets:name>ABES</mets:name>
</mets:agent>
<mets:altRecordID ID="ABES.STAR.THESE_241263.METS_HEADER.ALTERNATE" TYPE=""/>
</mets:metsHdr>
<mets:dmdSec ID="ABES.STAR.THESE_241263.DESCRIPTION_BIBLIOGRAPHIQUE">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_these">
<mets:xmlData>
<tef:thesisRecord>
<dc:title xml:lang="en">Metamodel-based language-agnostic approach to unit test generation from execution traces</dc:title>
<dcterms:alternative xml:lang="fr">Approche indépendante du langage fondée sur des métamodèles pour la génération de tests unitaires à partir de traces d’exécution</dcterms:alternative>
<dc:subject xml:lang="fr">Tests unitaires</dc:subject>
<dc:subject xml:lang="fr">Génération automatique</dc:subject>
<dc:subject xml:lang="fr">Métamodèles</dc:subject>
<dc:subject xml:lang="fr">Traces d'exécution</dc:subject>
<dc:subject xml:lang="en">Test</dc:subject>
<dc:subject xml:lang="en">Automatic generation</dc:subject>
<dc:subject xml:lang="en">Metamodel</dc:subject>
<dc:subject xml:lang="en">Traces</dc:subject>
<dc:subject xsi:type="dcterms:DDC"/>
<tef:sujetRameau xml:lang="fr">
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="169291642" autoriteSource="Sudoc">Systèmes hérités (informatique)</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="034259600" autoriteSource="Sudoc">Migration des systèmes d'information</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="053469844" autoriteSource="Sudoc">Logiciels -- Vérification</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="027235912" autoriteSource="Sudoc">Langages de programmation</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
</tef:sujetRameau>
<dcterms:abstract xml:lang="fr">Les systèmes logiciels hérités manquent souvent de tests unitaires automatisés, ce qui rend difficile la détection des régressions lors de la maintenance ou de la migration. Notre partenaire industriel, Berger-Levrault, est confronté à ce défi, car ses applications sont actuellement en cours de migration depuis des systèmes Java monolithiques vers une architecture « Software-as-a-Service » avec une interface Angular. Pour y remédier, cette thèse étudie la génération automatique de tests unitaires à partir des traces d'exécution du programme afin de capturer le comportement existant du système.Nous utilisons une technique appelée « test carving » pour extraire des tests à partir de traces d'exécution. Une trace est un enregistrement du comportement observé pendant l'exécution qui comprend les valeurs d'entrée et de sortie. Chaque trace peut servir de base à un test unitaire en rejouant le comportement enregistré avec les mêmes entrées et en vérifiant que le résultat correspond à la sortie d'origine. Afin de faciliter l'adoption par les développeurs, nous générons des tests qui reconstruisent les valeurs enregistrées sous forme de code, améliorant ainsi leur lisibilité et leur maintenabilité.Ces abstractions permettent de spécialiser l'approche pour différents langages de programmation et cadriciel de test. Nous avons implémenté notre approche dans un outil concret et l'avons évaluée sur des systèmes écrits en Java et Pharo, couvrant à la fois des logiciels open-source et industriels. Les résultats montrent qu'elle permet de générer des tests lisibles qui capturent les comportements réalistes du système.Dans l'ensemble, ce travail apporte une solution pratique pour dériver des tests de régression pour les systèmes hérités, tout en démontrant comment les abstractions basées sur des métamodèles permettent de créer des tests de manière extensible dans divers contextes techniques.</dcterms:abstract>
<dcterms:abstract xml:lang="en">Legacy software systems often lack automated unit tests, which makes it difficult to detect regressions during maintenance or migration. This challenge is faced by our industrial partner, Berger-Levrault, whose applications are currently being migrated from monolithic Java systems to a Software-as-a-Service architecture with an Angular front-end. To address this, this thesis investigates the automatic generation of unit tests from program execution traces to capture existing system behavior.We use a technique called test carving to extract tests from execution traces. A trace is a record of behavior observed during execution that includes input and output values. Each trace can serve as the basis for a unit test by replaying the recorded behavior with the same inputs and verifying that the result matches the original output. To support developer adoption, we generate tests that reconstruct recorded values as code, improving their readability and maintainability.Our approach is based on abstract representations of code, values, and tests, defined through metamodels. These abstractions make it possible to specialize the approach to different programming languages and test frameworks. We implemented the approach in a concrete tool and evaluated it on systems written in Java and Pharo, covering both open-source and industrial software. The results show that it can generate readable tests that capture realistic system behaviors.Overall, this work contributes a practical solution for deriving regression tests for legacy systems, while demonstrating how metamodel-based abstractions enable extensible test carving across diverse technical contexts.</dcterms:abstract>
<dc:type>Electronic Thesis or Dissertation</dc:type>
<dc:type xsi:type="dcterms:DCMIType">Text</dc:type>
<dc:language xsi:type="dcterms:RFC3066">en</dc:language>
</tef:thesisRecord>
</mets:xmlData>
</mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="ABES.STAR.THESE_241263.VERSION_COMPLETE.DESCRIPTION.EDITION_ARCHIVAGE">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_edition">
<mets:xmlData>
<tef:edition>
<dcterms:medium xsi:type="dcterms:IMT">PDF</dcterms:medium>
<dcterms:extent>1429898</dcterms:extent>
<dc:identifier xsi:type="dcterms:URI">https://pepite-depot.univ-lille.fr/LIBRE/EDMADIS/2025/2025ULILB043.pdf</dc:identifier>
<dc:identifier xsi:type="dcterms:URI">https://theses.fr/2025ULILB043/abes</dc:identifier>
<dc:identifier xsi:type="dcterms:URI"/>
<dc:identifier xsi:type="dcterms:URI">https://theses.hal.science/tel-05600194</dc:identifier>
<dc:identifier xsi:type="dcterms:URI">https://theses.hal.science/tel-05600194</dc:identifier>
</tef:edition>
</mets:xmlData>
</mets:mdWrap>
</mets:dmdSec>
<mets:amdSec>
<mets:techMD ID="ABES.STAR.THESE_241263.ADMINISTRATION">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_admin_these">
<mets:xmlData>
<tef:thesisAdmin>
<tef:auteur>
<tef:nom>Darbord</tef:nom>
<tef:prenom>Gabriel</tef:prenom>
<tef:nomDeNaissance>Darbord</tef:nomDeNaissance>
<tef:dateNaissance>1997-01-14</tef:dateNaissance>
<tef:nationalite scheme="ISO-3166-1">FR</tef:nationalite>
<tef:autoriteExterne autoriteSource="Sudoc">296433497</tef:autoriteExterne>
</tef:auteur>
<dc:identifier xsi:type="tef:nationalThesisPID">https://theses.fr/2025ULILB043</dc:identifier>
<dc:identifier xsi:type="tef:NNT">2025ULILB043</dc:identifier>
<dc:identifier xsi:type="tef:DOI">https://doi.org/10.70675/4033e5bfze619z4833z8942zaf1d712f0bc1</dc:identifier>
<dcterms:dateAccepted xsi:type="dcterms:W3CDTF">2025-12-05</dcterms:dateAccepted>
<tef:thesis.degree>
<tef:thesis.degree.discipline xml:lang="fr">Informatique et applications</tef:thesis.degree.discipline>
<tef:thesis.degree.grantor>
<tef:nom>Université de Lille (2022-....)</tef:nom>
<tef:autoriteExterne autoriteSource="Sudoc">259265152</tef:autoriteExterne>
</tef:thesis.degree.grantor>
<tef:thesis.degree.level>Doctorat</tef:thesis.degree.level>
<tef:thesis.degree.name xml:lang="fr">Docteur es</tef:thesis.degree.name>
</tef:thesis.degree>
<tef:theseSurTravaux>non</tef:theseSurTravaux>
<tef:avisJury>oui</tef:avisJury>
<tef:directeurThese>
<tef:nom>Etien</tef:nom>
<tef:prenom>Anne</tef:prenom>
<tef:autoriteInterne>MADS_DIRECTEUR_DE_THESE_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">102053332</tef:autoriteExterne>
</tef:directeurThese>
<tef:directeurThese>
<tef:nom>Anquetil</tef:nom>
<tef:prenom>Nicolas</tef:prenom>
<tef:autoriteInterne>MADS_DIRECTEUR_DE_THESE_2</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">15665959X</tef:autoriteExterne>
</tef:directeurThese>
<tef:presidentJury>
<tef:nom>Merle</tef:nom>
<tef:prenom>Philippe</tef:prenom>
<tef:autoriteInterne>MADS_PRESIDENT_DU_JURY</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">035777214</tef:autoriteExterne>
</tef:presidentJury>
<tef:membreJury>
<tef:nom>De Roover</tef:nom>
<tef:prenom>Coen</tef:prenom>
<tef:autoriteInterne>MADS_MEMBRE_DU_JURY_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">267614586</tef:autoriteExterne>
</tef:membreJury>
<tef:rapporteur>
<tef:nom>Sunyé</tef:nom>
<tef:prenom>Gerson</tef:prenom>
<tef:autoriteInterne>MADS_RAPPORTEUR_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">151750467</tef:autoriteExterne>
</tef:rapporteur>
<tef:rapporteur>
<tef:nom>Barais</tef:nom>
<tef:prenom>Olivier</tef:prenom>
<tef:autoriteInterne>MADS_RAPPORTEUR_2</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">094608946</tef:autoriteExterne>
</tef:rapporteur>
<tef:ecoleDoctorale>
<tef:nom>École graduée Mathématiques, sciences du numérique et de leurs interactions (Lille ; 2021-....)</tef:nom>
<tef:autoriteInterne>MADS_ECOLE_DOCTORALE_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">258621362</tef:autoriteExterne>
</tef:ecoleDoctorale>
<tef:partenaireRecherche type="laboratoire">
<tef:nom>Centre Inria de l'Université de Lille</tef:nom>
<tef:autoriteInterne>MADS_PARTENAIRE_DE_RECHERCHE_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="labTEL">104752</tef:autoriteExterne>
<tef:autoriteExterne autoriteSource="Sudoc">185432247</tef:autoriteExterne>
</tef:partenaireRecherche>
<tef:partenaireRecherche type="laboratoire">
<tef:nom>Centre de Recherche en Informatique, Signal et Automatique de Lille</tef:nom>
<tef:autoriteInterne>MADS_PARTENAIRE_DE_RECHERCHE_2</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="labTEL">410272</tef:autoriteExterne>
<tef:autoriteExterne autoriteSource="Sudoc">18388695X</tef:autoriteExterne>
</tef:partenaireRecherche>
<tef:partenaireRecherche autreType="Financeur" type="autreType">
<tef:nom>Université de Lille (2022-....)</tef:nom>
<tef:autoriteInterne>MADS_PARTENAIRE_DE_RECHERCHE_3</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">259265152</tef:autoriteExterne>
</tef:partenaireRecherche>
<tef:partenaireRecherche autreType="Financeur" type="autreType">
<tef:nom>Berger-Levrault</tef:nom>
<tef:autoriteInterne>MADS_PARTENAIRE_DE_RECHERCHE_4</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">026498286</tef:autoriteExterne>
</tef:partenaireRecherche>
<tef:oaiSetSpec>ddc:004</tef:oaiSetSpec>
<tef:MADSAuthority authorityID="MADS_DIRECTEUR_DE_THESE_1" type="personal">
<tef:personMADS>
<mads:namePart type="family">Etien</mads:namePart>
<mads:namePart type="given">Anne</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_DIRECTEUR_DE_THESE_2" type="personal">
<tef:personMADS>
<mads:namePart type="family">Anquetil</mads:namePart>
<mads:namePart type="given">Nicolas</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PRESIDENT_DU_JURY" type="personal">
<tef:personMADS>
<mads:namePart type="family">Merle</mads:namePart>
<mads:namePart type="given">Philippe</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_MEMBRE_DU_JURY_1" type="personal">
<tef:personMADS>
<mads:namePart type="family">De Roover</mads:namePart>
<mads:namePart type="given">Coen</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_RAPPORTEUR_1" type="personal">
<tef:personMADS>
<mads:namePart type="family">Sunyé</mads:namePart>
<mads:namePart type="given">Gerson</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_RAPPORTEUR_2" type="personal">
<tef:personMADS>
<mads:namePart type="family">Barais</mads:namePart>
<mads:namePart type="given">Olivier</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_ECOLE_DOCTORALE_1" type="corporate">
<tef:personMADS>
<mads:namePart type="family">École graduée Mathématiques, sciences du numérique et de leurs interactions (Lille ; 2021-....)</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PARTENAIRE_DE_RECHERCHE_1" type="corporate">
<tef:personMADS>
<mads:namePart type="family">Centre Inria de l'Université de Lille</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PARTENAIRE_DE_RECHERCHE_2" type="corporate">
<tef:personMADS>
<mads:namePart type="family">Centre de Recherche en Informatique, Signal et Automatique de Lille</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PARTENAIRE_DE_RECHERCHE_3" type="corporate">
<tef:personMADS>
<mads:namePart type="family">Université de Lille (2022-....)</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PARTENAIRE_DE_RECHERCHE_4" type="corporate">
<tef:personMADS>
<mads:namePart type="family">Berger-Levrault</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
</tef:thesisAdmin>
</mets:xmlData>
</mets:mdWrap>
</mets:techMD>
<mets:techMD ID="ABES.STAR.THESE_241263.VERSION_COMPLETE.EDITION_ARCHIVAGE.TECH_FICHIER.DOSSIER_1.DOSSIER_1.FICHIER_1">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_tech_fichier">
<mets:xmlData>
<tef:meta_fichier>
<tef:formatFichier>PDF</tef:formatFichier>
<tef:taille>1429898</tef:taille>
</tef:meta_fichier>
</mets:xmlData>
</mets:mdWrap>
</mets:techMD>
<mets:rightsMD ID="ABES.STAR.THESE_241263.DROITS_UNIVERSITE">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_etablissement_these">
<mets:xmlData>
<metsRights:RightsDeclarationMD RIGHTSCATEGORY="CONTRACTUAL">
<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
<metsRights:Context CONTEXTCLASS="INSTITUTIONAL AFFILIATE">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
</metsRights:RightsDeclarationMD>
</mets:xmlData>
</mets:mdWrap>
</mets:rightsMD>
<mets:rightsMD ID="ABES.STAR.THESE_241263.DROITS_DOCTORANT">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_auteur_these">
<mets:xmlData>
<metsRights:RightsDeclarationMD RIGHTSCATEGORY="CONTRACTUAL">
<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
<metsRights:Context CONTEXTCLASS="INSTITUTIONAL AFFILIATE">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
</metsRights:RightsDeclarationMD>
</mets:xmlData>
</mets:mdWrap>
</mets:rightsMD>
<mets:rightsMD ID="ABES.STAR.THESE_241263.VERSION_COMPLETE.DROITS">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_version">
<mets:xmlData>
<metsRights:RightsDeclarationMD RIGHTSCATEGORY="CONTRACTUAL">
<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
<metsRights:Context CONTEXTCLASS="INSTITUTIONAL AFFILIATE">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
</metsRights:RightsDeclarationMD>
</mets:xmlData>
</mets:mdWrap>
</mets:rightsMD>
</mets:amdSec>
<mets:fileSec>
<mets:fileGrp ID="ABES.STAR.THESE_241263.VERSION_COMPLETE.EDITION_ARCHIVAGE.FILEGRP" USE="archive_et_diffusion">
<mets:file ADMID="ABES.STAR.THESE_241263.VERSION_COMPLETE.EDITION_ARCHIVAGE.TECH_FICHIER.DOSSIER_1.DOSSIER_1.FICHIER_1" ID="ABES.STAR.THESE_241263.VERSION_COMPLETE.EDITION_ARCHIVAGE.DOSSIER_1.DOSSIER_1.FICHIER_1" SEQ="1">
<mets:FLocat LOCTYPE="URL" xlink:href="ULIL/THESE_241263/document/0/0/These_DARBORD_Gabriel.pdf"/>
</mets:file>
</mets:fileGrp>
</mets:fileSec>
<mets:structMap TYPE="logical">
<mets:div ADMID="ABES.STAR.THESE_241263.ADMINISTRATION ABES.STAR.THESE_241263.DROITS_UNIVERSITE ABES.STAR.THESE_241263.DROITS_DOCTORANT" CONTENTIDS="CONTENTIDS.ABES.STAR.THESE_241263" DMDID="ABES.STAR.THESE_241263.DESCRIPTION_BIBLIOGRAPHIQUE" TYPE="THESE">
<mets:div ADMID="ABES.STAR.THESE_241263.VERSION_COMPLETE.DROITS" CONTENTIDS="CONTENTIDS.ABES.STAR.THESE_241263.ABES.STAR.THESE_241263.VERSION_COMPLETE" TYPE="VERSION_COMPLETE">
<mets:div CONTENTIDS="CONTENTIDS.ABES.STAR.THESE_241263.VERSION_COMPLETE.EDITION_ARCHIVAGE" DMDID="ABES.STAR.THESE_241263.VERSION_COMPLETE.DESCRIPTION.EDITION_ARCHIVAGE" TYPE="EDITION">
<mets:fptr FILEID="ABES.STAR.THESE_241263.VERSION_COMPLETE.EDITION_ARCHIVAGE.FILEGRP"/>
</mets:div>
</mets:div>
</mets:div>
</mets:structMap>
</mets:mets>