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.