Cherief, Houcine Abdelkader (2026). Amélioration des techniques de génération de traces d’exécution sur des applications Android pour la détection dynamique de défauts de code. Mémoire de maîtrise électronique, Montréal, École de technologie supérieure.
Prévisualisation |
PDF
Télécharger (1MB) | Prévisualisation |
Résumé
Les applications mobiles sont devenues essentielles dans notre vie quotidienne, ce qui fait de la qualité du code une préoccupation critique pour les développeurs. Les défauts de code comportementaux sont des caractéristiques présentes dans le code source qui induisent un comportement inapproprié lors de l’exécution, affectant négativement la qualité logicielle en termes de performance, de consommation d’énergie et d’utilisation de la mémoire.
L’analyse dynamique s’est révélée efficace pour la détection des défauts de code comportementaux dans les applications Android. Bien qu’elle surpasse les outils d’analyse statique, elle nécessite une couverture élevée des événements liés à ces défauts, définis comme des instructions ou des appels de méthodes spécifiques associés à des comportements inappropriés du code. En pratique, cette limitation se traduit par un taux élevé de faux négatifs, laissant de nombreuses instances de défauts de code non détectées.
Les grands modèles de langage (LLM) ont récemment démontré des avancées significatives dans divers domaines de recherche et offrent un potentiel prometteur pour la génération de traces d’exécution intelligentes, en particulier pour la détection des défauts de code comportementaux dans les applications Android. La trace d’exécution intelligente désigne une séquence d’événements générée par des actions ciblées visant à déclencher et observer des comportements spécifiques de l’application.
Ce mémoire propose les principales contributions suivantes : (1) DynamicsLLM, un outil de l’analyse dynamique, qui exploite les LLM afin de générer intelligemment des traces d’exécution. (2) Une approche hybride conçue pour améliorer la couverture des événements liés aux défauts de code, en particulier pour les applications comportant un nombre limité d’activités Android. (3) Une validation de DynamicsLLM sur 307 applications mobiles libres accès provenant de F-DROID, incluant une comparaison avec le dernier outil de l’état de l’art Dynamics. Les résultats montrent que, sous un nombre limité d’actions sur l’interface, DynamicsLLM utilisant uniquement les LLM couvre jusqu’à trois fois plus d’événements liés aux défauts de code que Dynamics. L’approche hybride améliore la couverture des LLM de 22.6% pour les applications contenant peu d’activités. De plus, 14% des événements liés aux défauts de code qui ne peuvent pas être déclenchés par Dynamics sont effectivement déclenchés par DynamicsLLM. (4) Enfin, une stratégie d’exploration fondée sur l’UCB (Upper Confidence Bound) est introduite, qui obtient 12,9% de couverture supplémentaire par rapport à l’hybride sur les applications de taille moyenne, tout en offrant des performances compétitives pour les autres catégories.
Titre traduit
Improving execution-trace generation techniques for Android applications for the dynamic detection of code smells
Résumé traduit
Mobile apps are essential to our daily lives, making code quality a critical concern for developers. Behavioural code smells are characteristics in the source code that induce inappropriate code behaviour during execution, which negatively impact software quality in terms of performance, energy consumption, and memory.
Dynamic analysis has proven effective for detecting behavioral code defects in Android applications. Although it outperforms static analysis tools, it requires high coverage of code smell-related events, defined as specific instructions or method calls associated with inappropriate code behavior. In practice, this limitation results in a high rate of false negatives, leaving many instances of code defects undetected.
Large Language Models (LLM) have achieved notable advances across numerous research domains and offer significant potential for generating intelligent execution traces, particularly for detecting behavioural code smells in Android mobile applications. By intelligent execution trace, we mean a sequence of events generated by specific actions in a way that triggers the identification of a given behaviour.
In this work, the main contributions are : (1) DynamicsLLM, an enhanced tool built upon the state-of-the-art Dynamics approach, which leverages LLM to intelligently generate execution traces. (2) A hybrid approach designed to improve the coverage of code smell–related events, particularly for applications with a few number of activities. (3) A comprehensive evaluation of DynamicsLLM on 307 mobile applications from the open-source F-DROID dataset, including a comparison with the Dynamics tool. Our results show that, under a limited number of GUI actions, DynamicsLLM configured with 100% LLM covers up to three times more code smell–related events than Dynamics. The hybrid approach further improves LLM coverage by 22.6% for applications with a small number of activities. Moreover, 14% of code smell–related events that cannot be triggered by Dynamics are successfully triggered by our tool. (4) Finally, we introduce an exploration strategy based on UCB (Upper Confidence Bound), which achieves 12.9% additional coverage compared to the hybrid on medium-sized apps, while keeping competitive performance for the other categories.
| Type de document: | Mémoire ou thèse (Mémoire de maîtrise électronique) |
|---|---|
| Renseignements supplémentaires: | "Mémoire présenté à l'École de technologie supérieure comme exigence partielle à l'obtention de la maîtrise avec mémoire en génie logiciel". Comprend des références bibliographiques (pages 51-54). |
| Mots-clés libres: | analyse dynamique, défauts de code comportementaux, grands modèles de langage, génération de traces d’exécution |
| Directeur de mémoire/thèse: | Directeur(-trice) Moha, Naouel |
| Codirecteur: | Codirecteur(-trice) de mémoire/thèse Avellaneda, Florent |
| Programme: | Maîtrise en ingénierie > Génie |
| Date de dépôt: | 15 avr. 2026 17:13 |
| Dernière modification: | 15 avr. 2026 17:13 |
| URI: | https://espace.etsmtl.ca/id/eprint/3871 |
Gestion Actions (Identification requise)
![]() |
Dernière vérification avant le dépôt |

Statistiques de téléchargement
Statistiques de téléchargement