Syllabus CFTL

Retour au sommaire

Outils de support aux tests (K2)

6. Outils de support aux tests (K2)

6.1 Types d'outils de test (K2)

Termes
Outils de gestion de configuration, outils de mesure de couverture, outils de débogage, outils d‟analyse dynamique, outils de gestion d‟incidents, outils de tests de charge, outils de modélisation, outils de monitoring, outils de tests de performances, effet de sonde, outils de gestion d‟exigences, outils de support de revues, outils de sécurité, outils d‟analyse statique, outils de test de stress, comparateur de tests, outils de préparation de données de tests, outils de conception de tests, harnais de tests, outils d‟exécution des tests, outils de gestion des tests, outils de tests unitaires et structurels.

6.1.1 Outils de support aux tests (K2)
Des outils de test peuvent être utilisés pour une ou plusieurs activités que supporte le test. Ceux-ci incluent :
1. Outils qui sont directement utilisés dans le test tel que les outils d'exécution de test, outils de génération de données de test et outils de comparaison de résultats.
2. Outils qui aident en contrôlant le processus de test comme ceux employés pour gérer les tests, des résultats de test, des données, des conditions, des incidents, des défauts, etc., et pour reporter et contrôler l'exécution des tests
3. Outils qui sont utilisés dans la reconnaissance, ou, en termes simples : exploration (par exemple, outils qui contrôle l'activité d'un fichier pour une application)
4. N'importe quel outil qui facilite le test (un tableur est également un outil de test dans cette signification)
L‟outil de support au test peut avoir un ou plusieurs des buts suivants selon le 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 (par exemple, tests statiques)
 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)
Le terme "framework de test" est également fréquemment utilisé dans l'industrie, avec au moins trois significations :
 Bibliothèques réutilisables et extensibles de test qui peuvent être employées pour construire des outils de test (appelées aussi harnais de tests)
 Un type de conception d'automatisation des tests (par exemple, pilotés par les données, piloté par mots-clés)
 Processus globaux d'exécution de test
Dans ce syllabus, le terme "framework de test" est utilisé dans ses deux premières significations comme décrit dans la section 1.1.6.

6.1.2 Classification des outils de test (K2)
Il y a un certain nombre d'outils qui supportent les différents aspects du test. Des outils peuvent être classés selon plusieurs critères tels que le but, commercial/ libre / logiciel libre / shareware, technologie utilisée et ainsi de suite. Dans le présent syllabus, 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é, mais sont classés dans la rubrique relative à l‟activité à laquelle ils sont plus étroitement associés. Des outils d'un fournisseur unique, particulièrement ceux qui ont été conçus pour fonctionner ensemble, peuvent être empaquetés dans un module.
Quelques types d‟outil de test peuvent être intrusifs, ce qui signifie qu'ils peuvent affecter le résultat obtenu par le test. . Par exemple, une mesure de temps peut varier à cause des instructions supplémentaires exécutées par l‟outil., ou vous pouvez obtenir une mesure de couverture de code différente. 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). Ces outils sont notés avec un “(D)” dans les classifications ci-dessous.

