Types de tests logiciels

Dans cet article, vous trouverez de nombreuses informations utiles sur les types de test de logiciel et les outils utilisés lors de son implémentation.

Qu’est-ce qu’un type de test logiciel?

De nos jours, il n’existe pas de définition généralement acceptée du «type de test de logiciel». Il n’est pas rare que des méthodes, des niveaux ou même des techniques de conception d’essais soient définis comme le type d’essai. Par exemple, le test de la boîte blanche, le test d’intégration ou même le test des limites sont parfois considérés comme des types de test.

Il est nécessaire de faire référence à des sources officielles pour éviter des interprétations ambiguës. Le Comité international de qualification des tests logiciels (ISTQB) est la respectable organisation internationale qui propose des certifications dans les tests logiciels, reconnues dans le monde entier.

Selon la définition ISTQB, les types de test sont «Moyen de définir clairement l’objectif d’un certain niveau pour un programme ou un projet». Le testeur se concentre sur un objectif de test particulier lors de l’exécution d’un scénario de test. Selon ses objectifs, il existe quatre types de test de logiciel:

  • Test fonctionel
  • Test non fonctionnel
  • Test structurel
  • Changer les tests liés

Bien sûr, il existe de nombreux sous-types de tests. Vous pouvez les voir sur l’image ci-dessous:

types de tests logicielsInformez-vous davantage sur tous les types de tests.

Test fonctionel

Les tests fonctionnels vérifient que chaque fonction de l’application logicielle fonctionne conformément à la spécification du besoin. Tests fonctionnels “Ce que fait le système”. Le but de ces tests est de vérifier si le système est fonctionnellement parfait. Les tests fonctionnels doivent garder à l’esprit cinq étapes:

  • Préparation des données de test sur la base des spécifications des fonctions
  • Les exigences commerciales sont les entrées pour les tests fonctionnels
  • Trouver des sorties des fonctions basées sur des spécifications fonctionnelles;
  • L’exécution des cas de test
  • Observez les résultats réels et attendus.

La fonctionnalité de test peut être réalisée à partir de tests basés sur les exigences et de tests basés sur les processus métier dans deux perspectives.

Tests basés sur les exigences est effectuée en stricte conformité avec les exigences définies.

Tests basés sur les processus métier est effectuée conformément aux connaissances basées sur l’utilisation quotidienne du système.

Avantages des tests fonctionnels:

  • Les tests fonctionnels simulent l’utilisation réelle du système.
  • Il s’exécute dans des conditions proches de celles du client.
  • Aucune hypothèse de structure système n’est formulée lors des tests fonctionnels.
  • Il est facile de faire des tests manuels.

Limites des tests fonctionnels:

  • Il existe une grande possibilité de tests redondants.
  • Des erreurs logiques dans les logiciels peuvent être omises lors des tests fonctionnels.

Il est facile de trouver et d’utiliser des outils pour les tests fonctionnels. Les plus connus sont:Sélénium (Web et application de bureau),Robotium (Application Android),Projet de test Linux, JUnit, Sprinter de Hewlett Packard Entreprise (test manuel),Browserstack (tests automatisés et manuels),Usersnap (test manuel).

Types de tests non fonctionnels

Types de tests non fonctionnelsconcernent les exigences non fonctionnelles. Les tests non fonctionnels aident à estimer l’état de préparation d’un système en fonction de différents critères qui ne sont pas couverts par les tests fonctionnels. Contrairement aux tests fonctionnels, cela montre“Comment fonctionne le système”.

Examinons la diversité des nombreux sous-types de tests non fonctionnels.

Test de l’interface utilisateur vise à assurer que l’interface utilisateur graphique de l’application est conforme aux spécifications. Cela aide à évaluer les éléments de conception tels que la disposition, les couleurs, les polices, la taille des polices, les étiquettes, les zones de texte, la mise en forme du texte, les légendes, les boutons, les listes, les icônes, les liens et le contenu.

