Chap6 - Outils de Support Aux Tests

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 30

w w w. e s p r i t . e n s .

t n

Se former autrement
pour une nouvelle génération d’ingénieurs
1
Test & validation
Conformément à la certification ISTQB (International Software Testing Qualification Board)

2
Tests et validation
 Introduction
 Chapitre 1 : Fondamentaux de Test
 Chapitre 2 : Test pendant le cycle de vie
 Chapitre 3 : Techniques statiques
 Chapitre 4 : Technique de conception des tests
 Chapitre 5 : Gestion des tests
 Chapitre 6 : Les Outils de support aux tests
 Laboratoire de tests

3
Plan
Introduction aux outils de test
 Classification des outils de test
 Bénéfices et risques de l'automatisation des tests
 Considérations particulières pour les outils
Utilisation efficace des outils
 Principes de base pour la sélection
 Projets pilotes
 Facteurs de succès pour les outils
 Conclusion 4
Introduction
 Outils qui sont directement utilisés dans le test (exécution de
test, génération de données de test et de comparaison de
résultats).

 Outils qui aide au contrôle le processus de test (gérer les


tests, des résultats de test, des données, des conditions, des
incidents, des défauts, reporter et contrôler l'exécution des
tests…)

 Outils d’exploration et de contrôle des ressources pour une


application.

 Outils divers d’aide à l’organisation des tests.


5
Classification des outils de test
Les outils de test peuvent avoir une ou plusieurs des finalités suivantes en
fonction du contexte:
 Améliorer l'efficacité des activités de test en automatisant des tâches
répétitives ou en supportant des activités de test manuelles comme la
planification des tests, la conception de tests, le compte-rendu et le contrôle
des tests.

 Automatiser les activités qui exigent les ressources importantes une fois
faites manuellement.

 Automatiser les activités qui ne peuvent pas être exécutées manuellement


(par exemple, test de performance exhaustif des applications client-serveur).

 Augmenter la fiabilité du test (par exemple, en automatisant la comparaison


de beaucoup de données ou en simulant le comportement). 6
Classification des outils de test
 Automate du test fonctionnel

7
Classification des outils de test
 Ces outils sont classés selon les activités du test qu’ils assistent.

 Certains outils supportent clairement une seule activité; d’autres supportent


plus d’une activité. Ils sont classés dans la rubrique relative à l’activité à
laquelle ils sont plus étroitement associés.

 Quelques types d’outil de test peuvent être intrusifs, ce qui signifie qu'ils
peuvent affecter le résultat obtenu par le test. La conséquence des outils
intrusifs s'appelle l'effet de sonde.

 Quelques outils offrent une assistance davantage tournée vers les


développeurs (c.à.d.. pendant les tests de composants et d’intégration des
composants).

8
Classification des outils de test
 Classification des outils :

 Outils pour la gestion des tests et du testware

 Outils pour les tests statiques

 Outils pour la conception et l'implémentation des tests

 Outils pour l'exécution et les logs de tests

 Outils pour la mesure de la performance et l'analyse dynamique

9
Classification des outils de test
 Outils pour la gestion des tests et du testware:

 Outils de gestion des tests : exécuter des tests, dépister des défauts et
gérer les exigences …

 Outils de gestion des exigences : enregistrent les énoncés des exigences,


enregistrent les attributs des exigences et peuvent identifier des
exigences contradictoires (DOORS, QARespository).

 Outils de gestion d'incidents (outils de suivi de défauts) : enregistrent


et gèrent les rapports d'incidents, les défaillances, les demandes de
modification ou les problèmes rencontrés.

 Outils de gestion de configuration : nécessaires pour le stockage et la


gestion de version du testware et du logiciel associé.
 Outils d'intégration continue 10
Classification des outils de test
 Outils pour les tests statiques:

 Outils de revue : revues des processus, des check-lists, des directives


de revue, enregistrer et communiquer les commentaires des revues, et
les rapports sur les défauts et les essais.

 Outils d'analyse statique (D) : aident les développeurs et les testeurs à


trouver des défauts avant le test dynamique en fournissant une aide pour
introduire des normes de codage (codage sécurisé y compris), l'analyse
des structures et des dépendances.

 Outils de modélisation (D) : valider les modèles de logiciel en


énumérant des incohérences et en trouvant des défauts.

11
Classification des outils de test

 Outils pour la conception et l'implémentation des tests:

 Outils de conception de tests : utilisés pour générer des entrées de tests ou


des tests exécutables et/ou des oracles de tests à partir des exigences, des
interfaces utilisateur graphiques, des modèles de conception (état, données
ou objet) .
 Outils de préparations de données de tests : Les outils de préparation des
données agissent sur des bases de données, fichiers ou transferts de données
afin d’élaborer des données de tests utilisables lors de l’exécution des tests.
 Outils pour le développement dirigé par les tests d’acceptations (ATDD
: Acceptance Test Driven Development) et le développement dirigé par le
comportement (BDD : Behavior Driven Development).
 Outils pour le développement dirigé par les tests (TDD : Test Driven
Development)