6.1.3 Outils d’aide à la gestion du test et des tests (K1)
Les outils de gestion s‟appliquent à toutes les activités de tests pendant toute la durée du cycle de vie du logiciel.
Outils de gestion des tests
Ces outils fournissent des interfaces pour exécuter des tests, dépister des défauts et gérer les exigences, avec une aide pour l'analyse quantitative et le rapport des objets de tests. Ils supportent également la traçabilité des objets de tests vers les spécifications des exigences. Ils peuvent posséder des fonctionnalités de gestion de version indépendantes ou s‟interfacer avec un outil de gestion de version externe.
Outils de gestion des exigences
Ces outils enregistrent les énoncés des exigences, enregistrent les attributs des exigences (priorité y compris), fournissent des identifiants uniques et supportent la traçabilité des exigences vers les tests individuels. Ces outils peuvent également aider à identifier des exigences contradictoires ou manquantes.
Outils de gestion d'incidents (outils de suivi de défauts)
Ces outils enregistrent et gèrent les rapports d'incidents, c.-à-d. les défauts, les défaillances, les demandes de modification ou les problèmes et anomalies rencontrés. Ils aident à gérer le cycle de vie des incidents, éventuellement avec le support de l'analyse statistique.
Outils de gestion de configuration
Bien que pas strictement des outils de test, ceux-ci sont nécessaires pour le stockage et la gestion de version du testware et du logiciel associé particulièrement lorsque sont configurés plusieurs environnements matériel/logiciel en termes de versions du système d'exploitation, compilateurs, navigateurs web, etc.
6.1.4 Outils d’aide aux tests statiques (K1)
Les outils de test statique fournissent une manière rentable de trouver plus de défauts à une étape amont dans le processus de développement.
Outils de revue
Ces outils aident aux revues des processus, des check-lists, des directives de revue et sont utilisés pour enregistrer et communiquer les commentaires des revues, et les rapports sur les défauts et les essais. Ils peuvent être d‟une aide supplémentaire en fournissant l'assistance pour des revues en ligne pour des équipes de taille importante ou géographiquement dispersées.
Outils d'analyse statique (D)

Ces outils 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. Ils peuvent également aider dans la planification ou l‟analyse de risque en fournissant des métriques pour le code (par exemple, complexité).
Outils de modélisation (D)
Ces outils sont employés pour valider les modèles de logiciel (par exemple, modèle de données physiques (MDP) pour une base de données relationnelle), en énumérant des incohérences et en trouvant des défauts. Ces outils peuvent souvent aider en produisant quelques cas de test basés sur le modèle.

6.1.5 Outils d’aide à la spécification des tests (K1)
Outils de conception de tests
Ces outils sont 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) ou à partir du code.
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, ceci en assurant la sécurité des données grâce à leur anonymisation.

6.1.6 Outils d’aide à l'exécution et à l’enregistrement des tests (K1)
Outils d’exécution des tests
Ces outils permettent à des tests d'être exécutés automatiquement, ou semi-automatiquement, utilisant les entrées enregistrées et les résultats prévus, par l'utilisation d‟un langage de script et fournissent habituellement un registre de test pour chaque exécution de test. Ils peuvent également être employés pour enregistrer des tests, et disposent habituellement d‟un langage de script ou une configuration via 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)
Un harnais ou framework de tests unitaires 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
Les comparateurs de tests déterminent des différences entre les fichiers, bases de données ou résultats de tests. Les outils d'exécution des tests incluent en général des comparateurs dynamiques, mais les comparaisons post-exécution peuvent être faites par un outil de comparaison distinct. Un comparateur de tests peut utiliser un oracle de tests, en particulier s'il est automatisé.
Outils de mesure de couverture (D)
Ces outils, par des moyens intrusifs ou non intrusifs, 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.
Outils de test de sécurité
Ces outils sont utilisés pour évaluer les caractéristiques de sécurité du logiciel. Ceci inclut l‟évaluation de la capacité du logiciel à protéger la confidentialité, l'intégrité, l'authentification, l'autorisation, la disponibilité, et la non-répudiation des données. Les outils de sécurité sont en grande partie concentrés sur une technologie, une plate-forme, et un but particulier.

6.1.7 Outils de support de performance et de surveillance (K1)
Outils d'analyse dynamique (D)
Les outils d‟analyse dynamique 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. Ils sont typiquement utilisés dans des tests de composants et d‟intégration de composants, et dans les tests de middleware.
Outils de test de performance/test de charge/test de stress
Les outils de test de performance 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 simulanés, de leur modèle de montée en charge, de fréquence et de pourcentage relatif de transactions. La simulation de la charge est réalisée au moyen de la création d'utilisateurs virtuels effectuant un ensemble choisi de transactions diffusées à travers divers machines de test identifiés comme injecteurs de charge.
Outils de surveillance
Les outils de surveillance 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.

