Mining Software Logs with Machine Learning Techniques - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2023

Mining Software Logs with Machine Learning Techniques

Exploitation de journaux logiciels avec des techniques d'apprentissage automatique

Résumé

Today, software is used in a wider variety of areas than ever before. Testing software is one of the techniques utilized during the verification and validation process. Researchers and the business sector have attempted to automate software testing in the past few decades, as the majority of testing activities are difficult and costly.In recent decades, software logs have become indispensable to the reliability assurance mechanism of many software systems, as they are typically the only data that records software runtime events.They are a valuable information source that can be leveraged for various diagnostic purposes. Throughout the testing procedure, testers can extract vital information from logs. Regression tests are required to be executed after each iteration of software development, which can be costly in terms of time and resources. Additionally, the volume of logs has rapidly increased as the applications of modern software have grown. The regression testing process needs to be automated in order to mitigate the cost associated with log analysis and reduce the workload of software testers.Log mining employs statistics, data mining, and machine learning techniques to automatically investigate and analyze a large volume of log data in order to discover meaningful patterns and reveal trends. Advanced implementation strategies for automated log mining are in high demand.Log mining tasks related to automated software testing are one of the contributions of this dissertation. We introduce some major log mining tasks for reliability engineering, including anomaly detection, failure prediction, and root-cause detection, etc. The research is completed through a number of case studies and experiments, which ultimately leads to the developing of a set of tools that work together to help automate log mining. The results given in this dissertation demonstrate how software testing can be enhanced by employing log mining using machine learning. This dissertation introduces four important log mining problems, including root-cause detection, online failure prediction, test log minimization, and user behavior clustering. Based on software system log analysis, we propose a new learning-based technique to automate log mining tasks. A part of the effort in this work focuses on developing unsupervised log mining methods in order to reduce human interaction and also to extract hidden features that are hidden from direct human observation. To this end, we tried to adopt learning techniques (e.g., NLP) that are capable of extracting the semantics of the logs and, therefore, learning the relations among the events. This evolved into a general unsupervised log mining methodology capable of clustering output events based on their conceptual relations with other events, detecting anomalous behavior, predicting them in online software, and finally finding their root cause among the input events. The achievements of the thesis help system administrators predict the possibility of imminent failures, and also help software developers detect bugs and their root causes within input and output log records.Throughout this dissertation, "real-world" applications are discussed, and we believe that our work could serve as the foundation for future research and deployment of automated log mining, as well as provide important recommendations in this area.
Aujourd'hui, les logiciels sont utilisés dans une plus grande variété de domaines que jamais auparavant. Le test logiciel est l'une des techniques utilisées au cours du processus de vérification et de validation. Les chercheurs et le secteur des entreprises ont tenté d'automatiser les tests de logiciels au cours des dernières décennies.Au cours des dernières décennies, les journaux de logiciels sont devenus indispensables au mécanisme d'assurance de la fiabilité de nombreux systèmes logiciels.Ils constituent une source d'information précieuse qui peut être exploitée à diverses fins de diagnostic. Tout au long de la procédure de test, les testeurs peuvent extraire des informations vitales des journaux. Les tests de régression doivent être exécutés après chaque itération de développement logiciel, ce qui peut être coûteux en temps et en ressources. De plus, le volume de journaux a rapidement augmenté à mesure que les applications des logiciels modernes se sont développées. Le processus de test de régression doit être automatisé afin d'atténuer les coûts associés à l'analyse des journaux et de réduire la charge de travail des testeurs de logiciels.L'exploration de journaux utilise des statistiques, l'exploration de données et des techniques d'apprentissage automatique pour enquêter et analyser automatiquement un grand volume de données de journaux afin de découvrir des modèles significatifs et des tendances révélatrices. Les stratégies de mise en œuvre avancées pour l'extraction automatisée de journaux sont très demandées.Les tâches d'extraction de journaux liées aux tests automatisés de logiciels sont l'une des contributions de cette thèse. Nous introduisons certaines tâches majeures d'extraction de journaux pour l'ingénierie de la fiabilité, y compris la détection des anomalies, la prédiction des défaillances et la détection des causes profondes, etc. La recherche est complétée par un certain nombre d'études de cas et d'expériences, ce qui conduit finalement au développement d'un ensemble d'outils qui travailler ensemble pour aider à automatiser l'extraction de journaux. Les résultats donnés dans cette thèse démontrent comment les tests de logiciels peuvent être améliorés en utilisant l'extraction de journaux à l'aide de l'apprentissage automatique. Basée sur l'analyse des journaux du système logiciel, nous proposons une nouvelle technique basée sur l'apprentissage pour automatiser les tâches d'extraction de journaux. Une partie de l'effort dans ce travail se concentre sur le développement de méthodes d'extraction de grumes non supervisées afin de réduire l'interaction humaine et également d'extraire des caractéristiques cachées qui sont cachées à l'observation humaine directe. À cette fin, nous avons essayé d'adopter des techniques d'apprentissage (par exemple, NLP) capables d'extraire la sémantique des journaux et, par conséquent, d'apprendre les relations entre les événements. Cela a évolué vers une méthodologie générale d'exploration de journaux non supervisée capable de regrouper les événements de sortie en fonction de leurs relations conceptuelles avec d'autres événements, de détecter un comportement anormal, de les prédire dans un logiciel en ligne et enfin de trouver leur cause première parmi les événements d'entrée. Aide les administrateurs système à prévoir la possibilité de pannes imminentes et aide aussi les développeurs de logiciels à détecter les bogues et leurs causes profondes dans les enregistrements des journaux d'entrée et de sortie.Tout au long de cette thèse, les applications du "monde réel" sont discutées, et nous pensons que notre travail pourrait servir de base à la recherche et au déploiement futurs de l'extraction automatisée de journaux, ainsi qu'à fournir des recommandations importantes dans ce domaine.
Fichier principal
Vignette du fichier
AFSHINPOUR_2023_diffusion.pdf (9.78 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04233033 , version 1 (09-10-2023)
tel-04233033 , version 2 (11-10-2023)
tel-04233033 , version 3 (28-11-2023)

Identifiants

  • HAL Id : tel-04233033 , version 3

Citer

Bahareh Afshinpour. Mining Software Logs with Machine Learning Techniques. Performance [cs.PF]. Université Grenoble Alpes [2020-..], 2023. English. ⟨NNT : 2023GRALM040⟩. ⟨tel-04233033v3⟩
210 Consultations
193 Téléchargements

Partager

Gmail Facebook X LinkedIn More