<  Back to the Polytechnique Montréal portal

Deep Reinforcement Learning in Software Engineering: Empirical Insights and Practical Guidelines

Paulina Stevia Nouwou Mindom

Ph.D. thesis (2025)

Open Access document in PolyPublie
[img]
Preview
Open Access to the full text of this document
Terms of Use: All rights reserved
Download (3MB)
Show abstract
Hide abstract

Abstract

Software engineering focuses on developing structured and cost-efficient methodologies to ensure the delivery of high-quality, reliable software, through design, development, quality assurance, and maintenance. Selecting the right techniques is crucial, as inappropriate choices can undermine productivity and software quality. Manual peer reviews and testing improve software quality but are time-intensive and costly, often leading to undetected bugs in complex systems. To address these challenges, researchers can leverage Machine Learning techniques, such as Deep Reinforcement Learning, to automate Software Engineering tasks. Yet it is often unclear which automation techniques are suitable for the task at hand. Additionally, current automation techniques often struggle with task-specific challenges, such as non-stationary behavior and inherent complexity of tasks, highlighting the need for empirical studies to better understand the limitations of such automating techniques and optimize their applicability. In this thesis, we conduct several empirical studies and propose a framework that tackles widely used Software Engineering tasks and current Deep Reinforcement Learning techniques, to offer valuable recommendations and best practices for applying Deep Reinforcement Learning techniques to Software Engineering tasks. To do so, we built from the following observations: (1) Deep Reinforcement Learning techniques show significant performance differences within the same Software Engineering task, emphasizing the need for guidelines to assist practitioners in selecting the most appropriate technique for specific tasks; (2) unlike traditional Deep Reinforcement Learning techniques, pre-trained generalist agents adapt faster to new tasks and reduce training costs, making them more suitable for dynamic and resource-intensive Software Engineering tasks; and (3) Deep Reinforcement Learning techniques struggle with concept drift, but Continual Learning could improve adaptability and effectiveness when applied to dynamic software artifacts.

Résumé

Le génie logiciel vise à développer des approches structurées et économiques pour garantir des logiciels de haute qualité et fiables, à travers les processus de conception, développement, assurance qualité et maintenance. Choisir la bonne approche est essentielle, car la technique inadéquates peut compromettre la qualité du produit final et retarder sa livraison. Les revues de code et les tests manuels contribuent à améliorer la qualité des logiciels, mais ils sont coûteux, prennent du temps et n’éliminent pas toujours les fautes dans les systèmes complexes. Pour faire face ces défis, l’apprentissage automatique offre des solutions prometteuses pour automatiser certaines tâches du génie logiciel. Cependant, il est souvent difficile de savoir quelles approches d’automatisation conviennent le mieux à une tâche donnée. De plus, les approches actuelles sont confrontées à des défis comme la gestion de données non stationnaire ou la complexité implicite des tâches, ce qui souligne la nécessité d’études pratiques pour mieux cerner les limites de ces approches et améliorer leurs utilisations. Dans cette thèse, nous avons mené plusieurs études empiriques et développés un outil pour explorer des tâches clés du génie logiciel et évaluer l’efficacité des approches d’automatisation actuelles. Ces travaux s’appuient sur trois constats majeurs : (1) Les performances des approches d’automatisation actuelles varient considérablement d’une tâche à l’autre, ce qui souligne l’importance d’orienter les professionnels du génie logiciel vers les approches les plus adaptées; (2) les solutions dites « généralistes », pré-entraînées sur des données variées, s’adaptent plus rapidement à de nouvelles situations et réduisent les efforts d’entraînement, ce qui les rend particulièrement utiles pour les tâches complexes ou dynamiques; et finalement (3) les techniques classiques d’automatisation peinent à s’adapter aux évolutions constantes des données, mais des approches basées sur l’apprentissage continu pourraient apporter des améliorations notables.

Department: Department of Computer Engineering and Software Engineering
Program: Génie informatique
Academic/Research Directors: Foutse Khomh and John Mullins
PolyPublie URL: https://publications.polymtl.ca/62960/
Institution: Polytechnique Montréal
Date Deposited: 26 Aug 2025 09:19
Last Modified: 26 Aug 2025 11:11
Cite in APA 7: Nouwou Mindom, P. S. (2025). Deep Reinforcement Learning in Software Engineering: Empirical Insights and Practical Guidelines [Ph.D. thesis, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/62960/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only

View Item View Item