6.1.8 Outils de support pour des besoins de tests spécifiques (K1)
Evaluation de la qualité des données
Les données sont au centre de certains projets tels que des projets de conversion/migration des données et des applications comme le stockage de données. Leurs caractéristiques peuvent varier en termes de criticité et volume. Dans de tels contextes, des outils d‟évaluation de la qualité des données doivent être utilisés pour revoir et vérifier les règles de conversion et de migration des données, pour s'assurer que les données traitées sont correctes, complètes et se conforment à une norme prédéfinie spécifique au contexte.
D'autres outils de test existent pour le test d'utilisabilité.

6.2 Utilisation efficace des outils : Bénéfices potentiels et Risques (K2)

Termes
Tests pilotés par les données, tests pilotés par mots clé, langage de script

6.2.1 Bénéfices potentiels et risques liés aux outils de test (pour tous les outils) (K2)
Le simple achat, ou la location d‟un outil ne garantit par le succès. Chaque type d‟outil nécessite des efforts supplémentaires pour atteindre des bénéfices réels et durables. S‟il existe des opportunités potentielles de bénéfices à utiliser des outils dans le test, il existe aussi des risques.
Bénéfices potentiels à l‟utilisation d‟outils :
 Réduction du travail répétitif (p.ex. 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 (p.ex. tests exécutés par un outil suivant un ordre et une fréquence précis et tests déduits des exigences).
 Evaluation objective (p.ex. mesure statiques, couverture).
 Facilité d‟accès aux informations concernant les tests ou leur exécution (p.ex. statistiques et graphiques sur l‟avancement des tests, le taux d‟incidents et les performances).
Risques liés à l‟utilisation d‟outils :
 Attentes irréalistes placées dans l‟outil (dont la facilité d‟utilisation et la fonctionnalité).
 Sous-estimation du temps, du coût et de l‟effort pour l‟introduction initiale d‟un outil (dont la formation et l‟expertise externe).
 Sous-estimation du temps et de l‟effort nécessaires pour obtenir de l‟outil des bénéfices significatifs et continus de l‟outil (incluant le besoin de modification du processus de tests et l‟amélioration continue dans la manière d‟utiliser l‟outil).
 Sous-estimation de l‟effort requis pour maintenir les acquis générés par l‟outil.
 Confiance excessive dans l‟outil (comme substitut à la conception des tests ou alors que des tests manuels seraient plus appropriés).
 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, tels que des outils de gestion d'exigences, des outils de contrôle de version, des outils de gestion d'incidents, des outils de suivi de défauts et des outils de différents éditeurs
 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

6.2.2 Considérations spéciales pour quelques types d'outil (K1)
Outils d’exécution des tests
Les outils d'exécution de tests exécutent des objets de tests utilisant des scripts de test automatisés. Ce type d‟outil nécessite souvent un effort important pour obtenir des bénéfices significatifs.
Saisir des tests en enregistrant les actions d‟un testeur manuel semble séduisant, mais cette approche ne peut pas être appliquée lorsque le nombre de tests automatisés est important. Un script capturé est une représentation linéaire avec des données et actions spécifiques faisant partie de chaque script. Ce type de script peut être instable lors de l‟occurrence d‟événements inattendus.

Une approche guidée par les données isole les entrées de tests (les données), habituellement au moyen d‟un tableur et utilise un script plus générique qui peut lire les données de test et effectuer le même test avec des données différentes. Les testeurs qui ne sont pas familiarisés avec le langage de scripts peuvent alors entrer des données de tests pour ces scripts prédéfinis.
Il y a d'autres techniques utilisées avec des techniques pilotées par les données, où au lieu des combinaisons codées en dur de données placées dans un tableur, des données sont produites utilisant des algorithmes basés sur des paramètres configurables lors de l'exécution et fournis à l'application. Par exemple, un outil peut utiliser un algorithme, qui produit un identifiant de l'utilisateur de façon aléatoire, et pour la répétabilité dans le modèle, une injection est utilisée pour en contrôler le caractère aléatoire.
Dans une approche par mots-clés, le tableur contient des mots-clés décrivant les actions à effectuer (aussi appelés mots d‟action ou action words), et des données de tests. Les testeurs (même s‟ils ne sont pas familiers avec le langage de script) peuvent ensuite définir des tests en utilisant les mots-clés, qui peuvent être adaptés en fonction de l‟application à tester.
Une expertise technique quant au langage de script est requise pour toutes les approches (soit par les testeurs, soit par des spécialistes en automatisation des tests).
Quelle que soit la technique de script utilisée, le résultat attendu pour chaque test est archivé pour une comparaison ultérieure.
Outils d'analyse statique
Les outils d‟analyse statique appliqués au code source peuvent imposer des standards de codage, mais s‟ils sont appliqués à du code existant, peuvent engendrer de nombreux messages. Les messages d‟avertissement n‟empêchent pas le code d‟être traduit en programme exécutable, mais doivent être pris en compte afin de faciliter la maintenance du code dans le futur. Une implémentation graduelle avec des filtres initiaux pour exclure certains messages constitue une approche efficace.
Outils de gestion des tests
Les outils de gestion des tests doivent s‟interfacer avec d‟autres outils ou des tableurs de façon à produire les informations dans le format le mieux adapté aux besoins présents de l‟organisation.

6.3 Introduire un outil dans une organisation (K1)

Termes
Aucun terme spécifique.
Contexte
Les principes principaux liés à l‟introduction d‟un outil dans une organisation incluent:
 Evaluation de la maturité de l‟organisation, de ses forces et de ses faiblesses et identification des possibilités d‟amélioration du processus de test par le support d‟outils.
 Evaluation au regard d‟exigences claires et de critères objectifs.
 Une preuve de concept, à l'aide d'un outil de test pendant la phase d'évaluation pour vérifier qu‟il fonctionne efficacement avec le logiciel en cours de test et dans l'infrastructure courante ou pour identifier des modifications requises de cette infrastructure pour utiliser l'outil efficacement
 Evaluation du vendeur (aspects de formation, de support et de commerce y compris) ou des fournisseurs de service de support en cas d'outils non commerciaux
 Identification des exigences internes pour le soutien et la tutelle dans l'utilisation de l'outil
 Evaluation de besoin de formation par rapport aux compétences en automatisation de tests de l'équipe de test courante
 Evaluation du rapport coût/bénéfice basé sur un cas métier concret
Introduire l'outil choisi dans une organisation commence par un projet pilote, qui a les objectifs suivants :
 Apprendre l‟outil plus en profondeur.
 Voir comment l‟outil s‟adapte à des processus et pratiques existants, et comment ces derniers devraient évoluer.
 Décider d‟une manière standard d‟utiliser, de gérer, de stocker et de maintenir l‟outil et le testware (p.ex. décider d‟une convention de nommage pour les fichiers et les tests, créer des bibliothèques et définir la modularité des suites de tests).
 Evaluer si les bénéfices escomptés seront atteints pour un coût raisonnable.
Les facteurs de succès du déploiement d‟un outil dans une organisation incluent :
 Etendre l‟outil au reste de l‟organisation de façon incrémentale.
 Adapter et améliorer les processus de façon à les adapter à l‟utilisation de l‟outil.
 Fournir de la formation et une assistance aux nouveaux utilisateurs.
 Établir des guides d‟utilisation.
 Implémenter une manière de tirer des enseignements de l‟utilisation de l‟outil.
 Surveiller l‟utilisation de l‟outil et les bénéfices recueillis
 Fournir le support pour l'équipe de test pour un outil donné
 Recueillir l'expérience acquise de toutes les équipes