La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées.

Présentations similaires


Présentation au sujet: "THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées."— Transcription de la présentation:

1 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 1 LE PROJET INKA B.Botella Thalès Systèmes Aeroportés Objectifs : Logiciel INKA générateur automatique de cas de test structurel pour C et C++ 5 partenaires : THALES SA AXLOG Ingénierie I3S - Université de Nice Sophia Antipolis LIFC - Université de Franche Comté LSR - Université de Grenoble Durée : 24 mois (01/ > 01/2003)

2 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 2 Cycle en V Validation en vol Validation sur banc Validation Globale Conception Globale Codage Test Unitaires (et dIntégration) Tests du Logiciel / Fonction opérationnelle Exigences Modèle UML

3 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 3 Stratégies de test Cas de test Sorties Test fonctionnel : basé sur létude des spécifications Test structurel : basé sur l analyse du programme Cas de testSorties

4 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 4 Specification : returns the product of i by j (i = 0, j = 0) --> 0 (i = 10, j = 100) -- >1000 … --> OK prod(int i,int j ) { int k ; if( i==2 ) k := i << 1 else ( faire i fois l addition de j ) return k ; } Functional testing

5 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 5 Structural testing is indispensable ! Undetected fault by functional testing patch -> k := j << 1 Specification : returns the product of i by j (i = 0, j = 0) --> 0 (i = 10, j = 100) --> 1000 prod(int i,int j ) { int k ; if( i==2 ) k := i << 1 else ( faire i fois l addition de j ) return k ; }

6 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 6 Graphe de flot de contrôle f( int i ) { j :=... if( Condition1 ) j :=... if( Condition2 ) j :=... return j }

7 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 7 f( int i ) { j :=... if( Condition1 ) j :=... if( Condition2 ) j :=... return j } f v Graphe de flot de contrôle

8 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 8 f( int i ) { j :=... if( Condition1 ) j :=... if( Condition2 ) j :=... return j } f v Graphe de flot de contrôle

9 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 9 f( int i ) { j :=... if( Condition1 ) j :=... if( Condition2 ) j :=... return j } f v v f Graphe de flot de contrôle

10 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 10 Test Structurel Couvrir au moins toutes les branches ( Modified Conditions Decision Criterium ) Tache difficile et pénible Automatisation => Gain de temps et d argent

11 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 11 Génération « manuelle » de cas de test : exemple f( int i ) { j := 2 if( i 16 ) j := j * i if( j > 8) j := 0 return j } f t t f valeur du paramètre i ?

12 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 12 f( int i ) { j := 2 if( i 16 ) j := j * i if( j > 8) j := 0 return j } valeur de i ? J > 8 supposons I > 16 I > 16 => J = 2 or J > 8 --> impossible soit I > 16 soit I 16 --> I 16 (I 16) => J = 2 * I or J > 8 et I 16 --> 4 < I 16 choix : I = 5

13 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 13 Principe Transformer le programme à tester en un système de contraintes. Utiliser la programmation par contraintes pour poser et résoudre des objectifs de test

14 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 14 Principe Technique Entrees Sorties + Point sélectionné Programme à contraintes EntréesSorties+ Requête 1 22

15 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 15 Modélisation d une affectation i := i + 1 i 2 = i f( int i ) { j := 2 if( i 16 ) j := j * i if( j > 8) j := 0 return j } Inconnue : i 0 j 0 = 2 if( i 0 16 ) j 1 = j 0 * i 0 j 2 = j 1 else j 2 = j 0 if( j 2 > 8) j 3 = 0 else j 3 = j 2 r = j 3 Inconnue : r

16 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 16 Modélisation d une condition Cond => j 1 = j 0 * i 0 j 2 = j 1 Cond => j 2 = j 0 (j 1 = j 0 * i 0 j 2 = j 1 ) => ( Cond j 2 = j 0 ) (j 2 = j 0 ) => ( Cond j 1 = j 0 * i 0 j 2 = j 1 ) if( Cond ) j 1 = j 0 * i 0 j 2 = j 1 j 2 = j 0

