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 2
Salomé-TMF un logiciel libre de gestion de tests adaptable 3
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 4
Activités du processus Exigences Préparation Responsable de qualification Conception Plan de qualification Responsable de qualification, testeurs Plan et campagnes de tests Testeurs Résultats de tests Anomalies Exécution Itérations Bilan 5 Responsable de qualification, testeurs Bilan de qualification
Salomé-TMF au centre de l'activité Préparation Plan de qualification Spécifications Conception Salomé-TMF Traduction Exigences Tests Exécution Campagnes Anomalies 6 Bilan Bilan de qualification
Salomé-TMF est le référentiel commun à tous les acteurs du projet pour la qualification Testeur Responsable exigences Responsable de qualification, administrateur outil Chef de projet Développeur (interne ou externe) conçoit et exécute les tests gère et contrôle Soumet des anomalies gère les exigences (création et modifications) Salomé-TMF Plan de qualification corrige les anomalies permet d'organiser Exigences Spécifications fourni les infos pour Bilan de qualification s'informe et contrôle Tests Campagnes contrôle Outils de tests (IHM, charge, protocole, ) Anomalies 7
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, ) 8
Principaux Plug-ins : DocXML Import/export, production de documents 9 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 10 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 11 Permet de gérer et de suivre la couverture (tests) et la satisfaction (anomalies) des exigences
Success stories Orange 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 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) 12 authentification, navigation, upload, Référencement des tests unitaires, lien exigences, automatisation des recettes de livraison
RoadMap Salomé-TMF 2008 Version 3.0 en cours 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 13 Stabilisation/Maintenance de la V3 Intégration avec Codex 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 14
Principe du test de performance par injection de charge injecteur 1 Les Sondes mesurent la consommation des ressources de calcul sondes supervision injecteur 2 sondes Contrôle des injecteurs et des sondes Système Sous Test 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 15
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 16
Vers un canevas logiciel pour le test en charge «agile» Problématique de la prémétrologie 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 généraliser 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 17
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 18
Edition d'un "plan de test" 19
Exécution et suivi d'un test 20
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,... 21
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 22
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... 23 Un assistant (wizard) Eclipse permet de définir ses propres plug-ins
Editeur de scénarios ISAC 24
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) : MaxQ requêtes HTTP requêtes HTTP transmises internaute enregistrement des requêtes et des temps d'attente comportements ISAC 25 application web
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 26
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. 27
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)... 28
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 29
merci salome-tmf.ow2.org clif.ow2.org