Criteria for selecting a management testing tool (or quality management tool)

5 02 2009

Criteria for selecting a management testing tool (or quality management tool):

This article will help you to choose a management testing tool in peace. Why? Because for some client it’s not easy as we can believe. Example: a client already has a tool from HP (Quality Center) and at the same time using Enterprise Architect (EA) to manage its requirements. The question is « Is what we use quality center or EA? ». From this question there was a stir on the choice. And inter-service policy and the brake of some users does not help the stand-by was delivered … until the list below is made.

This list exists only to provide FACTUAL information about the main functions to be performed by a management testing tool. As you may be able to see it is not oriented for Quality Center is chosen (I want to say it’s not irony).

A repository of tests should be able to manage (only basic functions):

Level 1 Functions
Manage the test requirements:
* Support for the creation
* Multi-user: easy sharing between all project stakeholders
* Easy change
* Easy link between requirements> Test Sheets > Defects
* Generating a matrix coverage requirements ==> campaign / scenarios
* Analysis of coverage
* Print friendly list
* Version management requirements

Manage the test plan to test cases:
* Support for the creation
* Easy change
* Ability to attach documents
* Multi-user
* Version management

Manage books / files / test plan:
* Support for the creation of scenarios
* Multi-user
* Version management

Help manage tests:
* Status of design tests
* Status of the test run
* Status of an overall campaign test
* Printing of reports already formatted and filled
* Multi-user

Function Level 2:
Manage defects:
* Tools for creating worflow defects
* Create and complete an information sheet defect
* Possibility of attachments, screen captures, etc.
* Integrated search engine
* Easy and direct link between a sheet / test cases and an defect
* Notification by mail to the defects involved in the project
* Multi-user
* Printing of reports already formatted and filled with figures and statistics modules / functions, etc.

Interfacing and direct steering:
* Automates functional tests
* Automates testing techniques (performance)
* Defects (if not integrated)

Publicités




Dis tonton… comment on script avec un automate de tests et si tu pouvais aussi me donner quelques bonnes pratiques steuplé ?

1 12 2008

Hum… et tu ne veux pas non plus 100 euros et un Mars ? Bref, je te sens piaffer d’impatience alors écoute donc…

Je vais tenter de vous exposer comment les automates de tests fonctionnent. Je vais parler des QuickTests Pro (QTP) et autre Sélénium. Des automates utilisés pour les tests fonctionnels, les scénarios de tests utilisateurs, etc.

Il y a deux façons de scripter dans QTP, il y a la bonne et… la bonne !

Je m’explique car vous pourriez penser que je ne veuille faire qu’un rapide et stérile clin d’œil au sketch des Inconnus (à l’attention de nos amis anglophone : Inconnus = groupe de comique français des années 90).

Mais avant de passer en revue les façons de scripter demandons nous à quoi peuvent servir ces fameux automates qui pourraient être la solution miracle aux tests (ou pas…).

Théorie des automates de tests :

Sur un site Web (par exemple) QTP enregistre vos actions (enregistrement du mouvement de la souris, des clics de souris, etc.) et les rejoue à volonté. Vous pourrez ainsi exécuter à l’infini les scénarios de tests tout les soirs et, au matin, après votre café, compulser dans la tranquillité les rapports d’exécution.

Cette définition est un mythe urbain répandu par les éditeurs il y a quelques années lorsque les automates de tests étaient peu connus des clients. Depuis et jusqu’à ce jour, hélas, c’est toujours ce que pensent la plupart des clients…

Autres grands principes des automates de tests :

  • Les automates de tests fonctionnent par reconnaissance des objets des IHM (boutons, listes déroulantes, etc.) qu’il stocke dans un répertoire nommé parfois « repository »
  • En mode enregistrement, ils capturent les interactions réalisées sur des objets nécessaires lors du déroulement du scénario de test. Il génère un script en VB (pour QTP)
  • En mode exécution, ils rejouent le scénario de test à partir du script


Les automates de tests dans la vraie vie :

La seule partie vraie dans la définition théorique est « QTP enregistre vos actions et les rejoue à volonté » !

Le reste n’est possible que chez très peu de client ayant un niveau de maturité important dans l’automatisation des tests. Bref, il y a deux manières de scripter :

Le scripting par enregistrement et reworking :
– Le testeur dispose des IHM et scripte directement
– Il lance le script, relève les erreurs et les corrige
– Une fois son script terminée il doit le faire valider par un autre testeur et ainsi procéder à un cross-checking (notion très importante pour finaliser les scripts)

Le scripting en mode « programmation descriptive » et reworking :
– Le testeur ne dispose pas des IHM et doit donc travailler à partir de spécifications techniques et fonctionnelles. Mais cela est très rare chez les clients. De plus cela impliquerai que les spécifications sont déjà exhaustives, validées et stables… (il est bon de rire parfois ;- )
– Il lance le script, relève les erreurs et les corrige
– Cross-checking

