• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 3
  • Tagged with
  • 3
  • 3
  • 3
  • 3
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

From runtime failures to patches : study of patch generation in production / De l’erreur d'exécution aux correctifs : une étude de la génération de correctifs en production

Durieux, Thomas 25 September 2018 (has links)
Dans le cadre de la gestion du cycle de vie d’une application, la création de correctifs de bugs est une des tâches les plus importantes. Or celle-ci prend aussi le plus de temps, non seulement parce qu'il est difficile de créer un bon correctif, mais également parce qu'elle nécessite des interventions humaines. Un utilisateur doit en effet signaler le bug et le développeur doit le reproduire et le corriger, processus long et fastidieux. Il existe des techniques qui automatisent cette tâche mais elles exigent toujours l’intervention humaine à savoir qu'un développeur crée un test reproduisant le bug, exigence qui réduit considérablement leur applicabilité. Dans le cadre de cette thèse, nous proposons une nouvelle approche qui supprime cette exigence en créant de nouvelles techniques de génération de correctifs. Notre approche repose sur l'idée de rapprocher le plus possible la génération de correctifs de l'environnement de production. En effet c’est celui-ci qui contient toutes les données et toutes les interactions humaines qui mènent aux bugs. Au cours de cette thèse, nous présentons comment exploiter ces données pour détecter les bugs, comment générer les correctifs et comment les valider, le tout sans l'intervention d'un développeur. Nous évaluons notre approche sur sept jeux différents de correctifs réels provenant de projets open-sources en veillant, entre autres, à être particulièrement attentifs au nombre de correctifs générés, à leur validité ainsi qu’au temps requis pour leur génération. Ces évaluations démontrent l'applicabilité et la faisabilité de notre approche dans la génération de correctifs en production sans l'intervention d'un développeur. / Patch creation is one of the most important actions in the life cycle of an application. Creating patches is a really time-consuming task. Not only because it is difficult to create a good and valid patch, but also because it requires the intervention of humans. Indeed, a user must report the bug and a developer must reproduce it and fix it, which takes a lot of time. To address this problem, techniques that automate this task have been created but those techniques still require a developer to create a test that reproduces the bug. This requirement drastically reduces the applicability of the approach since it still relies on the human. This thesis proposes new patch generation techniques that remove the human intervention for the generation of patches. Our idea is to put as close as possible the generation of patches to the production environment. We adopt this approach because the production environment contains all the data and human interactions that lead to the bug. During this thesis, we present how to exploit this data to detect bugs, generate and validate patches without the intervention of developers. We evaluate this approach on seven different benchmarks of real bugs collected from open-source projects. During the evaluation, we are particularly attentive to the number of generated patches, the correctness and the readability of the generated patches and the time required for generating them. Our evaluation shows the applicability and feasibility of our approach to generate patches in the production environment without the intervention of a developer.
2

Extraction and analysis of knowledge for automatic software repair / Extraction et analyse de connaissance pour la réparation automatique de bugs

