Président

 

Monsieur Nadir Belkhiter, Ph.D.

Vice-Doyen aux études

Faculté des sciences et de génie

Université Laval

 

Examinateurs

 

Monsieur Luc Lamontagne, Ph.D. (Directeur de recherche)

Département d’informatique et de génie logiciel

Université Laval

 

Monsieur Mourad Badri, Ph.D. (Co-directeur)

Département de mathématiques et d’informatique

Université du Québec à Trois-Rivières

 

Monsieur Simon Hardy, Ph.D. (Examinateur)

Département d’informatique et de génie logiciel

Université Laval

 

Madame Nadia Tawbi, Ph.D. (Examinatrice)

Département d’informatique et de génie logiciel

Université Laval

 

Monsieur Hamid Mcheick, Ph.D. (Examinateur externe)

Département d’informatique et de mathématique
Université du Québec à Chicoutimi

Résumé

 

Les logiciels actuels sont larges, complexes et critiques. Le besoin de haute qualité exige beaucoup de tests qui consomment de grandes quantités de ressources durant le développement et la maintenance de ces systèmes. Différentes techniques permettent de réduire les coûts liés aux activités de test. Notre travail s’inscrit dans ce cadre et a pour objectif d’orienter l’effort de test vers les composants logiciels les plus à risque à l’aide de certains attributs du code source. À travers plusieurs démarches empiriques menées sur de grands logiciels open source, développés avec la technologie orientée objet, nous avons identifié et étudié les métriques qui caractérisent l’effort de test unitaire sous certains angles. Nous avons aussi étudié les liens entre cet effort de test et les métriques des classes logicielles en incluant les indicateurs de qualité. Les indicateurs de qualité sont une métrique synthétique que nous avons introduite dans nos travaux antérieurs et qui capture le flux de contrôle ainsi que différentes caractéristiques du logiciel. Nous avons exploré plusieurs techniques permettant d’orienter l’effort de test vers les composants les plus à risque dans un système en utilisant des algorithmes d’apprentissage automatique. En regroupant les métriques logicielles en familles, nous avons finalement proposé une approche basée sur l’analyse du risque des classes logicielles. Les résultats que nous avons obtenus montrent les liens entre l’effort de test unitaire et les attributs de code source incluant les indicateurs de qualité, et suggèrent la possibilité d’orienter l’effort de test à l’aide des métriques, tenant compte des risques.

Abstract:

 

Software systems are large, complex and critical. The need for high quality requires a lot of tests that consume large amounts of resources during the development and the maintenance of systems. Different techniques are used to reduce the costs of testing activities. Our work is in this context. It aims to guide the unit testing distribution effort to the high risk software components using the source code attributes. We conducted several empirical analyses on different large open source and object-oriented software systems. We identified and studied several metrics that characterize the unit testing effort according to different perspectives. We also studied their relationships with the software class metrics including quality indicators. The quality indicator is, in fact, a synthetic metric that we introduced in our previous work. It captures in an integrated way control flow and different software attributes. We explored different approaches for unit testing effort orientation using source code attributes with statistical methods and machine learning algorithms. By grouping software metrics, we finally proposed an effort orientation approach based on software class risk analysis. In addition to the significant relationships between unit test case metrics and source code attributes, the results we obtained suggest the possibility of using source code metrics for unit testing effort orientation by taking the risk of components into account.

 

Bienvenue à tous !