• Aucun résultat trouvé

MaTeLo : Outil de Model-based Testing

2.5 Les outils MBT

2.5.1 MaTeLo : Outil de Model-based Testing

MaTeLo est l’acronyme de Markov Test Logic. C’est un outil de génération automa-tique de tests fonctionnels développé par la société Française ALL4TEC. Pour répondre aux exigences du projet Clarity et afin de rendre, d’une façon globale, le MBT plus

acces-sible aux sociétés, et plus précisément l’outil MaTeLo, nous utilisons ce dernier dans ce travail.

MaTeLo est composé de trois fonctionnalités majeures :

— Construction d’un modèle de tests, appelé modèle d’usage.

— Génération automatique des cas de tests à partir du modèle d’usage en choisissant une stratégie de génération.

— Analyse de la campagne de tests.

2.5.1.1 Modèle d’usage de MaTeLo

Le modèle de test MaTeLo, appelé modèle d’usage, est un ensemble des chaînes de Markov étendues [GM02] [Gue05] où chaque chaîne est un diagramme états-transitions probabiliste. Ce modèle d’usage décrit l’utilisation du SUT que l’on considère comme une boîte noire.

Une formalisation mathématique du modèle d’usage de MaTeLo a été proposée par Hélène Le Guen [Gue05]. Ce modèle d’usage est représenté par un graphe de test noté GM.

Le modèle d’usage MaTeLo GMest représenté par le tuple : {S, si, sf, V, F, P, T, E} où :

— S = {s0, ..., sn} : Un ensemble fini d’états

— si ∈ S : L’état initial unique de la chaîne — sf ∈ S : L’état final unique de la chaîne

— V : Un ensemble des entrées (stimulation), des sorties (résultats attendus) et des variables globales

— F : Un ensemble de fonctions de traitement pour effectuer des calculs sur des va-riables : F (V1) = V2 avec V1, V2 ∈ V. V1 : un ensemble spécifique de vava-riables glo-bales et / ou une sélection des vecteurs d’entrée, V2 : un ensemble de vecteurs de sortie

— P : Un ensemble de profils d’usage

— T : Un ensemble de transitions probabilistes. Chaque transition possède un nom et une probabilité pr par profil p ∈ P. Pour chaque état sn−1 ∈ S, la somme des pro-babilités portées par l’ensemble des transitions sortantes de sn−1doit être égale à 1

— E : Un ensemble des exigences du SUT

Afin de construire un modèle d’usage MaTeLo valide, nous devons respecter les règles suivantes :

— L’état final sf possède uniquement des transitions entrantes.

— Chaque état sn−1∈ S doit avoir au minimum une transition entrante et une transi-tion sortante.

— Chaque état dans le modèle doit être accessible (directement ou indirectement) de-puis l’état initial si et doit mener à l’état final sf, en d’autres termes, chaque état doit être au minimum sur un des chemins commençant par l’état initial si et terminant par l’état final sf.

2.5.1.2 Outil MaTeLo