17 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 17 Système de contraintes Inconnue : i 0 j 0 = 2 i 0 16 => (j 1 = j 0 * i 0 j 2 = j 1 ) i 0 > 16 => j 2 = j 0 (j 1 = j 0 * i 0 j 2 = j 1 ) => (i 0 > 16 j 2 = j 0 ) (j 2 = j 0 ) => (i 0 16 j 1 = j 0 * i 0 j 2 = j 1 ) j 2 > 8 => j 3 = 0 j 2 8 => j 3 = j 2 (j 3 = 0) => (j 2 8 j 3 = j 2 ) (j 3 = j 2 ) => (j 2 > 8 j 3 = 0) r = j 3 Inconnue : r Inconnue : i 0 j 0 = 2 if( i 0 16 ) j 1 = j 0 * i 0 j 2 = j 1 else j 2 = j 0 if( j 2 > 8) j 3 = 0 else j 3 = j 2 r = j 3 Inconnue : r

18 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 18 Exploitation du système de contraintes Inconnue : i 0 j 0 = 2 i 0 16 => (j 1 = j 0 * i 0 j 2 = j 1 ) i 0 > 16 => j 2 = j 0 (j 1 = j 0 * i 0 j 2 = j 1 ) => (i 0 > 16 j 2 = j 0 ) (j 2 = j 0 ) => (i 0 16 j 1 = j 0 * i 0 j 2 = j 1 ) j 2 > 8 => j 3 = 0 j 2 8 => j 3 = j 2 (j 3 = 0) => (j 2 8 j 3 = j 2 ) (j 3 = j 2 ) => (j 2 > 8 j 3 = 0) r = j 3 Inconnue : r i 0 = 18 i 0 = 4 2 r 8 r = 12 r = 8 r = 2 impossible 1 i 0 4

19 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 19 Sélection dun point Utilisation des dépendances de contrôle [Ferrante et al. TOPLAS87] = ensemble de conditions à vérifier Condition4 Condition2 Condition1 Contraintes issues du Programme CLP v f f v v v Condition1 Condition2 Condition4 Condition

20 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 20 Génération de cas de test f( int i ) { j := 2 if( i 16 ) j := j * i if( j > 8) j := 0 return j } Inconnue : i 0 j 0 = 2 i 0 16 => (j 1 = j 0 * i 0 j 2 = j 1 ) i 0 > 16 => j 2 = j 0 (j 1 = j 0 * i 0 j 2 = j 1 ) => (i 0 > 16 j 2 = j 0 ) (j 2 = j 0 ) => (i 0 16 j 1 = j 0 * i 0 j 2 = j 1 ) j 2 > 8 => j 3 = 0 j 2 8 => j 3 = j 2 (j 3 = 0) => (j 2 8 j 3 = j 2 ) (j 3 = j 2 ) => (j 2 > 8 j 3 = 0) r = j 3 Inconnue : r J 2 > 8 4 < i 0 16

21 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 21 Projet INKA : Historique 1995 : Début de la Recherche sur les extensions du produit dexécution de test DEVISOR ( Dassault Electronique) 1996 : Génération automatique de cas de test, basée sur lutilisation de la Programmation par Contraintes [GL96] 1998 : Premier prototype pour C-, publications [ISSTA98, CL00] 2000 : Soutenance Thèse Arnaud Gotlieb 2000 : Labelisation RNTL pour industrialiser ces résultats

22 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 22 InKa : sous-projets sp5 : Management (Thalès) sp1 : Industrialisation (Axlog, Thalès) sp2 : extension aux flottants (I3S, Thalès) sp3 : extension aux structures dynamiques (LIFC, Thalès) sp4 : extension au test d integration (LSR, Thalès)

23 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 23 Industrialisation : Version V1 traite le langage C les types « entiers » les pointeurs sans allocation dynamique les structures, les tableaux visualisation de la couverture génération pour toutes_les_instructions, toutes_les_branches expression de contraintes sur les données de tests gestion des bouchons interface : import/export de jeux de tests au format XML …. UNE DEMO !

24 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 24 Extension aux flottants (problématique) I3S (Michel Rueher, Claude Michel), TSA x := a + b X = A + B calcul approximé résolution exacte X in [Xi,Xs], A in [Ai,As], B in [Bi,Bs] X <- A + B A <- X - B (fausse) B<- X - A (fausse) on ne peut pas utiliser directement un solveur sur les réels

