Upload
felice-guillot
View
105
Download
0
Embed Size (px)
Citation preview
Test intégré de composants basé Test intégré de composants basé sur les contratssur les contrats
Apinya TANGKAWANITApinya 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
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
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
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
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
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
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
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 »
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
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
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
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.
14
Validation des composantsValidation des composants
Test embarqué (built-in test)Test embarqué (built-in test)• Composant testeurComposant testeur
15
Validation des composantsValidation des composants
Test embarqué (built-in test)Test embarqué (built-in test)• Composant testableComposant testable
16
Validation des composantsValidation des composants
• Le composant
• Le contrôleur
Composants hiérarchiquesComposants hiérarchiques• Composant Fractal Composant Fractal [Collet, 2004][Collet, 2004]
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
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
19
Validation des composantsValidation des composants
Composants hiérarchiquesComposants hiérarchiques• Exemple: un photocopieurExemple: un photocopieur
Quatre composants:• Scanner• Driver• Printer• Finalizer
20
Validation des composantsValidation des composants
•Composants hiérarchiquesComposants hiérarchiques Exemple: un photocopieurExemple: un photocopieur
21
Validation des composantsValidation des composants
•ComposantshiérarchiquesComposantshiérarchiques Exemple: un photocopieurExemple: un photocopieur
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.
23
Questions?Questions?