L’outil MaTeLo est basé sur la plateforme Eclipse (Eclipse Rich Client Platform :https: //wiki.eclipse.org/Rich_Client_Platform). Il est composé d’un ensemble de plug-ins où chaque ensemble offre une fonctionnalité majeure visible via des perspectives Eclipse. Une perspective est composée d’un ensemble d’onglets appelés "Vues".

L’outil MaTeLo offre trois perspectives :

— Edition.

— Génération.

— Reports.

2.5.1.3 Perspective Edition

La perspective Édition (Figure2.5) sert à réaliser le modèle d’usage. Elle est composée d’un ensemble de vues, permettant la création des entrées, sorties, variables globales, fonctions de traitements, exigences, ainsi qu’un éditeur pour la création des chaînes de Markov. Le modèle est construit par un ensemble d’états et transitions.

FIGURE2.5 – MaTeLo : Perspective Édition

Les transitions représentent les actions à exécuter sur un SUT. Sur chaque transition nous pouvons associer :

— Une stimulation qui est composée d’un ensemble d’entrée où chaque entrée défi-nit une distribution (probabiliste, gaussienne, ...) (cf. Figure2.6) pour produire une valeur au moment de la génération.

— Un ensemble de vérifications où chaque vérification est composée d’un ensemble de résultats attendus.

— Un ensemble des fonctions de traitements et d’exigences.

— Une valeur de probabilité d’usage par profil défini (cf. Figure2.7).

FIGURE2.6 – Distribution des données

Le modèle d’usage est un modèle hiérarchique, composé de plusieurs chaînes de Mar-kov étendues. A partir de n’importe quel état d’une chaîne, nous pouvons référencer une

FIGURE2.7 – Probabilités des transitions

autre chaîne (voir section 2.8). Chaque transition porte pour chaque profil Pi une pro-babilité p ss0, qui correspond à la probabilité de choisir l’état s lorsque le processus de génération se trouve dans l’état s pour le profil Pi.

FIGURE2.8 – Modèle d’usage MaTeLo

2.5.1.4 Perspective Generation

La perspective Génération (Figure2.9) sert à générer les cas de tests. Elle est composée d’un ensemble de vues permettant la création des stratégies de génération et ensuite la génération des cas de tests. Cette perspective offre également une vue affichant les cas de tests générés.

Pour générer une suite de test, en d’autres termes un ensemble de cas de tests, l’utili-sateur doit choisir une stratégie de test. Une stratégie de test est composée de :

— Un profil d’usage.

FIGURE2.9 – MaTeLo : Perspective Génération

— Un algorithme de génération parmi ceux proposés par l’outil.

Un cas de test généré par MaTeLo commence toujours par l’état initial si et fini par l’état final sf. La génération des cas de test consiste à définir un chemin selon le profil et l’algorithme de génération de tests (critères de sélection des tests). Un cas de test est composé d’un ensemble d’étapes de tests où chaque étape est composée d’une stimula-tion (entrée) et d’un ensemble de vérificastimula-tion (résultats attendus).

Les cas de test générés par MaTeLo sont compatibles avec plusieurs bancs de test ce qui offre la possibilité de les exécuter d’une façon automatisée.

2.5.1.5 Perspective Report

La perspective Report (Figure2.10) sert à analyser la campagne de test. Elle est com-posée d’un ensemble de vues permettant la création de certains rapports, tel que le rap-port de couverture d’exigences, des entrées et des sorties, etc...

2.5.1.6 Algorithme de génération

Plusieurs algorithmes de génération de cas de tests sont disponibles dans l’outil Ma-TeLo (cf.2.11). L’outil offre également une API (Application Programming Interface) per-mettant de créer des nouveaux algorithmes selon le besoin.

FIGURE2.10 – MaTeLo : Perspective Report

FIGURE2.11 – Algorithme de génération

Les algorithmes disponibles par défaut dans MaTeLo sont :

— Arc coverage : Cet algorithme couvre l’ensemble du modèle d’usage. Cet algorithme possède un paramètre permettant de couvrir l’ensemble du modèle d’usage avec un minimum de séquences de test.

— Path Coverage : Cet algorithme sélectionne les transitions à partir de l’état initial jusqu’à l’état final en se basant sur le profil d’usage personnalisé.

— Most Probable : Cet algorithme choisit la transition la plus probable pendant le par-cours du modèle.

— User-oriented : Cet algorithme couvre un ensemble fini de transitions à partir de l’état initial jusqu’à l’état final du modèle d’usage. Les transitions suivies sont choi-sies au hasard, selon le dispositif probabiliste défini par le profil en cours.

— Random : Cet algorithme sélectionne les transitions à partir de l’état initial jusqu’à l’état final d’une façon aléatoire.

Une fois que les cas de test sont générés, ils peuvent être exportés soit sous différents formats textuel (ex : Excel, Word, ...) pour une exécution manuelle (cf.2.12) soit sous un format de scripts de tests pour une exécution automatique (cf.2.13).

FIGURE2.12 – Rapport d’un cas de test

Les scripts de test peuvent être compatibles avec plusieurs bancs de tests (cf.2.13) , tel que Sélénium,TestStand, etc...

FIGURE2.13 – Exécution automatique de test