25 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 25 Extension aux flottants (résultats) FP-Box-consistance : utilisation heuristique des algos de consistance sur les réels FP-2B-consistance : adaptation spécifique de la consistance de bornes aux cas des flottants (étude des fonctions de projections directes et inverses pour les opérations arithmétiques et de conversion)

26 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 26 Extension aux structures dynamiques (problématique) LIFC (Legeard, Bouquet, Ambert, Gaspari, Parreaux) TSA 1 variable du programme 1 var log pour chaque modif. Si modif via pointeur var logique ? i:=i+1; > I2=I1 +1 *p := 3; > (*p)1=3 (impact sur i ?) j:= i + 2; > J1 = I? + 2 Ajout de contraintes gardées reposant sur l analyse statique des relations de pointage : p pointe_vers i -> I3=3 ; I3=I2 p pointe_vers k -> K1=3; K1=K0 …

27 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 27 Extension aux structures dynamiques (résultats) Introduction d inconnues représentant un état de la mémoire = (ensemble de couples Adresse-Valeur) Définition d une couche de contrainte intermédiaire (ajout, accès, maj) sur ces états i:=i > acces(ad(i),M1,I1) I2 = I1 + 1 maj(M2,M1,ad(i),I2) *p:= > acces(ad(p),M2,P1) EP1 = 3 maj(M3,M2,P1,EP1), j:=i > acces(ad(i),M3,I3), J4 = I3 + 2 maj(M4,M3,ad(j),J4)

28 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 28 Extension au test dintégration (problématique) LSR (Ioannis Parissis, Karim-Cyril Griche) TSA Test unitaire des fonctions de haut niveau en utilisant le code des fonctions de niveau inférieur comment éviter l explosion d INKA?

29 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 29 Extension au test dintégration (résultats) 1/ Utilisation du contexte d appel pour simplifier la fonction appelée 2/ Création automatique de modèles partiels d une fonction, Affectation de poids caractéristiques du coût à ces modèles, Utilisation successive de ces modèles (à partir du moins coûteux) 3/Paramètrage du solveur d INKA pour limiter l utilisation du modèle d une fonction appelée lors de l évaluation des contraintes if et while

30 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 30 Poursuite du développement d INKA Développement de la version V2 en cours intégration des extensions flottants et pointeurs prise en compte de C++ (sauf aspects dynamiques, templates,..) critère MC/DC...

31 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 31 Autres applications de la modélisation du programme en contraintes Projet DANOCOPS (label RNTL 2002) : Détection automatique de Non-Conformités Programme-Spécification Automatic Metamorphic Testing, Gotlieb & Botella COMPSAC 03

32 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 32 Le projet DANOCOPS Programme Système de contraintes InKa Spécifications Système de contraintes Λ Confrontation

33 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 33 Danocops : Exemple Non-conformité d une méthode vis à vis dun invariant Soit un invariant Inv sur la classe C, Soit une méthode F de la classe C, On recherche : S(Inv avant ) Λ S(F) Λ ¬S(Inv après ) Trois possibilités : > Échoue pas de défaut > Réussit cas de défaut > Time Out ne sait pas S(Inv avant ) Λ S(F) Λ S(Inv après ) Trois possibilités : > Échoue que des défauts > Réussit cas normal > Time Out ne sait pas ET

34 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 34 Automatic Metamorphic Testing Pas d oracle Connaissance de propriétés du programme vis à vis de ses entrées Exemple commutativité des entrées : min(X,Y) = min(Y,X) Metamorphic Testing : choisir X et Y et vérifier la propriété. Automatic Metamorphic Testing Chercher X et Y tels que {R=min(X,Y), R1=min(Y,X), R<>R1} Echoue -> la propriété est vérifiée Reussit -> cas de test provoquant une erreur dans le programme

35 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 35 INKA : A comparison function trityp Jtest / C++test Parasoft : 63 % in 30s Inka prototype : 100% in 3s (random generation : 86% in 30s)

36 THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées sans l'accord écrit de Thales Systèmes Aéroportés. T10406b 36 Temps requis pour générer un cas de test Temps CPU (sec) Numéro sommet Aléatoire +5h Succès sur les sommets difficiles à atteindre InKa Programme Trityp.c


Télécharger ppt "THALES SYSTEMES AEROPORTES Les informations contenues dans ce document sont la propriété exclusive du Groupe Thales. Elles ne doivent pas être divulguées."

Présentations similaires


Annonces Google