Title: Intgration du test dans les composants logiciels
1Intégration du test dans les composants logiciels
- Nicolas BELLOIR et Jean-Michel BRUEL
- Laboratoire dInformatique de lUniversité de Pau
et des pays de lAdour (LIUPPA)
2Introduction
- Travaux financés par Component
- Un constat
- Importance de la CBSE, de la réutilisabilité et
des COTS - Difficulté de la phase dassemblage
- Intégration tardive des composants
- Un objectif
- Nécessité de fiabiliser la phase dassemblage
HCSS01 - Validation de lassemblage des composants la
technologie BIT
3Plan de lexposé
- Introduction
- Les principes de la technologie BIT
- Une mise en uvre de la technologie BIT
- Exemple de composant testable la pile
- Conclusion
4Le projet Component
- Projet Européen nIST-20162
- 7 partenaires Engineering (Italie),
IESE(Allemagne), IVF (Suède), Labein (Espagne),
Philips Electronics (Royaume Uni), Southampton
Institute (Royaume Uni) et Université de Pau et
des Pays de l'Adour (France) - 2,5 Millions d Euros
- http //www.component-plus.org
5Phases de test pour les composants
- Test unitaire du composant (fournisseur)
- Validation dans lenvironnement de développement
(fournisseur) - Déploiement dans un environnement réel (client)
- Réutilisation
- COTS
- Principe Test intégré dans les composants
(Built-In Test)
6Deux aspects envisagés Contract Testing Vs QoS
Contract Testing
C2
C1
Quality of Service
Système
7Contract Testing
- Relation de type Client - Serveur
- Engagement formel entre un composant et ses
clients (autres composants) - Description formelle du comportement
- Vérification sémantique 2 aspects
- Validité du support sur lequel le composant est
déployé - Vérification du bon fonctionnement des services
du composant par les clients
8Comportement du composant
- Modélisé à laide de la notion détats
- Statecharts
- Le Diagramme détat représente le comportement
- Manipulation du composant à laide dinterfaces
de test génériques - set_to_state ( String )
- is_in_state ( String ) Boolean
9Approche BIT
Testeur
10Plan de lexposé
- Introduction
- Les principes de la technologie BIT
- Une mise en uvre de la technologie BIT
- Exemple de composant testable la pile
- Conclusion
11Une mise en uvre de la technologie BIT
12Interfaces de Test
- généricité des interfaces de test
- execution_condition () Boolean
- is_testable () Boolean
- initialize_test () Boolean
- Finalize_test () Boolean
- Fournies par le BITC -gt Contrat de testabilité
13Implémentation en Java
14Plan de lexposé
- Introduction
- Les principes de la technologie BIT
- Une mise en uvre de la technologie BIT
- Exemple de composant testable la pile
- Conclusion
15LExemple de la Pile (1)
16LExemple de la Pile (2)
public class stack public Object pop ()
throws Exception public void push (Object
o) throws Exception
17LExemple de la Pile (3)
public class BIT_stack extends Stack implements
State_based_BIT_testability_contract
protected BIT_state _Empty // Etat ...
protected BIT_state_monitor _Stack // Automate
private void init_behavior() // Description
du comportement _Empty new
BIT_state ("Empty")
_Stack new BIT_state_monitor (_Empty.xor((
_OneElement).xor( _Full)), "Stack")
_Empty.inputState() // Point dentrée dans
lautomate public BIT_stack(int n)
throws Exception // Constructeur du composant
testable super()
init_behavior() ...
18LExemple de la Pile (4)
public boolean isEmpty () // fonctionnalités
de test if(activeEntry -1) return
true return false public
boolean isFull() public boolean
is_in_state (String name) // implémentation
des interfaces de manipulation return
state_machine().is_in_state(name) public
void configuration_1() throws StatechartException
// méthode de configuration du test
_Stack.fires(_Empty, _Empty, true, this, "pop",
null) _Stack.used_up_with_recovery()
19LExemple de la Pile (5)
BIT_stack bc new BIT_stack() // Instanciation
de la bit stack ... // Le résultat attendu est
une exception BIT_stack_exception_result bcer1
new BIT_stack_exception_result ("EmptyStackExcepti
on") // Création du test case State_based_BIT_te
st_case _sbbtc1 new State_based_BIT_test_case
(bc, "configuration_1", null, bcer1,
"Empty") // Lancement du test _sbbtc1.test() /
/ Interprétation du résultat (Failure ou
Success) System.err.println("Interpretation "
_sbbtc1.interpretation())
Testeur
20Conclusion
- La technologie BIT est
- une aide à lintégration
- une assistance au test (et non du test pur)
- Evaluation de lapport via des projets
industriels (en cours) - Une partie de la problématique dassemblage des
composants - Orientation Prise en compte de lassemblage
dès la phase danalyse