Approches pour le test de l’interface utilisateur: manuel, enregistrement et réponse, basé sur un modèle.

Les outils spéciaux et les frameworks les plus populaires pour les tests d’interface utilisateur: FitNesse, iMacros, Interface codée, Jubula, LoadUI.

Test d’expérience utilisateur (UX)vise à vérifier l’interaction des clients avec les produits et services de la société. En réalité, l’UX est bien plus que l’interface visuelle de votre produit. Il contient:

  • Les impressions que le client retire de l’interaction avec le produit ou le service.
  • Le processus client doit passer par la découverte du produit ou du service de la société.
  • La séquence d’actions que le client prend lorsqu’il interagit avec l’interface.

Les outils et les cadres spéciaux pour les tests UX: Usabilla, Omnigraffle, Visual Web Optimizer, UXPin, Oeuf fou.

Test de stockage vérifie l’application testée, stocke les données pertinentes dans les répertoires appropriés et dispose d’un espace suffisant pour empêcher une interruption inattendue en raison d’un espace disque insuffisant. Il est utile de déterminer si l’application utilise plus de mémoire que prévu, car le remplissage de l’espace disque peut entraîner des temps d’arrêt importants.

Les outils sont souvent utilisés pour les tests de stockage: HCIbench, Iomètre, Utilitaire Diskspd.

Test opérationnel vise à évaluer un système ou un composant dans son environnement opérationnel. En l’utilisant, nous pouvons garantir la conformité des systèmes et des composants dans l’environnement d’exploitation standard de l’application. Les tests opérationnels concernent le comportement de la mise en œuvre du système. Ces tests portent principalement sur la disponibilité opérationnelle du système, censé imiter l’environnement de production.

Test de sécurité vise à garantir que le système d’information protège les données et conserve les fonctionnalités prévues.Tests de pénétration et tests de vulnérabilité sont les espèces de types de tests de sécurité.

Tests de pénétration est la simulation d’attaque de source malveillante, qui permet d’évaluer la sécurité d’un système informatique ou d’un réseau.

Test de vulnérabilité vise à évaluer la quantité de risques impliqués dans le système afin de réduire la probabilité de l’événement. Cela permet d’éviter les problèmes pouvant affecter l’intégrité et la stabilité de l’application.

Les outils comme Communauté Retina CS, OWASP Zed Attack Proxy, Veracode, Google Nogotofail, et carte SQL sont souvent utilisés pour les tests de sécurité.

Test de configuration effectué pour vérifier le système avec chacune des configurations logicielles et matérielles prises en charge:

  • Configuration du système d’exploitation – Win 7 32 bits / 64 bits, Win 8 32 bits / 64 bits, Win 7 32 bits / 64 bits, Win 8 32 bits / 64 bits.
  • Configuration de la base de données – Oracle, DB2, MySQL, MSSQL Server, Sybase.
  • Configuration du navigateur – IE 10, IE 11, Mozilla Firefox, Google Chrome.

Il existe différents types de tests de configuration, tels que Test de conversion, test inter-navigateur, test de portabilité binaire, et Test multiplateforme.

Test de conversion assure la conversion correcte des données des systèmes existants pour une utilisation dans des systèmes de remplacement.

Test inter-navigateur effectué pour vérifier le bon fonctionnement de l’application ou du système dans différentes configurations de navigateur: Mozilla Firefox, Google Chrome, Internet Explorer, Opera, etc.

Contrairement aux tests sur plusieurs navigateurs,Tests multiplateformes est destiné à évaluer le travail d’application sous différents systèmes d’exploitation: Windows, iOS / Mac OS, Linux, Android, BlackBerry, etc.

Test de portabilité binaire aide à évaluer la portabilité du logiciel en l’exécutant sur différentes plates-formes et environnements. Il est utilisé pour la confirmation d’une spécification ABI (Application Binary Interface).

