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 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/2001 --> 01/2003)

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

Embed Size (px)

Citation preview

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

1

LE PROJET INKAB.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/2001 --> 01/2003)

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

2

Cycle en VValidation en volValidation en vol

Validation sur bancValidation sur banc

Validation

Globale

Conception

Globale

Codage

Test Unitaires

(et d’Intégration)

Tests du Logiciel /

Fonction

opérationnelle

Exigences

Modèle UML

Modèle UML

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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 test Sorties

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

5

Structural testing is indispensable !

Undetected fault byfunctional testingpatch -> 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 ;

}

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

6

Graphe de flot de contrôle

f( int i ) { j := ... if( Condition1 ) j := ...

if( Condition2 ) j := ...

return j }

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

7

f( int i ) { j := ... if( Condition1 ) j := ...

if( Condition2 ) j := ...

return j }

f

v

Graphe de flot de contrôle

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

8

f( int i ) { j := ... if( Condition1 ) j := ...

if( Condition2 ) j := ...

return j }

f

v

Graphe de flot de contrôle

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

9

f( int i ) { j := ... if( Condition1 ) j := ...

if( Condition2 ) j := ...

return j }

f

v

v

f

Graphe de flot de contrôle

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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 ?

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

12

f( int i ) { j := 2 if( i 16 ) j := j * i if( j > 8)

j := 0

return j }

valeur de i ?

J > 8supposons I > 16 I > 16 => J = 2 or J > 8 --> impossiblesoit I > 16 soit I 16--> I 16(I 16) => J = 2 * Ior J > 8 et I 16--> 4 < I 16 choix : I = 5

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

14

Principe Technique

Entrees Sorties

+Point sélectionné

Programme à contraintes

Entrées Sorties+Requête

12 2

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

15

Modélisation d ’une affectation

i := i + 1 i2 = i1 + 1

f( int i ) { j := 2 if( i 16 ) j := j * i if( j > 8)

j := 0

return j }

Inconnue : i0

j0 = 2 if( i0 16 ) j1 = j0 * i0

j2 = j1

else j2 = j0

if( j2 > 8) j3 = 0

else j3 = j2

r = j3

Inconnue : r

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

16

Modélisation d ’une condition

Cond => j1 = j0* i0 j2 = j1

Cond => j2 = j0

(j1 = j0* i0 j2 = j1 ) => ( Cond j2 = j0 )

(j2 = j0 ) => ( Cond j1 = j0* i0 j2 = j1)

if( Cond )

j1 = j0* i0

j2 = j1 j2 = j0

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

17

Système de contraintes

Inconnue : i0

j0 = 2

i0 16 => (j1 = j0 * i0 j2 = j1)

i0 > 16 => j2 = j0

(j1 = j0* i0 j2 = j1 ) => (i0 > 16 j2 = j0)(j2 = j0 ) => (i0 16 j1 = j0* i0 j2 = j1)

j2 > 8 => j3 = 0 j2 8 => j3 = j2

(j3 = 0) => (j2 8 j3 = j2) (j3 = j2) => (j2 > 8 j3 = 0)

r = j3

Inconnue : r

Inconnue : i0

j0 = 2 if( i0 16 ) j1 = j0 * i0

j2 = j1

else j2 = j0

if( j2 > 8) j3 = 0

else j3 = j2

r = j3

Inconnue : r

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

18

Exploitation du système de contraintes

Inconnue : i0

j0 = 2 i0 16 => (j1 = j0 * i0 j2 = j1)

i0 > 16 => j2 = j0

(j1 = j0* i0 j2 = j1 ) => (i0 > 16 j2 = j0)(j2 = j0 ) => (i0 16 j1 = j0* i0 j2 = j1)

j2 > 8 => j3 = 0 j2 8 => j3 = j2

(j3 = 0) => (j2 8 j3 = j2) (j3 = j2) => (j2 > 8 j3 = 0)

r = j3

Inconnue : r

i0 = 18

i0 = 4

2 r 8

r = 12

r = 8

r = 2

impossible

1 i0 4

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

19

Sélection d’un point

Utilisation des dépendances de contrôle [Ferrante et al. TOPLAS’87]

= ensemble de conditions à vérifier

Condition4 Condition2 Condition1

Contraintes issues du Programme CLP

v

f

f

v

v

v

Condition1

Condition2

Condition4

Condition3

8

2

3

4

5 6

7

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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 : i0

j0 = 2 i0 16 => (j1 = j0 * i0 j2 = j1)

i0 > 16 => j2 = j0

(j1 = j0* i0 j2 = j1 ) => (i0 > 16 j2 = j0)(j2 = j0 ) => (i0 16 j1 = j0* i0 j2 = j1)

j2 > 8 => j3 = 0 j2 8 => j3 = j2

(j3 = 0) => (j2 8 j3 = j2) (j3 = j2) => (j2 > 8 j3 = 0)

r = j3

Inconnue : r

J2 > 8

4 < i0 16

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

21

Projet INKA : Historique

1995 : Début de la Recherche sur les extensions du produit d’exécution de test DEVISOR ( Dassault Electronique)

1996 : Génération automatique de cas de test, basée sur l’utilisation 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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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)

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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 !

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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)

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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+1 -----------------------------------> acces(ad(i),M1,I1)

I2 = I1 + 1

maj(M2,M1,ad(i),I2)

*p:=3 -------------------------------------> acces(ad(p),M2,P1)

EP1 = 3

maj(M3,M2,P1,EP1),

j:=i + 2 ------------------------------------> acces(ad(i),M3,I3),

J4 = I3 + 2

maj(M4,M3,ad(j),J4)

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

28

Extension au test d’inté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?

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

29

Extension au test d’inté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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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•...

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

32

Le projet DANOCOPS

Programme

Système de contraintes

InKa

Spécifications

Système de contraintes Λ Confrontation

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

33

Danocops : Exemple Non-conformité d ’une méthode vis à vis d’un invariant

Soit un invariant Inv sur la classe C,

Soit une méthode F de la classe C,

On recherche :

S(Invavant) Λ S(F) Λ ¬S(Invaprès)

Trois possibilités :>Échoue pas de défaut

>Réussit cas de défaut

>Time Out ne sait pas

S(Invavant) Λ S(F) Λ S(Invaprès)

Trois possibilités :>Échoue que des défauts

>Réussit cas normal

>Time Out ne sait pas

ET

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

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

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

35

INKA : A comparison

function trityp

Jtest / C++test Parasoft : 63 % in 30s

Inka prototype : 100% in 3s

(random generation : 86% in 30s)

Page 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

THALES SYSTEMES AEROPORTES

Les

info

rmat

ions

con

tenu

es d

ans

ce d

ocum

ent

sont

la p

ropr

iété

exc

lusi

ve d

u G

roup

e T

hale

s. E

lles

ne d

oive

nt p

as ê

tre

divu

lgué

es s

ans

l'acc

ord

écrit

de

Tha

les

Sys

tèm

es A

érop

orté

s.

T10

406b

36Temps requis pour générer un cas de test

5

15

10

Temps CPU (sec)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22Numérosommet

Aléatoire

+5h

Succès sur les sommets difficiles à atteindre

InKa

Programme Trityp.c