• Aucun résultat trouvé

Le test de conformité [102] consiste à réaliser des expérimentations sur une implémen-tation d’un système afin d’en déduire la correction vis à vis d’une spécification de référence. C’est un test boîte noire car le code de l’implémentation n’est pas connu. Le testeur, qui simule l’environnement, interagit avec l’implémentation sous test (IUT Implementation Under Test) en exécutant des tests élémentaires, générés auparavant, appelés cas de test. Il observe le comportement de cette dernière à travers des interfaces appelées Points de

Contrôle et d’Observation (PCO). Un verdict est alors formulé en analysant les réactions

de l’IUT : si pour chaque cas de test, les sorties de l’IUT coïncident avec celles attendues (c’est à dire, celles dérivées de la spécification) alors l’IUT est dite conforme à sa spécifica-tion ; sinon l’IUT est dite erronée et un processus de diagnostic est entamé pour localiser l’erreur. Le processus du test de conformité défini par la norme ISO 9646 est donné dans la Fig.10.

Dans le cadre de cette norme, le test de conformité est :

– Fonctionnel car on ne s’intéresse qu’à la correction vis à vis des fonctions réalisées par la spécification ;

– Boîte noire car le code de l’implémentation est inconnu.

3.1.1 Terminologie du test de conformité

Nous décrivons ci-dessous quelques termes définis dans la norme ISO 9646 [102]. Spécification, Implantation, Modèles. Une spécification est la description d’un com-portement à l’aide d’un moyen formel. Une implémentation est une entité matérielle et/ou

Sous

Génération de test

Test Système

Suite de test abstraite du Protocole

Standard de Spécification

Implémentation du protocole

IUT

Suite de test exécutable Séléction de test Implémentation de test Verdicts − accept − failure − inconclusive − error (in test HW) Testeur

Fig. 10: Le processus du test de conformité

logicielle possédant des interfaces à travers lesquelles elle peut communiquer avec son envi-ronnement. La spécification est un objet formel, tandis que l’implémentation est physique. Afin de pouvoir lier de tels objets (de nature différente) par la conformité, on suppose

(hypo-thèse dite de test) que l’implémentation peut être modélisée dans le même formalisme de la

spécification. Cette hypothèse suppose l’existence de la modélisation de l’implémentation, mais à priori la description formelle de la modélisation est inconnue.

Conformité. La conformité est une propriété observable sur le comportement d’une implémentation. Elle est relative au fonctionnement spécifié. La conformité peut être définie au moyen d’une relation binaire. Une implémentation I est dite conforme à une spécification

S selon la relation binaire R, si l’on a R(I, S). La relation R est un moyen d’exprimer la

conformité entre S et I.

Testeur. Le testeur est un programme exécutant des tests sur l’IUT et observant son comportement.

Architecture de test. C’est la description abstraite de la situation du testeur vis à vis de l’IUT, c’est à dire, quelles sont les interfaces contrôlables ou observables (points de

contrôle et d’observation P COs) par le testeur et comment s’effectue la communication

entre le testeur et l’IUT. L’écriture de tests dépend étroitement de l’architecture choisie. Il existe plusieurs architectures normalisées : locale, distante, etc.

Suite de test. Une suite de tests est un ensemble de tests élémentaires (cas de test). En

T T CN1 (Tree and Tabular Combined Notation), langage de description de test issu de la norme ISO 9646, une suite de test contient plusieurs parties :

– Le sommaire contient la structure, c’est à dire comment la suite est organisée en groupes et sous-groupes et l’index qui décrit chaque objectif de test ;

– Les déclarations définissent les types de données, c’est à dire les P DU s (protocol data

unit) et ASP s (abstract service primitive) , les timers, les P COs, les variables de la

suite de test et les opérations de base ;

– Les contraintes définissent les valeurs des différents champs des P DU s et ASP uti-lisées dans les cas de test ;

– Les comportements définissent l’ensemble des cas de test.

Objectif de test. L’objectif du test décrit de manière abstraite le but d’un cas de test, c’est à dire la propriété qu’il est supposé tester sur l’IUT. En général, un objectif découle d’une exigence de conformité décrivant une propriété que le système (la spécification et son implémentation) est censé vérifier.

Cas de test. Un cas de test décrit un programme constitué d’interactions entre le testeur et l’IUT, des opérations sur des temporisateurs de test et des verdicts. Il est générale-ment constitué d’un préambule, d’un corps de test, d’une séquence d’identification et d’un

postambule.

Préambule. Il consiste en un sous-programme effectuant des interactions avec l’IUT de façon à mener cette dernière dans un état particulier permettant d’appliquer le corps du

test.

Corps du test. C’est la partie du cas de test servant à vérifier l’objectif de test.

Identification. C’est une partie de cas de test servant à identifier l’état dans lequel se trouve l’IUT.

Postambule. Il consiste en un sous-programme effectuant des interactions avec l’IUT de façon à mener cette dernière dans son état initial afin d’enchaîner un autre cas de test. Verdicts. L’exécution d’un cas de test conduit à un verdict qui est une affectation de résultats à l’expérience de test. Les verdicts sont en général : Pass, Fail, Inconclusive.

3.1.2 Les niveaux du test de conformité

Outre les concepts du test de conformité, la norme ISO 9646 décrit les différents niveaux ou types de test suivants :

Tests d’interconnexion de base. Ils permettent de vérifier les caractéristiques princi-pales du protocole (les interconnexions de base), en particulier la capacité à ouvrir des connexions, transmettre des données et fermer des connexions.

Tests de capacité. Ils permettent de vérifier si toutes les possibilités statiques (externes et observables) de l’exécution sont valides par rapport aux contraintes statiques de la conformité (options, classe de protocole, etc).

Tests de comportement. Ils consistent à vérifier la conformité pendant l’exécution par rapport aux conditions d’exécution dynamiques définies dans la norme de protocole. Tests pour résoudre la question de conformité. Ils regroupent des tests spéciaux visant des objectifs au-delà des objectifs visés par le test de comportement (par exemple, les exceptions).

Documents relatifs