Les principaux outils souvent utilisés pour tous les types de tests de configuration: BrowserStack, CrossBrowserTesting par Smart Bear, Tournesol, Browsera, Rational Clearcase d’IBM,  Ghostlab.

Test de localisation effectué pour adapter une application globalisée à une culture / région particulière. Ce processus implique la traduction de toutes les chaînes de la langue maternelle dans la langue cible et la personnalisation de l’interface graphique pour l’adapter au marché cible.Test de globalisation et Test d’internationalisation sont de son genre.

Test de globalisation vérifie le bon fonctionnement du produit avec n’importe lequel des paramètres de culture / paramètres régionaux en utilisant tous les types d’entrées internationales possibles.

Test d’internationalisation vérifie la bonne externalisation du contenu dans différentes langues et différents lieux.

La localisation est généralement effectuée à l’aide d’une combinaison de ressources internes, de sous-traitants indépendants et de services complets d’une entreprise de localisation. Voici quelques outils pour fournir des tests de localisation – aubergine, Babylon.NET par Redpin, et smartCAT.

Test de performance a l’intention de déterminer les performances d’un système en termes de réactivité et de stabilité sous une certaine charge. Les types de tests de performance: Tests de résistance, tests de charge, tests de stabilité, tests de volume, tests de simultanéité, tests d’évolutivité, tests d’endurance, etc.

Estimation des tests de résistance le comportement d’un système au-delà des limites de sa charge de travail prévue.

Test de chargeeffectuée pour évaluer le comportement d’un système face à une charge de travail croissante.

Test de stabilité vise à vérifier si l’application peut continuellement bien fonctionner pendant ou juste au-dessus de la période acceptable.

Test de volume permet d’analyser les performances du système en augmentant le volume de données dans la base de données. Il vérifie que les valeurs peuvent devenir volumineuses avec le temps (comptes cumulés, journaux et fichiers de données, par exemple), peuvent être hébergées par le programme et ne feront pas que le programme cesse de fonctionner ou ne dégrade son fonctionnement.

Test de simultanéité effectuée pour identifier les défauts dans une application lorsque plusieurs utilisateurs se connectent à l’application. En l’utilisant, nous avons la capacité d’identifier et de mesurer les problèmes liés aux paramètres système tels que le temps de réponse, le débit, les verrouillages / blocages ou tout autre problème associé à la simultanéité.

Test d’évolutivité évalue la capacité du système à se développer en augmentant les différents indicateurs, tels que la charge de travail par utilisateur, le nombre d’utilisateurs simultanés ou la taille d’une base de données.

Test d’endurance définit les problèmes pouvant survenir lors d’une exécution prolongée. Il évalue le comportement d’un système lorsqu’une charge de travail importante est donnée en continu.

Essais sur rampe est le type de test d’endurance, qui consiste à augmenter continuellement un signal d’entrée jusqu’à ce que le système tombe en panne.

Apache JMeter, HP LoadRunner, Silk Performer de Micro Focus, WebLOAD, et Gatling sont souvent utilisés pour effectuer différents types de tests de performance.

Test de récupération Le but est d’évaluer la capacité du système à récupérer après un crash, une panne matérielle ou d’autres problèmes catastrophiques. Il est effectué par les équipes de test.

TestDisk, Recuva de Piriform, Wise Data Recovery par WiseCleaner et Restauration de Softonic sont les principaux outils spéciaux pour les tests de récupération.

Test de compatibilité vérifie la compatibilité de l’application dans différents environnements: matériel, logiciel, système d’exploitation, environnement réseau. Il existe deux types de ce type de test:

Compatibilité descendante, compatibilité ascendante essai.

Rétrocompatibilité les tests garantissent que la nouvelle version du produit continuera à fonctionner avec l’ancien produit.

Compatibilité en aval testing fournit la connexion avec la future version du produit.