Points importants à prendre en compte :
Principe : On automatise que sur une application STABLE et MATURE ! Sinon, c’est de la perte de temps et de l’onanisme pour Mammouth !
– Principe : 100% des tests manuels ne pas automatisable :

  • Il faut savoir prioriser, faire des choix intelligents, utilisation de la loi de Paretto
  • Étudier l’intérêt d’automatiser, etc.

– Principe : mener une étude de faisabilité pour déterminer l’intérêt d’automatiser les tests et la faisabilité technique (voir article sur le sujet)
– Retour sur investissement : des campagnes de tests automatisées ne sont rentables qu’à partir de trois, voir quatre itérations de campagne de tests automatiques (à partir d’une courbe de ROI sur trois ans)
– Création des scripts :

  • la charge de création des scripts est plus importante que la création des tests manuels
  • la difficulté n’est pas dans la capture du script mais dans le choix du critère et du moyen de contrôle du résultat attendu
  • il faut mettre des points de synchronisation ou d’attente entre deux actions pour éviter les times out sur l’apparition de résultat attendu
  • bonne pratique pour un scénario isolé (meilleure robustesse du scénario = se remettre dans les mêmes conditions que lors de l’enregistrement du script) :

– Préparation des environnements et application
– Génération des JDDT
– Tests de l’application
– Nettoyage des environnements et application

– Jeux De Données de Tests (JDDT) :

  • penser à générer les JDDT par l’automate avant l’exécution des scénarios

– Exécution des scripts : la charge d’exécution automatique est moins importante qu’une exécution manuelle
– Maintenance des scripts: la bonne méthodologie et les bonnes pratiques sont à appliquer avant le début de l’automatisation afin de minimiser les charges de maintenance des scripts (normes pour l’organisation, le nommage, la gestion des versions des scripts, etc.).
– Maintenance des scripts: il faut maintenir une compétence d’automatisation pour réaliser les adaptations, évolution des scripts en cas d’évolution de l’application

Je finirai en vous demandant de coupler TOUJOURS et autant que possible votre automate avec votre référentiel de tests ! Ce qui permettra, entre autre, de :
– Stocker la description des scénarios à automatiser
– Stocker les scripts QTP dans QC et les repository associés
– Planifier l’exécution des campagnes de tests automatiques
– Stocker les résultats des campagnes de tests





Dis tonton… comment faire une étude de faisabilité avant d’automatiser mes tests ?

1 12 2008

Principe : mener une étude de faisabilité pour déterminer l’intérêt d’automatiser les tests et la faisabilité technique. Ci-dessous le sommaire type d’une étude, avec quelques indications pour vous aider à remplir ce document.

