extension du model-based testing pour la prise en compte de

Transcription

extension du model-based testing pour la prise en compte de
EXTENSION DU MODEL-BASED TESTING POUR LA
PRISE EN COMPTE DE LA VARIABILITE DANS LES
SYSTEMES COMPLEXES
Hamza Samih, Benoit Baudry, Hélène Le Guen
{hamza.samih,benoit.baudry}@inria.fr, [email protected]
ALL4tec, INRIA
1
Introduction
Le test est la phase la plus couteuse dans un cycle de développement. Plusieurs méthodes de test sont utilisées pour optimiser cette phase, parmi ces solutions le Modelbased Testing (MBT) est de plus en plus utilisé pour le test de systèmes complexes
dans l'industrie.
Le MBT est une technique en évolution pour générer automatiquement des tests à
partir d’un modèle décrivant certains aspects du système sous test (SUT). Son but
principal est la génération des tests de validation en se basant sur la spécification. La
génération de test est faite généralement à partir d’un modèle de test (Mark Utting,
2007).
Le modèle de test représente alors le champ des actions possibles et des vérifications à réaliser sur le système sous test. Il est possible de définir ensuite plusieurs
stratégies de test, pour dériver de ce modèle un ensemble cas de tests pertinents pour
réaliser une campagne de tests. Nous nous intéressons en particulier aux modèles de
test pouvant être assimilés à des chaînes de Markov pour qualifier l'usage du système.
Le modèle d’usage modélise le comportement boite noire des fonctionnalités qu’on
souhaite tester dans un système. Comme sous MaTeLo1 qu’est constitué de chaîne de
Markov sous format d’un diagramme Etat-Transition probabilisé (Le Guen, 2003).
Les systèmes testés sont soumis aux contraintes de développements industriels, ils
évoluent fonctionnellement dans le temps et peuvent être déclinés selon de nombreuses variantes. Ces systèmes se regroupent dans ce que l’on appelle une ligne de
produits.
Dans le domaine automobile par exemple, les systèmes testés sont souvent utilisés
sur plusieurs gammes de véhicule et peuvent être configurés avec différents jeux
d’options. Dans le ferroviaire, des systèmes génériques sont modifiés et adaptés à
chaque projet qui est contraint par les normes locales et la configuration de la ligne de
train. D'autre part, certains de ces systèmes sont critiques et sont soumis à des contraintes de développement spécifiques. A l'heure actuelle, les méthodes employées
pour gérer la variabilité sont disjointes du processus de validation du système. L'ob1
L’acronyme de Markov Test Logic. Un outil automatique de génération de tests fonctionnels
et de validation. Outil développé par ALL4TEC
jectif de ce travail est d'intégrer ces problématiques dans une solution complète de
model-based testing. Cette activité de recherche se fait au sein de la société
ALL4TEC et les résultats seront expérimentés dans l’atelier MaTeLo.
2
Objectif
Notre objectif est de formaliser la notion de variantes dans une solution model-based
testing. Cela en proposant une plateforme d'information commune intégrant les différentes caractéristiques fonctionnelles, ou bien les différentes variantes.
Pour enrichir le modèle de test avec la variabilité, il faut extraire ces propriétés à
partir des exigences fonctionnelles qui doivent être bien décrites, précises et formelles.
Model
variability
Comment peut-on générer
un cas de test pour une
variante ?
Model
MATELO
Requirements
?
CT
CT
CT
Il s'agit également de bâtir des stratégies de validation pertinentes au regard des
différentes problématiques; ceci à la fois pour la génération de séquences de test mais
également au niveau du suivi d'indicateurs qualitatifs.
Ce travail se concentre sur les verrous scientifiques suivants :
 Test des applications d’une ligne de produit : lors de la création d’un nouveau
produit dérivé d’une famille de produits, il contient certaines fonctionnalités qui
ont déjà été validées dans un autre contexte, reste à savoir comment sélectionner un
sous ensemble de tests à exécuter. Quels cas de test doivent être réalisés sur toutes
les variantes ? Comment tester plus particulièrement une fonctionnalité critique ?
 Gestion de la variabilité : pour gérer la variabilité il faut bien comprendre les
relations entre les différentes fonctionnalités. Plusieurs travaux ont été effectués
dans ce sens comme les travaux de (Klaus pohl, 2005). En effet modéliser la variabilité est possible, mais avant il faut déterminer les formes et les dimensions de variabilité en Ingénierie système pour choisir la modélisation adéquate. Ainsi il faut
décider du positionnement de la variabilité par rapport au modèle de test.
 Cohérence des exigences : les exigences sont la description des fonctionnalités, si
elles sont incohérentes les cas de test générés à partir du modèle de test risque
d’être inefficace. Il est donc nécessaire de proposer des méthodes d’analyse de la
cohérence exigences-fonctionnalités pour établir des mécanismes robustes de sélection de test pour une ligne de produits.
Références
Guen, H. L. (2003, septembre). Thelin. Practical experiences about statistical usage
testing. In STEP. Amsterdam, The Netherlands : Software Technology and
Engineering Practice - workshop on Software Test and Reliability Estimation
Process.
Klaus pohl, G. B. (2005). Software product line engineering, and techniques. Software
product line engineering, and techniques. berlin Heidelberg, allemagne:
Sping.
Mark Utting, B. L. (2007). Pratical Model-Based testing A tools Approach.