Modélisation par partitionnement et graphes d'états des tests de conformité et de rebustesse pour les programmes orientés objet. - Louzaoui, Khadija (Université Ibn Tofail, Faculté des Sciences-Kénitra, 2016)
Les travaux présentés dans cette thèse permettent de modéliser le test de conformité des classes dérivées par le mécanisme d’héritage dans un paradigme orienté objet (OO). En effet, le modèle de contraintes proposé permet de traduire algébriquement les contrats de conformité entre les utilisateurs et les programmes appelés. Cela permet de mettre en place des algorithmes de génération des données de test indépendamment des implémentations ou de la nature du langage de développement utilisé. Dans cette thèse, nous cherchons à tester la conformité des méthodes redéfinies dans une sous-classe par héritage vis-à-vis de leurs spécifications. Ainsi les méthodes originelles des classes de base et celles redéfinies doivent être testés dans le cas général où les méthodes n’ont pas forcément des comportements compatibles. Nous proposons en dernier lieu, une nouvelle approche de test basée sur les contrats d’entrée invalides pour mesurer le niveau de robustesse des programmes OO. Les approches développées dans le cadre de cette thèse sont définies comme suit : 1. Approche de conformité généralisée pour une méthode redéfinie : Cette approche permet de vérifier la conformité des méthodes redéfinies par héritage sans exiger la contrainte de similitude de comportements. En effet, cette approche permet d’exploiter le partitionnement de similitude pour mettre en place un seul test destiné à vérifier la conformité des méthodes redéfinies. Le point fort de cette approche est de tester la conformité des méthodes redéfinies même s’il n’y a pas de similitude de comportement entre les méthodes. 2. Approche de conformité du système (m(1), m(2)) : Cette approche permet d’utiliser ne seule génération des données de test pour vérifier à la fois la conformité des deux méthodes originelle m(1) et redéfinie m(é) dans le cas d’extension par l’héritage. En effet, cette approche permet d’exploiter le partitionnement de similitude pour mettre en place un seul test destiné à vérifier la conformité de (m(1), m(2)). Premièrement cette approche ne nécessite pas la similitude des comportements. Deuxièmement elle permet de mettre en place un seul test de conformité pour le système (m(1), m(2)). Finalement, cette approche permet de générer un graphe d’états de tous les comportements de conformité rencontrés lors de l’exécution du processus de test du système (m(1), m(2)). 3. Approche de conformité par le modèle de contraintes optimales : L’approche proposée permet de tester la conformité des méthodes redéfinies non seulement par rapport à la classe dérivée. Dans ce contexte cette approche vise à améliorer le modèle de contrainte actuel dans le but de mettre en place une contrainte optimisée représentant un critère solide de partitionnement des domaines d’entrée du programme en cours de test. Ce qui nous permettra de réduire le nombre de séquences de test utilisées et de construire des algorithmes de génération des données de test de conformité à l’héritage. 4. Approche de robustesse des implémentations par rapport aux spécifications : 5. Cette approche permet de compléter le processus de vérification de conformité des classes orientées objet par l’ajout d’un test fondé sur les données invalides, qui ne satisfont pas les pré-conditions des modules sous test. Cela dans le but de mesurer le niveau de robustesse des programmes OO. Ce test complémentaire est utilisé pour renforcer le test de conformité des programmes OO. Il permet d’enrichir le concept de test par la définition des types d’anomalies qui peuvent exister dans les contrats entre les utilisateurs et les programmes.
Keywords: Test de conformité; Test de robustesse; Résolution des contraintes; Conception par contrat; Spécification formelle; Héritage; Génération des données de test; Donnée valide; Donnée invalide.