12
Classification des outils de test
 Outils pour l'exécution et les logs de tests:
 Outils d’exécution des tests : exécuter automatiquement, ou semi-
automatiquement les tests, utilisant les entrées enregistrées et les résultats
prévus et fournissent un registre de test pour chaque exécution de test. Ils
disposent d’une interface graphique utilisateur pour le paramétrage des
données et toute autre personnalisation dans les tests.

 Harnais de tests/Outils framework de tests unitaires (D) : facilite le test


des composants ou des parties d'un système en simulant l'environnement
dans lequel cet objet de tests s'exécutera par la fourniture d'objets factices
comme des bouchons ou des pilotes.

 Comparateurs de tests : déterminent des différences entre les fichiers,


bases de données ou résultats de tests.

13
Classification des outils de test
 Outils d’aide à l’exécution et à l’enregistrement des tests :

 Outils de mesure de couverture (D) : mesurent le pourcentage de


certains types de structures de code qui ont été exercés (par exemple,
des déclarations, des branches ou des décisions, et appels de module
ou fonction) par un ensemble de tests.

 Framework de tests unitaires

14
Classification des outils de test
 Outils pour la mesure de la performance et l'analyse dynamique:
 Outils d'analyse dynamique (D) : détectent des défauts qui ne se
manifestent que lors de l’exécution du logiciel, telles que les dépendances
temporelles ou les fuites de mémoire.

 Outils de test de performance/test de charge/test de stress : surveillent


et rapportent sur la façon dont se comporte un système selon une grande
variété de conditions d’usage simulées en termes de nombre d'utilisateurs
simultanés, de leur modèle de montée en charge, de fréquence et de
pourcentage relatif de transactions.

 Outils de monitoring: analysent continuellement, vérifient et rendent


compte de l'utilisation de ressources systèmes spécifiques, et donnent des
alertes sur de possibles problèmes de service.

15
Classification des outils de test

 Outils de support pour des besoins de tests spécifiques


 Evaluation de la qualité des données :
 Utilisés pour revoir et vérifier les règles de conversion et de migration des
données (cas de projet de transposition des données)
 S'assurer que les données traitées sont correctes, complètes et se conforment
à une norme prédéfinie spécifique au contexte.
 Conversion et migration des données
 Tests d'utilisabilité
 Tests d'accessibilité
 Tests de sécurité
 Tests de portabilité (p. ex. tests de logiciels sur plusieurs plates-
formes prises en charge)

16
Classification des outils de test
 Etapes outillés du projet de test :

17
Bénéfices et risques de
l'automatisation des tests
 Bénéfices potentiels liés aux outils de test :
 Améliorer la gestion de l’information et la communication entre les
différents acteurs.

 Réduction du travail répétitif (exécution de tests de régression,


réintroduction des mêmes données de tests, et vérification du respect de
standards de codage).

 Répétabilité et cohérence accrues (tests exécutés par un outil suivant


un ordre et une fréquence précis et tests déduits des exigences).

 Evaluation objective (mesure statiques, couverture).

 Facilité d’accès aux informations concernant les tests ou leur


exécution (statistiques et graphiques sur l’avancement des tests, le taux
d’incidents et les performances).
18
Bénéfices et risques de
l'automatisation des tests
 Risques liés aux outils de test :
 Attentes irréalistes placées dans l’outil
 Sous-estimation du temps, du coût et de l’effort pour l’introduction
initiale d’un outil
 Sous-estimation du temps et de l’effort nécessaires pour obtenir de
l’outil des bénéfices
 Sous-estimation de l’effort requis pour maintenir les acquis générés par
l’outil.
 Confiance excessive dans l’outil
 Négligence du contrôle de version des éléments de test dans l'outil
 Négligence des problèmes de relation et interopérabilité entre les outils
