Que tester - Club utilisateurs des solutions Oracle
Transcription
Que tester - Club utilisateurs des solutions Oracle
<Insert Picture Here> Solutions de test autour de JDE Patrick Buzelin : Avant vente JDE Alain Chereau : Oracle Solution Center Ibrahim Joher : Avant vente OATS et Management Pack Philippe De Oliveira : Smile 28/05/2015 Journée club utilisateur JDE du 28 Mai 2015 Agenda • Les outils de tests • Concepts et enjeux • L’offre Oracle : Oracle Application Testing Suite * • L’offre Open Source : Smile Selenium • Les nouveautés liées aux dernières versions de Tools • Les outils de monitoring * * Retour d’expérience de Oracle Solution Center : centre de benchmark Oracle Concepts et enjeux des tests Constat • Vous investissez dans des applications (JDE ou autres) pour fournir un meilleur service à vos collègues, clients et partenaires • Cependant, les économies ne sont pas toujours réalisées à cause : • D’applications indisponibles • De données non fiables • De solutions non efficaces • Un manque de tests suffisants et efficaces est souvent la raison de ces problèmes 75% d’applications sont déployées sans être testées Source: Gartner La non qualité coute cher $100,000+ Coût d’1h d’indisponibilité de production non planifiée 80-10,000x Coût incrémental pour corriger les problèmes en production 80% Pourcentage d’indisponibilités non planifiées qui peut être éliminé par de meilleurs tests et une meilleure collaboration des équipes QA Source: Gartner Coût des bugs applicatifs Phase de détection Phase d’introduction Arch. Dév. Test. Prod. Architecture 1 10 15 25-100 Développement - 1 10 10-25 Source: Wikipedia Pourquoi ? Quoi ? Comment ? tester ? Pourquoi tester ? • S’assurer du bon fonctionnement et des bonnes performances des solutions informatiques utilisées (progiciels, logiciels, applicatifs maisons, interfaces,:) • S’assurer de la conformité de la solution avec les spécifications fonctionnelles et techniques La gestion de la qualité des applications est impérative pour l’agilité de l’entreprise et pour fournir des services de qualité à coût et risques faibles Que tester ? • L’ensemble des composants constituant la solution: • Connections • Paramétrage • Programmes • Standards • Spécifiques • Etats • Données saisies, alimentées, exploitées via reprises, interfaces,: • Performances via simulation: Comment tester ? • Identifier les transactions : • les plus importantes • Quelles sont les transactions qui impactent le plus mes objectifs business ? • Quelles transactions sont absolument critiques pour mes utilisateurs ? • les plus fréquentes • Tester le fonctionnement du système en fonction des montées en charge Comment tester ? • Lancer des campagnes de tests, en fonction des besoins : • Tests unitaires, • Tests de non regression • Tests d’intégrations, • Stress tests ,: Comment tester ? • Organiser les tests : - Script de test - Enchaînement des opérations à réaliser lors des tests pour valider un processus - Plusieurs scripts peuvent être requis pour couvrir un processus - Cas de test - Cas de figure / variante devant être testée dans le cadre de la validation d’un processus - Le plus simple : Pour un processus donné, chaque cas de test doit avoir ses propres Scripts - Fiche de test : - Document formalisant tout ou partie d’un script de test - 1 à N fiches pour un script de test Comment tester ? • Préciser les critères d’acceptance : • Définir le résultat escompté. • Définir les critères de réussite / d'échec Ex : 95% des cas de tests doivent être « réussis » • Préparer l’environnement, les acteurs et le planning de tests Comment tester ? • Dérouler les tests • Couvrir en priorité l’ensemble des processus quotidiens et récurrents • Effectuer un cycle complet d’activité • Commencer par les principaux cas de figures avant de traiter les variantes plus rares • Documenter les résultats • • • • Impression des pièces, Copie écran en cas d’anomalie, Archivage des fiches de tests et pièces / résultats associés :. Comment tester ? • Analyser les résultats ; • Liste des anomalies recensées et classification des anomalies (*) • Identification des anomalies bloquantes, i.e. dont la correction est impérative • Effectuer les corrections nécessaires • Réitérer les tests jusqu’a obtention des résultats attendus: Exemple de script détaillé =regroupé en synthèse par domaine= = puis en tableau de bord= Oracle Application Testing Suite Spécialisation sur technologie Oracle Mais pas que : web, Adobe Flex, web services Le marché Application Quality Management AQM Gartner Group MQ 2014 Oracle Application Testing Suite: Solution de test intégrée pour assurer la qualité, la performance et la fiabilité des applications Oracle Functional Testing (OFT) Automatisation des tests fonctionnels et de nonrégression Oracle Test Manager (OTM) Oracle Load Testing (OLT) Gestion du processus de tests, des exigences et des anomalies Test de charge, stress test et test de performance Oracle Test Manager : Plateforme de gestion et suivi des Tests • Gestion des tests sur une plate-forme web simple et unique • Définition des plans de tests & objectifs de qualité • Définition des tests automatiques et manuels • Pilotage de l’exécution des tests • Documentation et suivi des anomalies Oracle Test Manager • Est composé de 3 groupes permettant de gérer: • Requirements: Documentation et gestion des exigences • Tests: Création de plans de tests ; gestion et suivi des cas de tests (manuels et automatiques) • Issues: Gestion et suivi des fiches d’anomalies • Contient des états et tableaux de bord de suivi prédéfinis et configurables : • Reports: Etats standards ou personnalisés associés à : requirements, tests, issues • Dashboards: Permet de créer des tableaux de bord multi-reports • Contient un module d’administration : permet de gérer les utilisateurs, permissions, projets et champs personnalisés Requirements Requirement Details Requirements Tree View Requirements – Detail Tests Test Details Tests Tree View Test Steps Test Run History Tests – Detail Tests – Detail Tests – Manual Tests • “Manual Test” used to store test definitions and detailed tests steps for manual execution • Test developer must specify actions and expected results for each test step • Click “Run” to execute manual tests through the OTM interface • Test Run fields allow users to store information pertaining to that test run • Users then enter pass/fail result and comments for all test steps and test case • Results are archived in Run History Tests –scripts automatisés • “Oracle Functional Testing” & “OpenScript” est utilisé pour stocker et exécuter des scripts “automatisés” développés dans “OpenScript” • Il suffit de cliquer sur “Run” pour exécuter le script OpenScript à partir de Test Manager • La fenêtre “Test Run” permet de spécifier sur quel système exécuter le script et les informations associées à l’exécution de ce script • Test Manager lance OFT/OpenScript, charge le script et l’exécute • Les résultats sont récupérés et archivés dans “Run History” de Test Manager • L’exécution du script peut être schédulée à travers le “scheduler” de Test Manager Test Manager – Reports • Reports permet de visualiser l’information du projet complet : • • • • Utilisation de rapports / graphes, : par défaut Création de rapports personnalisés Impression de rapports ou export vers Excel (text) ou JPEG (charts) Sauvegarde de rapports comme public ou privé (My Reports) Test Manager – Dashboard • Dashboards permet de combiner plusieurs rapports en une simple vue : • Intègre rapports par défaut ou rapports personnalisés • Gérer comme public ou privée (My Dashboards) Pourquoi Test Manager? Valeur • Documenter tous les cas de test (manuel et automatique) dans un référentiel centralisé • Associer aux cas de tests les fiches de tests ou scripts automatisés afin de simplifier le processus de coordination global • Suivre et communiquer les statuts unitaires et globaux des tests • Relier les fiches d’anomalies au cas de tests afin qu’ils puissent être facilement reproduits • Partager l'information sur la globalité des tests Oracle Functional Testing : Automatiser les tests fonctionnel et de régression • Automatiser les transactions des applications Web & des Web Services • Exécuter des tests fonctionnels précis • Automatiser les tests de non-régression • Identifier et formaliser les défauts fonctionnels Comment ca marche ? Enregistrement d’ ’un script Click Record Enregistre les transactions Web dans Oracle Functional Testing Interface utilisateur de “Openscript” ” Script View Details View Results View Code du script • Web Functional Test script commands are recorded to Tree View and corresponding Java Code View Tree View Java Code View Script: Tree View • Graphical representation of the test script • Displays script commands as graphical tree nodes • Each node corresponds to commands in Code View • Commands can be updated from either view (synchronized) • Add, edit, remove, group, commands from Tree View Script: Code View • Java code representation of the test script • Displays script commands in Java code through Eclipse IDE • Code can be edited using Eclipse editors/debuggers • Tree View updated based on Java code edits • Syntax errors must be resolved before switching to Tree View Quelques commandes • Commandes générées automatiquement lors de l’enregistrement du script : • • • • • • • Launch Browser Navigate (url) Wait for page Click (link, button, image, etc.) Set Text (text box) Select (select box, radio button) | Check (check box) Think (time) Launching the Browser • browser.launch() will run the browser specified in Browser preferences Navigating to a URL • web.window().navigate loads the URL into the browser during playback Waiting for a Page to Load • web.window().waitForPage() causes the script to wait for the given page to load in the browser before continuing Think Time • think(“ “value” ”) waits the specified amount of think time in seconds captured during recording Autres Commandes • Use “Add” menu on Tree View to find more script commands you can add • Web Actions (more Web controls/events) • Control Statements • If / Else If / Else • For / While • General • Log Message • Script (run specified script) • Object Library (load object library) • Step Group (insert script Step) • Databank Fetch Record • Each maps to a corresponding code function in Java Comment ca marche ? Exécution d’ ’un script 8.12 Enregistrer les transactions Web dans Oracle Functional Testing 9.1.2 Rejouer les transactions dans Oracle Functional Testing/Openscript Playback Click Play • Click “Play” button to execute Web scripts • “Iterate” button allows you to loop multiple times • All script commands will be executed and results show in Results view with results report & additional info in Details view d 8.12 9.1.2 Details View Snapshot • Provides additional info on script & playback results • Info linked to nodes in Tree View • Page / window screenshots • Browser / HTML content • Request / Response headers Results Report • Info linked to nodes in Results View • Script playback Results Report • Results for individual script nodes (screenshots, HTML, headers) • Comparison view of record results vs. playback results Comparison Results View • Provides step by step results of script playback • Includes duration, result and summary for all script commands • Linked to Details View • Results Report • Screenshot, Content, etc for each command • Comparison between record & playback Results View - Comparison • Select a result node and view Record vs. Playback comparison Comment ca marche ? Externalisation des données, Tableau de données et lancement de plusieurs occurences Executer plusieurs itérations dans Oracle Functional Testing avec données dans .csv Modifier script dans Oracle Functional Testing Parametrisation & Databanks • Use the Properties dialog to change Web parameter values or substitute a variable d Playback avec Data-Banks • Click the “Iterate” button on the toolbar d Ajout de point de controle dans le script Comment ca marche ? Exécuter les scripts depuis “Test Manager” ” et récupérer le résultat d’ ’exécution Enregistrer les transactions Web dans Oracle Functional Testing d Rejouer les transactions dans Oracle Test Manager Comment ca marche ? Vérification des résultats Modifier script dans Oracle Functional Testing Executer avec conditionnement et messages (info, warning, erreur) en fonction des résultats obtenus JDE Test Starter Kits • Ensemble de scripts pour tester les applications JDE • Scénarios de tests fonctionnels • Kit développé et utilisé par la R&D JDE Contenu de JDE Test Starter Kit Benefit from example scripts to help you understand how to build your own Package includes Example Test Scripts and documentation Test Data Total of 12 scripts • • • • • • • Order Fulfillment Processing (OFP) Customer Relationship Management (CRM) Sales Order Entry (SOE) Human Capital Management (HCM) Financial Management System (FMS) Manufacturing (MFG) Supplier Relationship Management (SRM) Benefits According To Oracle JD Edwards QA team Accelerators – JD Edwards “Since moving from our old tooling to ATS, we have been able to reduce our OVERALL TESTING EFFORTS by 25%! This is due to a number of factors including the speed that test cases now execute, the ease and speed of identifying and understanding the application context of failures, as well more technical script automation failures.“ Kishorekumar Yerra – Senior QA Manager, JD Edwards EnterpriseONE Quality Assurance Pourquoi Functional Testing? Valeur • Automatiser (Enregistrer et rejouer) des scripts • Fonctionnels • Non regression • Plateforme de développement riche « Eclipse » • Indépendant des versions (web) • Ex : script enregistré en 8.12 rejoué en 9.2 • Comparateur d’écrans, de code • Peut être couplé avec des données externes • Données externalisées et associées via « databank » • Fonctions de tests et de récupération de données pour : • Gestion des erreurs • Tests fonctionnels: Oracle Load Testing Automatiser les tests de charge et de performance • Simule le comportement des utilisateurs réels • Permet de simuler plusieurs milliers d’utilisateurs • Permet de valider le contenu fonctionnel d’une application soumise à charge • Surveille, mesure et corrèle l’infrastructure sous-jacente avec l’activité des utilisateurs • Identifie et aide à diagnostiquer les problèmes de performance Comment ca marche ? Enregistrer les transactions Web dans Oracle Functional Testing Rejouer et Simuler 1000’ ’s utilisateurs concurrents dans Oracle Load Testing Oracle Load Testing Automatiser les tests de charge et de performance Tested Application Load Agent(s) Oracle Load testing DataCollector (for Web applications) Controller Serverstats 65 Création d’un script Creation d’ ’un scenario de chargement • First step is to create a load test scenario by selecting the script or scripts you want to run in your load test • Select the script(s) from the appropriate OFT Workspace • Specify settings for how the script will run (# of VUs, Think Time, :) Configuration Start/Stop et Ramp-up UV • Autopilot allows you to configure the duration of the test and VU Ramp • Start / Stop – When to begin and end the load test • VU Ramp-up – How many Virtual Users to start with and how quickly to add more • Autopilot also allows you to select ServerStats monitoring configurations Configuration Monitoring des serveurs • OLT’s ServerStats allows you to monitor back-end servers during a load test • Configure monitors to analyze the performance of Web Servers, Application Servers, Databases and other application infrastructure • Generate Virtual User load and see how application infrastructure performance is impacted to identify bottlenecks Rapport de Session • “Overview” sub-tab shows session report for the running load test session and includes information on: • Amount of load being generated (# of VU’s, hits, page requests, data rec., etc.) • Performance of individual scripts (script response times, page response times) Graphe temps réel • “Default Graphs sub-tab includes several canned graphs that you can view while the load test is running (plotted against Test Time or # of Virtual Users) • “New Graph” button allows you to create custom graphs that you can also view while the load test is running Pourquoi Load testing ? Valeur • Déterminer si l’application fonctionne ou fonctionnera bien avec xxx utilisateurs • Mon architecture peut-elle supporter 300 utilisateurs ? • Va-t-on rencontrer des dégradations de performance si :? • Comment puis je optimiser les performances de mon infrastructure ? • Les problèmes de performance rencontrés en production sont beaucoup plus difficiles et couteux à régler en production qu’en test • Il est très difficile voir impossible d’anticiper les performances d’une application et d’identifier les “bottleneck” sans outil de simulation de montée en charge des utilisateurs • Load testing permet d’identifier les types de problèmes suivants : • Hard failures (application crashes under load; server not responding) • Application performance issues (slow transactions / page response times) • Functional failures under load (invalid content returned to the user) <Insert Picture Here> Retour expérience OATS Load Testing et JDE Alain Chéreau – Oracle Solution Center Pourquoi tester en charge ? • S’assurer de la tenue en charge de la solution choisie • Vérifier que l’infrastructure technique tiendra la croissance estimée de la charge • Les transactions les plus utilisées varient beaucoup d’un client à un autre. Tester les transactions réelles, avec le paramétrage applicatif et de sécurité, ainsi que la distribution de données du client détermine la pertinence des résultats. Souffler sur est <> Plan de test en charge : Rester simple ! • Identifier quelques transactions les plus fréquentes : • Celles utilisées tous les jours, par la majorité des utilisateurs ( fréquemment spécifique ) • Limiter le nombre de transaction simulées : 1 à 3 de préférence (avec variabilisation large) Attention au jeux de données associé • Respecter les temps de réflexion et fréquence de transaction (nombre de transaction par heure) • Identifier les batchs les plus contraignants • Souvent, générer un bruit de fond de batch • Tester le fonctionnement du système en fonction des montées en charge Tester, simuler et mesurer • Construire les simulations de transactions (souvent plus long que prévu) • Construire l’environnement de test (restoration après test) • Mettre en place les outils de mesures • De l’outil de test ATS • De JD Edwards Server Manager • De la base de données Em12c • De l’application server Em12c, jconsole: • Des systèmes sollicités (CPU, IO, réseau) dim_stat.. • Scripts sql, shell: • Vérifier cohérence des mesures Simuler – Construire une simulation - Demo • Connaître la transaction unitaire • L’enregistrer (position IE – captures) • Nommer les étapes • Localiser les saisies • Variabiliser • Point de variabilisation, • Tester toutes les valeurs du jeu de données • Vérifier des éléments de réponse • Valider passage / Gestion d’erreur • Temps d’attente et points de mesure • Logger Integrate Objectifs des POCs Objectifs et périmètre du POC 1 • Version 9.1.2 tools X9.1.3.2 sur plateforme : ¼ Exadata X3.2 & 1/8 Exalogic X3.2 • Module JDE In Memory (Project Portfolio Management) • Injecteur OATS Création de user JDE : P0092 Rédaction des scripts de tests OATS : Saisie de 10 lignes d’OD avec posting en utilisant les données du fichier “LoginsAvecVariables_v01_13022014” fourni par Client Edition de balance en utilisant le programme standard “R09473” avec comme critère de lancement la société (CO) Simulation de l'édition d'un Job Cost en utilisant les données du fichier “LoginsAvecVariables_v01_13022014” fourni par Client Périmètre du POC 1 - lancement de scripts, tuning machines et capture des résultats 2 jeux de runs avec volume de donnée <> Run 1 : Simulation avec paramétrage en tant sous-livre lié au répertoire d'adresse : F00950 : 284 000 lignes, F0006 : 15 131 lignes, F0901 : 5 millions de ligne F0902 : 44 millions de ligne Run 2 : Simulation avec paramétrage des chantiers en tant que Job et non pas en tant sous-livre lié au répertoire d'adresse : F00950 : 3,6 millions de ligne, F0006 : 170 000 lignes,F0901 : 66 millions de ligne ,F0902 : 50 millions de ligne Pour chaque run : exécutions des scénarii de simulation : 100 users qui saisissent 10 lots/h + 1 balance / 7s + 1 Job Cost / 4s 500 users qui saisissent 2 lots/h + 1 balance / 7s + 1 Job Cost / 4s 500 users qui saisissent 10 lots/h + 1 balance / 7s + 1 Job Cost / 4s 1000 users qui saisissent 5 lots/h + 1 balance / 7s + 1 Job Cost / 4s 1000 users qui saisissent 8 lots/h + 1 balance / 7s + 1 Job Cost / 4s Scenarii pour atteindre le seuil de rupture (+10% à chaque passe) Objectif et périmètre du POC 2 • 1. Charge Utilisateurs – Montée en charge 1600 utilisateurs • • • • Specifique Client 2 – FSB Day to day Specifique Client 2 – CAF Specifique Client 2 – FSB consolidé Specifique Client 2 – FSB consolidé pour chantier avec millions de lignes • 2. Chaine Batch de nuit • 2. 1 Exécution en mode séquentiel (série) • 2.2 Exécution en mode parallèle • 3. Bruit de fond Oracle Confidential – Internal/Restricted/Highly Restricted Objectif et périmètre du POC 3 • 1. Charge Utilisateurs – Montée en charge • Specifique Client 3 – AR Balance Agée • P4021 Supply Demand Inquiry • Simulation de 100 à 1000 utilisateurs simultanés de ces 2 transactions • Un utilisateur simulé effectue une transaction complète toutes les deux minutes en moyenne • Répartition : 90 % de "supply demand inquiry" , 10% de "balance âgée" • 2. Chaine Batch de nuit • 2. 1 Exécution en mode séquentiel (série) • 2.2 Exécution en mode parallèle • 3. Batch de nuit + Transaction interactives – Montée en charge • 4. JDE In Memory – « Summarisation » temps réel (évite GO TO END) • 5. JDE In Memory – Réconciliation Financière Interactive (remplace Batch) Oracle Confidential – Internal/Restricted/Highly Restricted Integrate Demo Scripts POCs Integrate Synthèse Oracle ATS et JDE Application Testing Suite • Un référentiel centralisé pour les scénarios de tests fonctionnels et de tests de charge : • Tests nouvelles applications • Tests de non regression • Tests de montée en charge • Outils d’automatisation et de documentation des tests • Outils de simulation de montée en charge • Intégré dans Oracle Enterprise Manager Références mondiales Financial Services Communications and Manufacturing e-Commerce & Media IT Services and Software Références françaises • Client dans l’assurance • Mise en place d’un nouveau poste de travail incluant la gestion des contacts avec Siebel CRM • Besoin de valider les performances pour satisfaire les utilisateurs et réussir le projet • Client dans le travail temporaire • Migration de la solution de gestion des ressources humaines avec PeopleSoft • Client opérateur de téléphonie mobile • Migration régulière de l’application de Call Center Siebel • Nécessité de valider les performances pour gérer les contrats de service avec les prestataires extérieurs • Client dans l’assurance et l’assistance automobile • Mise en place d’une nouvelle version de l’application métier (CRM) de prise de contrats • Client dans la recherche aéronautique • Automatisation des tests de non régression sur EBS pour valider les évolutions fournies par la TMA afin d’améliorer la qualité des livraison L’offre Open source Smile Selenium