Martinez, Matias 10 October 2014 (has links)
La correction d'un bogue est une activité fréquente fait dans le cycle de vie du logiciel. L'activité vise à éliminer l'écart entre le comportement attendu d'un programme et ce qu'il fait réellement. Dans les dernières années, plusieurs approches automatiques de réparation de logiciels ont vu le jour pour synthétiser automatiquement des corrections de bugs. Malheureusement, la correction de bugs pourrait être encore difficile et coûteux pour les approches automatiques programme de réparation. Par exemple, pour réparer un bogue, une approche pourrait passer un temps infini à trouver une solution auprès d'un grand nombre de candidats. Dans cette thèse, nous visons à améliorer la réparabilité de bogues: augmenter le nombre de bogues réparés par des approches de réparation. Nous visons à ajouter réparation approches des stratégies pour optimiser la recherche de solutions. Nous présentons une stratégie qui consomme informations extraites de réparations effectuées par les développeurs. Ensuite, nous nous concentrons sur l'évaluation des méthodes de réparation automatique. Nous visons à introduire des procédures pour avoir significative évaluations d'approches.Nous définissons d'abord une méthode pour définir des jeux de données de défauts qui réduisent au minimum la possibilité de résultats biaisés. La manière dont un jeu de données est construite impacts sur le résultat d'une évaluation de l'approche. Nous présentons un jeu de données qui comprend un type particulier de défaut: les défauts instructions conditionnelles. Ensuite, nous cherchons à mesurer la réparabilité de ce type de défaut en évaluant trois approches de réparation automatique du logiciel. / Bug fixing is a frequent activity done in the software life cycle. The activity aims at removing the gap between the expected behavior of a program and what it actually does. In the recent years, several automatic software repair approaches have emerged to automatically synthesize bug fixes. Unfortunately, bug fixing could be even hard and expensive for automatic program repair approaches. For example, to repair a given bug, a repair technique could spend infinite time to find a fix among a large number of candidate fixes. In this thesis, we aim at improving repairability of bugs. That is, to increase the number of bugs repaired by repair approaches. First, we concentrate on the study of repair search spaces i.e., all possible solutions for the fix. We aim at adding repair approaches strategies to optimize the search of solutions in the repair search space. We present a strategy to reduce the time to find a fix. The strategy consumes information extracted from repairs done by developers. Then, we focus on the evaluation of automatic repair approaches. We aim at introducing methodologies and evaluation procedures to have meaningful repair approach evaluations.We first define a methodology to define defect datasets that minimize the possibility of biased results. The way a dataset is built impacts on the result of an approach evaluation. We present a dataset that includes a particular kind of defect: if conditional defects. Then, we aim at measuring the repairability of this kind of defect by evaluating three state-of-the-art automatic software repair approaches.
3

Towards improving the quality of mobile app by leveraging crowdsourced feedback / Vers l'amélioration de la qualité des applications mobiles en utilisant des données collectées sur les utilisateurs

Gomez Lacruz, Maria 02 December 2016 (has links)
La popularité des smartphones engendre un nombre croissant d’applications mobiles qui sont publiées dans des magasins officiels d’applications. En fait, des études antérieures ont démontré que les utilisateurs d'applications sont intolérants à des problèmes de qualité (e.g., des arrêts inopinés). Les utilisateurs qui rencontrent des problèmes désinstallent fréquemment les applications et se dirigent vers des applications concurrentes. Par conséquent, détecter et prévenir rapidement des problèmes dans les applications est crucial pour rester compétitif sur le marché. Même si les développeurs testent les applications avant le déploiement, de nombreux bugs peuvent encore apparaitre dans la nature. Le grand défi qui demeure est que l'environnement reste hors du contrôle des développeurs d'applications. Plus précisément, l'écosystème mobile est confronté à une rapide évolution des plate-formes mobile, une forte fragmentation des équipements, et une grande diversité des contextes d'exécution. Cette thèse présente donc une nouvelle génération de magasins d’applications mobiles qui exploite des données collectées sur les applications, les appareils et les utilisateurs afin d'augmenter la qualité globale des applications mobiles publiées en ligne. Cette nouvelle génération de magasins d'applications peut exploiter l’intelligence collective pour obtenir des feedbacks pratiques à partir de les données retournées par les utilisateurs. Ces feedbacks concrets aident les développeurs d'applications à traiter les erreurs et les menaces potentielles qui affectent leurs applications avant la publication ou même lorsque les applications sont dans les mains des utilisateurs finaux. / The popularity of smartphones is leading to an ever growing number of mobile apps that are published in official app stores. In fact, previous studies have demonstrated that app users are intolerant to quality issues (e.g., crashes). Users who encounter issues frequently uninstall apps and move to alternative apps. Hence, quickly detecting and preventing issues is crucial for staying competitive in the market. Although developers use emulators and test apps before deployment, many bugs emerge in the wild. Developing apps which run without errors along time remains a primary concern for app developers. The big challenge is that the environment is out of the app developers’ control. More specifically, the mobile ecosystem faces rapid platform evolution, high device fragmentation, and high diversity of execution contexts. This thesis introduces a new generation of app stores which exploit crowdsourced information about apps, devices and users to increase the overall quality of the delivered mobile apps. We claim that app stores can exploit the wisdom of the crowd to distill actionable insights from the feedback returned by the crowds. These actionable insights assist app developers to deal with potential errors and threats that affect their apps prior to publication or even when the apps are in the hands of end-users.

Page generated in 0.1593 seconds