Gestion de tests et
tests de performance avec Salomé-TMF & CLIF
Orange Labs
Bruno Dillenseger, Marche Mikael Recherche & Développement
22/05/2008, présentation à LinuxDays 2008
Sommaire
partie 1 Salomé-Test Management Framework
Processus de qualification
Utilisation à Orange Labs
RoadMap 2008
partie 2 CLIF is a Load Injection Framework
Principe du test de performance
CLIF et son utilisation à Orange Labs
Perspectives 2008
Salomé-TMF
un logiciel libre de gestion de tests
‘adaptable’
Le processus de qualification
Constat
– Les "bugs" coûtent très cher aux entreprises – financièrement
– en terme d'image
Objectif
– Améliorer la qualité des produits et services
– Traçabilité entre les exigences, les tests, et les anomalies – Centraliser les données et résultats de tests
Moyen
– Disposer d’un référentiel commun outillant l’activité de qualification
Activités du processus
Préparation
Responsable de qualification
Plan de qualification Exigences
Conception
Responsable de qualification, testeurs
Exécution
Testeurs
Plan et campagnes de tests
Résultats de tests Anomalies
Bilan
Responsable de qualification, testeurs
Bilan de qualification
Itérations
Salomé-TMF au centre de l'activité
Exigences Tests
Campagnes Anomalies
Salomé-TMF
Plan de qualification Spécifications
PréparationConceptionExécutionBilan
Traduction
gère les exigences
(création et modifications)
Salomé-TMF est le référentiel commun à tous les acteurs du projet pour la qualification
Chef de projet Testeur
Outils de tests (IHM, charge, protocole, …) fourni les infos pour
Exigences Tests
Campagnes Anomalies
contrôle Salomé-TMF
Développeur
(interne ou externe)
gère et contrôle
corrige les anomalies Plan de qualification
Bilan de qualification
permet d'organiser
Spécifications
Responsable de qualification,
administrateur outil Responsable exigences
s'informe et contrôle conçoit et exécute les tests
Soumet des anomalies
Positionnement de SaloméTMF à OrangeLabs R&D
Une solution "OpenSource" alternative à QualityCenter
– Réduction des coûts de licence – Multi-OS (100% Pure Java)
Une solution simplifié
– Gestion du plan de test, des campagnes (simplifiée par rapport à QC) – Gestion des exigences/anomalies intégrées
– Production de documents (HTML, PDF, …)
Une solution ouverte
– Intégration avec des plates-formes/outils existants : – Mantis, Codex, Gforge, …
– Import/Export XML : format ouvert – Import/Export vers QC (8&9)
– Architecture à plug-ins
Une solution adaptée à l’automatisation des tests
– IHM Web (Selenium) , … – Test scripté Java (Beanshell)
– API ouverte (remote Ant, ligne de commande, …)
Principaux Plug-ins : DocXML
Import/export, production de documents
– Fondée sur XML + XSL, permet d’échanger les données entre projets, et de produire des documents (Plan de tests, cahier d’exigences, résultats de campagne) aux formats HTML et PDF
Principaux Plug-ins : Mantis
Gestion des anomalies
– Fondée sur Mantis :
– Permet de centraliser les anomalies de développement, de qualification et de mise en production (via l’accès à Mantis) et de gérer leur cycle en relation avec les tests et les exigences
Principaux Plug-ins : Requirements
Gestion des exigences
– Permet de gérer et de suivre la couverture (tests) et la satisfaction (anomalies) des exigences
Success stories
O range HomeScreen (Couplage Java CLDC)
– Tests de conformité du « HomeScreen » sur les différents device mobile d’Orange
Orange Partner (Couplage Selenium)
– Tests fonctionnels : scénarios d'utilisation du service
– authentification, navigation, upload, …
– Tests d’intégration : scénarios de conformité de bout-en-bout
– Interface web <-> Outils de vérification des midlets <-> base de données <-> interface web
Next Service Broker (Couplage CruiseControl/RemoteAnt)
– Référencement des tests unitaires, lien exigences, automatisation des recettes de livraison
RoadMap Salomé-TMF 2008
Version 3.0 en cours
– Stabilisation/Maintenance de la V3 – Intégration avec Codex
Version mineure 3.1 : Septembre 2008
– Amélioration de fonctions existantes :
– Copier/coller , filtre sur les exigences, quelques « feature request » – Ajout de « templates » de tests :
– Template = tests abstrait pouvant définir des actions, et des champs utilisateurs
– Un test qui hérite d’un « template », intègre les actions du template et peut définir des valeurs aux champs utilisateurs
– Plug-in CLIF : Possibilité de définir et d’exécuter des tests de charge – Amélioration de l’internationalisation
Version mineure 3.2 : Fin 2008
– Ajout de la notion de répertoire au dessus des familles de tests – Extension de l’interface SOAP au plugin Mantis
CLIF
un canevas logiciel libre hautement adaptable pour le test de
performance par injection de charge
Principe du test de performance par injection de charge
Système Sous Test injecteur 1
injecteur 2
injecteur n
Les injecteurs de charge :
• émettent des requêtes, attendent les réponses, et mesure le temps de réponse
• selon un certain scénario
• par exemple, en émulant le trafic d'utilisateurs réels par des utilisateurs virtuels
supervision
sondes
sondes Contrôle des
injecteurs et des sondes
Les Sondes mesurent la consommation des
ressources de calcul
Evaluation des performances par injection de charge : constats
La métrologie est un travail de spécialiste
maîtrise d'outils éprouvés, riches mais parfois complexes, et surtout très onéreux
On doit tester la tenue en charge au plus tôt dans le cycle de développement d'un logiciel
Les besoins sont très variés
différents systèmes à tester, différents objectifs de qualification, différents profils d'utilisateur...
Le double compromis du test...
– entre le coût d'une campagne de test et le coût de pannes – entre la durée d'une campagne de test et le time-to-market
Vers un canevas logiciel pour le test en charge « agile »
Problématique de la prémétrologie
– généraliser la pratique le test de performance (au sein même des équipes de développement)
– le rendre techniquement accessible, rapide et au moindre coût
Solution proposée par CLIF
– un canevas logiciel hautement et rapidement adaptable permettant de factoriser de façon optimale des fonctions communes aux différents cas de test
CLIF is a Load Injection Framework
CLIF est un canevas logiciel à base de
composants pour l'injection de charge et la mesure de performance
– ouvert, adaptable et extensible :
– systèmes sous test variés (protocoles, sondes...) – modes de définition des scénarios de charge – interfaces utilisateurs et intégrations diverses
(Eclipse, Java/Swing, ligne de commande...)
– multi-système d'exploitation (basé sur Java)
– logiciel libre du consortium OW2 (ex ObjectWeb)
– grande puissance de charge
– injection de charge répartie
– jusqu'à plusieurs millions d'utilisateurs virtuels
– Lutèce d'Or 2007 du meilleur projet libre réalisé par un grand groupe
Edition d'un "plan de test"
Exécution et suivi d'un test
Sondes CLIF
Sondes système disponibles pour Linux, Windows et MacOSX:
– cpu / utilisation des processeurs
– memory / utilisation mémoire et swap – network / réception, émission
– disk / lectures, écritures disques
Sondes JVM pour suivre l'utilisation de la mémoire et le Garbage Collector des machines virtuelles Java
Cadre pour définir ses propres sondes
sondes SNMP, JMX, ...
ISAC is a Scenario Architecture for CLIF
ISAC est un environnement de définition de scénarios formels pour CLIF :
– comportements (utilisateurs virtuels)
– séquences mêlant requêtes sur le SST et temps de pause (think time)
– structure logique : if-then-else, boucle while, choix probabiliste, préemption
– profil de charge pour chaque comportement
nombre d'utilisateurs virtuels en fonction du temps
Extensibilité : plug-ins ISAC
ISAC est générique et extensible par plug-ins :
– protocoles d'invocation
DNS, UDP, TCP, LDAP, HTTP, JDBC...
– temps d'attente
constant, aléatoire, calculé...
– conditions
pour les instructions if/while/preemption
– fourniture de jeux de données
à partir de fichiers, calculés, générés aléatoirement, extraits de réponses précédentes...
Un assistant ( wizard ) Eclipse permet de
définir ses propres plug-ins
Editeur de scénarios ISAC
Outils complémentaires pour la capture et le rejeu
Chaque plug-in ISAC d'injection peut être
associé à un outil de capture produisant des comportements ISAC, dans le but de rejouer des sessions réelles.
Exemple pour HTTP (utilisation du proxy MaxQ) :
internaute
enregistrement des requêtes et des requêtes HTTP
application web MaxQ
requêtes HTTP transmises
Le contexte du Groupe France Télécom
En tant qu'opérateur de télécommunication intégré, Orange rassemble une grande diversité :
– réseaux fixes/mobiles/sans fil/domestique – trafic voix, voix sur IP, vidéo, données...
– systèmes répartis à large échelle : infrastructures réseau, systèmes d'information et de commande, plates-formes de service
– équipes R&D spécialisées sur les réseaux fixes, réseaux mobiles, services, middleware...
– une multitude de protocoles/technologies, d'objectifs de performance, de compétences
Plus de 161 millions d'abonnés dans 220 pays
– La qualité de service est la priorité numéro 1
– Dimensionnement et test en charge sont essentiels
CLIF à Orange Labs (1/2)
CLIF a été appliqué à une trentaine de projets R&D
Prémétrologie, voire métrologie en l'absence d'autre outil
Les capacités d'adaptation ont été largement exploitées
Temps classique pour intégrer une sonde ou un injecteur : 2j
Exemples
– middleware orienté message (protocoles asynchrones)
– contexte Machine-to-Machine
– utilisation d'injecteurs et sondes spécifiques afin de récupérer les temps de réponse globaux et intermédiaires dans des échanges de message asynchrones.
– plate-forme de réservation de ressources réseau
Un injecteur spécifique a été défini pour ce protocole propriétaire.
CLIF à Orange Labs (2/2)
Exemples (suite)
– Trafic SOAP/HTTP(S) sur un équipement XML d'infrastructure SOA
– le but était de mesurer les performances de l'équipement XML (pas des services)
les services ont été remplacés par des “bouchons”
– utilisation de sondes SNMP (équipement) et JMX (JVM) – utilisation de l'injecteur HTTP et rejeu de requêtes SOAP
– DNS en cluster
– haut débit (8000 requêtes/s par injecteur de charge) – test très consommateur de ressource réseau et disque,
nécessitant un tuning système des injecteurs de charge
– Logiciel de gestion de tests Salomé-TMF
– injecteurs spécifiques pour l'API Java de Salomé-TMF – 40 injecteurs de charge en parallèle
– serveurs DHCP, SGBD mémoire (JDBC)...
Conclusion
CLIF outil de prémétrologie “universel”
– approche architecturale à composants pour une adaptabilité optimale
– logiciel libre, aux fonctionnalités avancées par rapport aux autres outils libres
généricité, sondes, répartition, scénarios ISAC...
– disponible sur tout environnement supportant Java – intégration à Eclipse
Travaux en cours
– développement d'outils d'analyse et de production de rapports – intégration à Salomé-TMF
– axe de recherche sur l'extension de l'architecture de CLIF pour introduire des capacités de test autonome