23
Test intégré de Test intégré de composants basé sur les composants basé sur les contrats contrats Apinya TANGKAWANIT Apinya TANGKAWANIT

Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

Embed Size (px)

Citation preview

Page 1: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

Test intégré de composants basé Test intégré de composants basé sur les contratssur les contrats

Apinya TANGKAWANITApinya TANGKAWANIT

Page 2: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

2

IntroductionIntroduction

Le développement logiciel a besoin de la Le développement logiciel a besoin de la vérification et la validation qui permettent vérification et la validation qui permettent d'assurer la fonctionalité et la fiabilité du système.d'assurer la fonctionalité et la fiabilité du système.

Le test est une des activités principales de ces Le test est une des activités principales de ces processus.processus.

La notion de test embarqué et la contractualisation La notion de test embarqué et la contractualisation de composant ont été proposéesde composant ont été proposées

Page 3: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

3

PlanPlan

IntroductionIntroduction Validation au niveau des objetsValidation au niveau des objets

• Bases du test objetBases du test objet• Vers la conception pour la confianceVers la conception pour la confiance

Validation des composantsValidation des composants• Built-in testBuilt-in test• Composants hiérarchiquesComposants hiérarchiques

FractalFractal Tests basés sur les contrats (Confract)Tests basés sur les contrats (Confract)

ConclusionConclusion

Page 4: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

4

Validation au niveau des objetsValidation au niveau des objets

Bases du test objetBases du test objet• Type de testType de test

Test unitaireTest unitaire Test d'intégrationTest d'intégration Test systèmeTest système

• Critères de testCritères de test Test “boite noire” ou fonctionnelTest “boite noire” ou fonctionnel Test “boite blanche” ou structurelTest “boite blanche” ou structurel

Page 5: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

5

Validation au niveau des objetsValidation au niveau des objets

Bases du test objetBases du test objet• Test du logiciel orienté objetTest du logiciel orienté objet

Junit [Beck,1999]: un framework adapté à la

structure des objets trois notions principales

TestCaseTestSuite

TestRunner

Page 6: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

6

Validation au niveau des objetsValidation au niveau des objets

Bases du test objetBases du test objet• Test embarqué basé sur les contratsTest embarqué basé sur les contrats

PréconditionPrécondition PostconditionPostcondition InvariantInvariant

ContratContrat contrats de basecontrats de base (ou syntaxique) (ou syntaxique) contrats comportementauxcontrats comportementaux contrats de synchronisationcontrats de synchronisation contrats de qualité de servicecontrats de qualité de service

• Les préconditions limitent le champ des testsLes préconditions limitent le champ des tests

• Les postconditions sont les Les postconditions sont les oraclesoracles

Page 7: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

7

Validation au niveau des objetsValidation au niveau des objets

Bases du test objetBases du test objet• Modèle des classes autotestables Modèle des classes autotestables

(Stclass)(Stclass)[Deveaux, 2001][Deveaux, 2001]

Ce framework supporte la méthodologie de Ce framework supporte la méthodologie de « design by Contract » et le test intégré pour « design by Contract » et le test intégré pour Java Java..

• Des contrats vérifiables à l'exécution en JavaDes contrats vérifiables à l'exécution en Java• Organisation des testsOrganisation des tests• Héritage et classes abstraitesHéritage et classes abstraites

Page 8: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

8

Validation au niveau des objetsValidation au niveau des objets

Principe « Diviser pour régner »

•Vers la conception pour la Vers la conception pour la confianceconfiance

Page 9: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

9

Validation au niveau des objetsValidation au niveau des objets

Vers la conception pour la confianceVers la conception pour la confiance• Vers des composants de confianceVers des composants de confiance

Pour améliorer le logiciel, le développeur formalisme au maximum la spécification et le comportement de chaque composant

« design for trustability »« design for trustability »

Page 10: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

10

Validation au niveau des objetsValidation au niveau des objets

Vers la conception pour la confianceVers la conception pour la confiance• La conception en triangleLa conception en triangle

Page 11: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

11

PlanPlan

IntroductionIntroduction Validation au niveau des objetsValidation au niveau des objets

• Bases du test objetBases du test objet• Vers la conception pour la confianceVers la conception pour la confiance

Validation des composantsValidation des composants• Built-in testBuilt-in test• Composants hiérarchiquesComposants hiérarchiques

FractalFractal Tests basés sur les contrats (Confract)Tests basés sur les contrats (Confract)

ConclusionConclusion

Page 12: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

12

Validation des composantsValidation des composants