Browsershots et MultiBrowser pourrait être utilisé gratuitement pour les tests de compatibilité.

Tests d’utilisation effectué pour évaluer un produit ou un service en le testant avec des utilisateurs représentatifs. Il aide à définir la capacité de l’utilisateur à apprendre à utiliser, à préparer les entrées et à interpréter les sorties d’un système ou d’un composant.

Test d’accessibilité est le type de test d’utilisabilité qui détermine le niveau de convivialité d’un produit pour les personnes handicapées (sourds, aveugles, handicapés mentaux). Les outils populaires pour les tests d’utilisabilité: Zoom utilisateur, Réflecteur, Boucle11.

Test structurel

Test structurel vérifie la mise en œuvre du programme ou du code en testant la structure du logiciel ou de ses composants. Le testeur se concentre sur le travail du logiciel lors des tests structurels. Il peut être utilisé à tous les niveaux de test.

Les principaux objectifs de l’essai structurel:

  • Identification des insuffisances évidentes
  • Complément de tests fonctionnels
  • Pour comprendre s’il manque quelque chose dans notre suite de tests

Techniques d’essais structurels:

  • La couverture des instructions vérifie que chaque instruction d’un programme est exécutée au moins une fois lors du test du programme.
  • La couverture de chemin vise à satisfaire les critères de couverture pour chaque chemin logique du programme.
  • La couverture de branche vérifie si chaque condition de branche du programme a des valeurs true ou false.
  • La couverture de l’état est similaire à la couverture de la branche. La principale différence réside dans les tests de couverture de condition pour les branches conditionnelles et non conditionnelles.

Avantages des tests structurels:

  • Élimination du code mort
  • Il est possible de détecter les bugs à un stade précoce.
  • Cela garantit des tests logiciels plus approfondis.
  • Le test structurel n’est pas un processus qui prend du temps.

Inconvénients des tests structurels:

  • Les tests structurels sont coûteux.
  • Cela nécessite la connaissance du code.
  • Cela nécessite une solide connaissance de l’outil utilisé pour les tests.

Les outils spéciaux pour les tests structurels: JBehave, Concombre,  JUnit, Cfix.

Changer les tests liés

Changer les tests liés est fourni afin de s’assurer que les bogues précédemment supprimés ont été corrigés et d’attraper les bogues éventuellement apparus dans une nouvelle version. Selon ces objectifs, il existe deux sous-types de tests liés au changement:Test de confirmation (re-test) et Les tests de régression.

Ils confondent souvent le test de confirmation avec le test de régression. En règle générale, ils doivent être tenus les uns après les autres. Clarifions la différence entre ces sous-types de tests liés au changement.

Tout d’abord, vous devriez effectuer Test de confirmation pour s’assurer que le bogue a bien été supprimé avec succès. En termes simples, le scénario de test qui a initialement détecté le bogue est exécuté à nouveau et cette fois-ci, il devrait passer sans problème

.Les tests de régression ne comprend pas seulement les cas de test de bogues détectés. Cette opération est effectuée non seulement pour vérifier la correction des bogues, mais également pour s’assurer que de nouveaux défauts ne sont pas apparus ou découverts après les modifications.

Espérons que la photo ci-dessous vous aidera à mieux comprendre le processus de test lié au changement.

Changer les types de tests liés

Les outils de test liés au changement: Sélénium, HP Quick Test Professional,TestComplete, TestDrive, SoapUI.

Vous avez maintenant une idée de beaucoup de types de tests. Certains d’entre eux sont utilisés quotidiennement par un très grand nombre de spécialistes, d’autres très rarement. Quoi qu’il en soit, la totalité de la vie ne suffit pas pour apprendre fondamentalement chacun des types de test. Mais la pratique est la meilleure façon de le faire. Espérons que les informations présentées ici vous aideront dans votre activité future d’AQ. Il serait bon de connaître votre opinion sur les types de test dans les commentaires.