1- En tout premier lieu il faut valider les aspects techniques de l’automatisation : vérifier que l’automate peut se prêter d’un point de vue technique à l’automatisation de l’application (sur un échantillon de scénarios du lot à automatiser)

  • Utiliser les documents de pré-requis des automates

    2- Prononcer le GO / NOGO

    3- Procéder au Prototypage :

    – Identifier des scénarios représentatifs en utilisant des scénarios existant manuels :

    • Scénario de complexité « Simple
    • Scénario de complexité « Moyenne »
    • Scénario de complexité « Complexe »

    – Mise en place des scénarios dans Quality_Center_TESTLINK_Salome et QuickTests Pro_SELENIUM :

    • Automatisation des scénarios (exemple de critères de sélections des scénarios) :
    • Périmètre : automatiser sur des fonctions stables (test de non-régression et pas de tests automatique sur les évolutions)
    • Fréquence : automatiser les tests sur des fonctions à tester régulièrement
    • Criticité : automatiser les fonctions critiques
    • Estimer la durée de l’automatisation pour chaque scénario
    • Estimer l’exécution manuelle des scénarios (pour comparer les charges)
    • Estimer le coût de maintenance des scénarios en cas de montée de version

    – Dresser les prémices du ROI :

    – Identifier les « Best Practices » à implémenter

    • Librairie de fonctions de l’application, fonctions VB réutilisables, gestion des objets, etc.
    • Se reporter à l’article sur comment automatiser et les bonnes pratiques

    – Identifier le mode de gestion des jeux de données

    – Faire des préconisations sur la gestion des versions de scripts.

    Ci-dessous un petit exemple d’un rapport de faisabilité.

    Sommaire du document :

    • Objectifs de l’étude

    Client_xxx et votre_société on convenu de mener une étude de faisabilité afin de déterminer si une automatisation des campagnes de tests est possible.

    Ce qui pourrait permettre d’obtenir des gains de temps conséquent. Ainsi qu’une réutilisabilité par des tiers autre que les équipes votre_société.

    L’objectif de cette étude est donc de savoir :

    Quels sont les différents modules / parties automatisables ?

    Avec quels moyens (logiciels, outils) automatiser ces tests ?

    Les gains obtenus sont-ils significatifs ?

    • Comment avons-nous procédé ?

    Un premier choix a tout d’abord porté sur l’automate (QuickTests Pro_SELENIUM) au vue des contraintes et besoins de Client_xxx.

    Ensuite, à partir des scénarios présents dans (Quality_Center_TESTLINK_Salome) nous avons sélectionné quelques tests semblant significatifs.

    Puis nous les avons « Enregistré et scripté » à l’aide de l’automate.

    Pour illustrer le plus clairement possible les explications : la vidéo ci après montre un exemple concret d’automatisation de test pour l’application AAA, avec l’automate yyyy (nom de la fonctionnalité).

    L’automate teste automatiquement :

      1. Pas 1
      2. Pas n

    Joindre la vidéo de l’action de l’automate (outils existant sur Internet et gratuit).

    Il est important de prendre un exemple concret sinon l’impact auprès du client en sera amoindri et moins percutant.

    • Résultats de l’étude

    L’étude de faisabilité a montrée que :

    La plupart des applications sont compatibles avec l’outil d’automatisation xxx. Cette compatibilité a été vérifiée grâce au document « ddd », fourni en annexe.

    Une grande partie des scénarios sont automatisables par Selenium :

    · Le module « mmm1 », qui consiste à vérifier le bon fonctionnement de xxx

    · Le module « mmm2 »

    Les parties non automatisables concernent les échanges de flux entre les différents modules :

    · Batchs

    · Echange (problème de détection des objets par xxx), etc.





    Survival Manual on Quality Center for testers!

    22 10 2008

    In the world of test, everybody talks about Quality Center (QC for his nickname) from HP Mercury. Everyone talks about the client to the service, from engineers who swear by this fabulous QC … What wonderful world that ours in which all players share the same project, share and use same benchmark test and ensure that business requirements are at the heart of everyone … But … The reality is less glamorous!
    Indeed, among the thousands of engineers only a few really know QC and use it properly.

    So I write this article in aim to present the basic tool and make some good practices to implement when using a testing repository (I will not write on the administration part of this tool).

    Say Uncle, what is a testing repository ?
    Or « How from minimum to maximum effort? « . For the answer see the article on the subject.

    Say Uncle, there is what in QC?
    Before explaining what is inside it clear that it is just a tool shared management of activities test, that his name was former Test Director (or TD).
    The interface of QC is relatively « user friendly » (adapted from users) and practice.

    In this tool there are 5 tabs (or parts). Each of these tabs is an important part for each test project. But see more detail each of them:
    – Management of requirements
    – Management of the test catalog or Test Plan
    – Design campaigns to test or Test Lab
    – Management of “anomalies” (French term) or Defects
    – Management releases (not explained in this article because I want to preserve the suspense)

    With tabs for each common features include:
    – Reports & Graphics
    – Review
    – The ability to attach screenshots, documents, etc..
    – Printing
    – Administration

    The logic of use is as follows, first on developing the test strategy and matrix of coverage (tabs requirements and Test Plan). Then we plan executions (Test Plan and Test Lab), when executions are created sheets anomalies through which we validate the corrections.
    Finally, it updates the tests and repeats the cycle of tests.

    Dives us in QC:
    Management requirements:
    It is to identify the test requirements (based on business requirements and other specifications), to structure the test plan and specify future test sheets.
    Small reminder: requirements may be the expression of needs or the list of features to be tested. Thus, all test requirements define the scope to cover. These requirements are also common among the records of specification and testing to be performed.
    Take into account to ensure traceability between the design and execution. Finally, the requirements are support for impact studies of the evolution of specifications on the plans and test sheets.

    This tab can also see all the details of requirements and see the status of the results sheets covering a test or its requirements.

    Finally, it can be entered manually requirements is to use a macro to use on import documents to Word or Excel. Either in the form of addin or internal development or customer service company.

    Managing the test catalog or the Test Plan:
    It is designed to test sheets, define scenarios and prepare the reporting (in collaboration with the Lab Test). It is also to create the tree test sheets and sheets and create links between requirements and test sheets.
    The Test Plan represents all the test sheets, being built or operational.

    Design and execution of campaigns or Test Lab test:
    It is the creation and planning campaigns to test. The performance takes place on this tab, whether automated or manual.
    Remember that:
    – A test campaign is a combination of scenarios (composed of sheets of test)
    – A test may be part of several campaigns
    – Following the implementation of the various shock, a form of test is considered PASSED status, if and only if all stages composing on the same status
    – If at least one of these steps is in FAILED status or not completed sheet will test the same status

    Management of anomalies or Defects:
    After implementation scenarios / sheets test is to describe the anomalies and reporting information campaign.

    Read the article following called « Best practices and test repository »