Composant : « toutes classes ou ensemble Composant : « toutes classes ou ensemble de classes prévu pour être réutilisé dans de de classes prévu pour être réutilisé dans de nombreuses applications et pour lesquels nombreuses applications et pour lesquels un protocole d'emploi est explicitement un protocole d'emploi est explicitement défini »défini »

évolution de la notion de composant:évolution de la notion de composant:• Interfaces fournies et requisesInterfaces fournies et requises• Environnement d'exécution (middleware)Environnement d'exécution (middleware)• Membranes et contrôleur explicitesMembranes et contrôleur explicites

Page 13: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

13

Validation des composantsValidation des composants

Test embarqué (built-in test)Test embarqué (built-in test)[Groß, 2003][Groß, 2003]

• Objectif:vérifier que l'environnement du Objectif:vérifier que l'environnement du composant ne change pas son fonctionnement composant ne change pas son fonctionnement originel. originel.

• basé sur la notion de contrat qui travaille sur le basé sur la notion de contrat qui travaille sur le comportement des composants logiciels.comportement des composants logiciels.

Page 14: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

14

Validation des composantsValidation des composants

Test embarqué (built-in test)Test embarqué (built-in test)• Composant testeurComposant testeur

Page 15: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

15

Validation des composantsValidation des composants

Test embarqué (built-in test)Test embarqué (built-in test)• Composant testableComposant testable

Page 16: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

16

Validation des composantsValidation des composants

• Le composant

• Le contrôleur

Composants hiérarchiquesComposants hiérarchiques• Composant Fractal Composant Fractal [Collet, 2004][Collet, 2004]

Page 17: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

17

Validation des composantsValidation des composants

Composants hiérarchiquesComposants hiérarchiques• Confract Confract [Collet, 2005][Collet, 2005]: propose une : propose une

infrastructure pour appliquer l’approche infrastructure pour appliquer l’approche contractuelle à Fractal.contractuelle à Fractal.

Types de contrat : Types de contrat : Le contrat Le contrat de bibliothèquede bibliothèque    Le contrat Le contrat d’interface d’interface  Le contrat Le contrat de composition externede composition externe    Le contrat Le contrat de composition internede composition interne   

Page 18: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

18

Validation des composantsValidation des composants Composants hiérarchiquesComposants hiérarchiques

• ConFract (suite)ConFract (suite) Les contrats sont dits :Les contrats sont dits :

• Ouvert : la spécification peut être modifiéeOuvert : la spécification peut être modifiée• Fermé : la spécification est stableFermé : la spécification est stable

Le contrat est composé une liste de:Le contrat est composé une liste de: SpécificationsSpécifications

• Fournies avec un langage d'assertion CCL-Fournies avec un langage d'assertion CCL-J(“pre”, “post”, “rely”, “inv” et “guarantee”).J(“pre”, “post”, “rely”, “inv” et “guarantee”).

ParticipantsParticipants• GarantGarant• BénéficiaireBénéficiaire• ContributeurContributeur

Page 19: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

19

Validation des composantsValidation des composants

Composants hiérarchiquesComposants hiérarchiques• Exemple: un photocopieurExemple: un photocopieur

Quatre composants:• Scanner• Driver• Printer• Finalizer

Page 20: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

20

Validation des composantsValidation des composants

•Composants hiérarchiquesComposants hiérarchiques Exemple: un photocopieurExemple: un photocopieur

Page 21: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

21

Validation des composantsValidation des composants

•ComposantshiérarchiquesComposantshiérarchiques Exemple: un photocopieurExemple: un photocopieur

Page 22: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

22

Conclusion Conclusion

Cette étude a permis Cette étude a permis

• de caractériser les approches de test appliquées aux de caractériser les approches de test appliquées aux environnements à objets, en particulier, les tests environnements à objets, en particulier, les tests embarqués basés sur les contrats,embarqués basés sur les contrats,

• de voir l'intéret et les limites de STclass,de voir l'intéret et les limites de STclass,

• d'identifier certaines approches de test sur les d'identifier certaines approches de test sur les composants, en particulier celle du « builtin-test »,composants, en particulier celle du « builtin-test »,

• de détailler le modèle de contrats Confract qui donne la de détailler le modèle de contrats Confract qui donne la possibilité d'étendre cette approche aux composants possibilité d'étendre cette approche aux composants Fractal.Fractal.

La suite du stage consistera à développer le test embarqué La suite du stage consistera à développer le test embarqué

sur Fractal et Confract, et à appliquer les principes du DfT au sur Fractal et Confract, et à appliquer les principes du DfT au

niveau des composants.niveau des composants.

Page 23: Test intégré de composants basé sur les contrats Apinya TANGKAWANIT

23

Questions?Questions?