critiques (outils de gestion d'exigences, de contrôle de version, de
gestion d'incidents ..)

19
Bénéfices et risques de
l'automatisation des tests
 Risques liés aux outils de test :

 Risque de faillite de l’éditeur d'outil, de retirer l'outil, ou de vendre l'outil


à un autre éditeur .

 Faible réactivité du vendeur pour le support, les mises à jour, et


corrections des défauts.

 Risque de suspension d’un logiciel ou projet open-source ou libre.

 Imprévu, comme l'incapacité de support d'une nouvelle plate-forme.

 Les testeurs : perte de réactivité, pas de capitalisation, travail en équipe


difficile, manque de visibilité ….

20
Considérations pour les outils
d'exécution et gestion des tests
 Outils d'exécution des tests:
 Les outils d'exécution des tests exécutent des objets de test à l'aide de scripts
de test automatisés. Ce type d'outil nécessite souvent des efforts importants
pour obtenir des bénéfices significatifs.
 Capturer les tests en enregistrant les actions d'un testeur manuel semble
attrayant, mais cette approche n'est pas adaptée pour un grand nombre de
scripts de test. Ce type de script peut être instable lorsque des événements
inattendus se produisent
 Dans une approche de test par mots-clés, un script générique traite des mots-
clés décrivant les actions à entreprendre (également appelés mots-clés), qui
font ensuite appel à des scripts d'implémentation des mots-clés pour traiter les
données de test associées
 Les approches ci-dessus exigent que quelqu'un possède une expertise dans le
langage de script (testeurs, développeurs ou spécialistes de l'automatisation
des tests).
21
Considérations pour les outils
d'exécution et gestion des tests
 Outils de gestion des tests:
Les outils de gestion des tests doivent souvent s'interfacer avec d'autres outils ou
feuilles de calcul pour diverses raisons, telles que :
 Produire de l'information utile dans un format qui correspond aux besoins de
l'organisation

 Maintenir une traçabilité cohérente des exigences dans un outil de gestion des
exigences

 Etablir un lien avec les informations de version de l'objet de test dans l'outil
de gestion de configuration

22
Utilisation efficace des outils
 Principes de base pour la sélection des outils:

 Evaluation de la maturité de l’organisation

 Evaluation au regard d'exigences claires et de critères objectifs.

 Vérifier si l'outil est disponible pour une période d'essai gratuit

 Évaluation du fournisseur (y compris la formation, le support et les aspects


commerciaux)

 Identification des besoins internes pour le coaching et le soutien dans


l'utilisation de l'outil

 Prise en compte des avantages et des inconvénients des différents modèles de


licence

 Estimation d'un rapport coût-bénéfice basé sur une analyse de rentabilité


23

concrète
Utilisation efficace des outils
 Projets pilotes pour l'introduction d'un outil:

 Acquérir une connaissance approfondie de l'outil, comprendre ses forces et


ses faiblesses

 Évaluer la façon dont l'outil s'intègre aux processus et pratiques existants et


déterminer ce qu'il faudrait changer

 Décider des méthodes standard d'utilisation, de gestion, de sauvegarde et de


maintenance de l'outil et des actifs de test

 Évaluer si les bénéfices seront obtenus à un coût raisonnable

 Comprendre les métriques que vous souhaitez voir recueillies et rapportées


par l'outil

24
Utilisation efficace des outils

 Facteurs de succès de l’introduction de l’outil :

 Etendre l’outil au reste de l’organisation de façon incrémentale.

 Adapter et améliorer les processus de façon à trouver le bonne balance


entre processus et outil.

 Fournir de la formation et une assistance aux nouveaux utilisateurs.

 Surveiller l’utilisation de l’outil, les bénéfices recueillis et adapter


l’utilisation selon les leçons apprises

25
Exemples
 Quelle est l’utilité de chaque outil?
 Parasoft
 HP Fortify Static Code Analyzer (SCA)
 Checkmarx CxSuite
 Syhunt Sandcat
 Coverity Static Analysis
 Klockwork Insight
 CodeSonar
 Polyspace
 RATIONAL FUNCTIONAL TESTER
 TESTDRIVE
26
Exemples
Quelle est l’utilité de ces outils?

 Junit  Concutest
 Cactus  Sonar
 TestNG  Unitils
 Jtest  SpryTest
 Mockito  JMock
 JBehave  JDave

27
Conclusion

 Différents types d’outils de tests couvrent les différents types de


tests et par la suite les différents phases de cycle de vie du
projet.

 Les outils présentent des bénéfices et des risques  Il faut les


mesurer et les contrôler.

 Il faut pas tout automatiser (cout de maintenance élevé).


 Démarche à suivre afin d’utiliser un outil de test et qu’il soit
efficace (Outils statiques, outil de gestion …) et investir
correctement pas que dans les outils (formation, conseil et
support technique, développement des librairies …).
28
Exercice
1. Utiliser les outils de tests ?
A. Sert à réduire le temps alloué aux testeurs.
B. Sert à l’occupation des ressources (Hardware).
C. Souvent utilisé dans les tests web.
D. Toutes les trois réponses ci-dessus.
2. Quel objectif parmi cette liste qui pourrait être un objectif pour
l’introduction d’un outil de test dans un projet pilote?
A. Evaluer les compétences des testeurs pour utiliser l’outil.
B. Terminer la phase de test d’un projet clé.
C. Evaluer si les bénéfices seront atteints avec un coup raisonnable.
D. Découvrir ce que donnent les exigences avec l’outil.
3. Quels Outils de test aident à supporter le test statique?
A. Les Outils de test d'analyse statique et les Outils de test d'exécution des
tests.
B. Les Outils de test de support de processus de revue, les Outils de test
d'analyse statique et les Outils de test de modélisation.
C. Les Outils de test de support de processus de revue, les Outils de test
d'analyse statique et de mesure de couverture.
D. Les Outils de test d'analyse dynamique et les Outils de test de
modélisation.
29
Exercice
4. Quel risque potentiel génère l'utilisation d'Outils de test de support de
tests ?
A. Attentes irréalistes, attendre que l'outil de test en fasse trop
B. Confiance insuffisante en l'outil de test, c'est à dire continuer à tester
manuellement alors qu'un outil d'exécution de test a été acheté.
C. L'outil peut trouver des défauts là où il n'y en a pas.
D. L'outil va répéter exactement la même chose que la fois précédente.

30

Vous aimerez peut-être aussi