types software testing
Quels sont les différents types de tests logiciels?
En tant que testeurs, nous sommes conscients des différents types de tests logiciels tels que les tests fonctionnels, les tests non fonctionnels, les tests d'automatisation, les tests agiles et leurs sous-types, etc.
Chacun de nous aurait rencontré plusieurs types de tests au cours de notre parcours de test. Nous en avons peut-être entendu parler et nous avons peut-être travaillé sur certains, mais tout le monde ne connaît pas tous les types de tests.
Chaque type de test a ses propres caractéristiques, avantages et inconvénients. Cependant, dans cet article, j'ai couvert principalement tous les types de tests logiciels que nous utilisons habituellement dans notre vie de test quotidienne.
Allons-y jeter un œil.
Ce que vous apprendrez:
- Différents types de tests logiciels
- # 1) Test alpha
- # 2) Test d'acceptation
- # 3) Tests ad hoc
- # 4) Test d'accessibilité
- # 5) Test bêta
- # 6) Test back-end
- # 7) Test de compatibilité du navigateur
- # 8) Test de compatibilité descendante
- # 9) Test de la boîte noire
- # 10) Test de la valeur limite
- # 11) Test de branche
- # 12) Test de comparaison
- # 13) Test de compatibilité
- # 14) Test des composants
- # 15) Test de bout en bout
- # 16) Partitionnement d'équivalence
- # 17) Exemple de test
- # 18) Essais exploratoires
- # 20) Test fonctionnel
- # 21) Test de l'interface utilisateur graphique (GUI)
- # 22) Test de gorille
- # 23) Test de Happy Path
- # 24) Test d'intégration incrémentielle
- # 25) Test d'installation / désinstallation
- # 26) Test d'intégration
- # 27) Test de charge
- # 28) Test de singe
- # 29) Test de mutation
- # 30) Test négatif
- # 31) Tests non fonctionnels
- # 32) Test de performance
- # 33) Test de récupération
- # 34) Test de régression
- # 35) Tests basés sur les risques (RBT)
- # 36) Test de santé mentale
- # 37) Test de sécurité
- # 38) Test de fumée
- # 39) Test statique
- # 40) Test de résistance
- # 41) Test du système
- # 42) Test unitaire
- # 43) Test d'utilisabilité
- # 44) Test de vulnérabilité
- # 45) Test de volume
- # 46) Test de la boîte blanche
- Conclusion
- lecture recommandée
Différents types de tests logiciels
Vous trouverez ci-dessous la liste de certains types courants de tests logiciels:
Les types de tests fonctionnels comprennent:
- Test unitaire
- Test d'intégration
- Test du système
- Test de santé mentale
- Test de fumée
- Test d'interface
- Les tests de régression
- Test bêta / d'acceptation
Les types de tests non fonctionnels comprennent:
- Test de performance
- Test de charge
- Test de stress
- Test de volume
- Test de sécurité
- Test de compatibilité
- Test d'installation
- Test de récupération
- Test de fiabilité
- Tests d'utilisation
- Test de conformité
- Test de localisation
Voyons plus de détails sur ces types de tests.
# 1) Test alpha
C'est le type de test le plus couramment utilisé dans l'industrie du logiciel. L'objectif de ce test est d'identifier tous les problèmes ou défauts possibles avant de le mettre sur le marché ou à l'utilisateur.
L'Alpha Testing est réalisé à la fin de la phase de développement logiciel mais avant le Beta Testing. Néanmoins, des modifications de conception mineures peuvent être apportées à la suite de ces tests.
Test alpha est effectuée sur le site du développeur. Un environnement utilisateur virtuel interne peut être créé pour ce type de test.
# 2) Test d'acceptation
Une Test d'admission est effectuée par le client et vérifie si le flux de bout en bout du système est conforme aux exigences de l'entreprise ou non et s'il est conforme aux besoins de l'utilisateur final. Le client accepte le logiciel uniquement lorsque toutes les fonctionnalités et fonctionnalités fonctionnent comme prévu.
C'est la dernière phase des tests, après quoi le logiciel entre en production. Ceci est également appelé test d'acceptation de l'utilisateur (UAT).
# 3) Tests ad hoc
Le nom lui-même suggère que ce test est effectué sur un ad-hoc c'est-à-dire sans référence au scénario de test et également sans aucun plan ou documentation en place pour ce type de test.
L'objectif de ce test est de trouver les défauts et de casser l'application en exécutant tout flux de l'application ou toute fonctionnalité aléatoire.
Les tests ad hoc sont un moyen informel de trouver des défauts et peuvent être effectués par n'importe qui dans le projet. Il est difficile d'identifier les défauts sans scénario de test, mais il est parfois possible que les défauts détectés pendant les tests ad hoc n'aient pas été identifiés à l'aide de cas de test existants.
# 4) Test d'accessibilité
Le but de Test d'accessibilité consiste à déterminer si le logiciel ou l'application est accessible aux personnes handicapées ou non.
Ici, le handicap signifie les sourds, les daltoniens, les handicapés mentaux, les aveugles, les personnes âgées et d'autres groupes handicapés. Divers contrôles sont effectués tels que la taille de la police pour les personnes visuellement désactivées, la couleur et le contraste pour le daltonisme, etc.
# 5) Test bêta
Tests bêta est un type formel de test logiciel effectué par le client. Il est exécuté dans l'environnement réel avant de lancer le produit sur le marché pour les utilisateurs finaux réels.
Les tests bêta sont effectués pour s'assurer qu'il n'y a pas de défaillance majeure du logiciel ou du produit et qu'il répond aux exigences de l'entreprise du point de vue de l'utilisateur final. Le test bêta est réussi lorsque le client accepte le logiciel.
Habituellement, ces tests sont généralement effectués par des utilisateurs finaux ou d'autres personnes. Il s'agit du test final effectué avant de publier une application à des fins commerciales. Habituellement, la version bêta du logiciel ou du produit publié est limitée à un certain nombre d'utilisateurs dans une zone spécifique.
Ainsi, l'utilisateur final utilise réellement le logiciel et partage ses commentaires avec l'entreprise. L'entreprise prend alors les mesures nécessaires avant de publier le logiciel dans le monde entier.
# 6) Test back-end
Chaque fois qu'une entrée ou des données sont entrées sur une application frontale, elles sont stockées dans la base de données et le test de cette base de données est connu sous le nom de test de base de données ou de test de backend.
Il existe différentes bases de données comme SQL Server, MySQL et Oracle, etc. Le test de base de données implique le test de la structure de la table, du schéma, de la procédure stockée, de la structure des données, etc.
Dans Back-end Testing GUI n'est pas impliqué, les testeurs sont directement connectés à la base de données avec un accès approprié et les testeurs peuvent facilement vérifier les données en exécutant quelques requêtes sur la base de données.
Il peut y avoir des problèmes identifiés tels que la perte de données, le blocage, la corruption des données, etc. au cours de ces tests back-end et ces problèmes sont essentiels à résoudre avant que le système ne soit mis en service dans l'environnement de production.
# 7) Test de compatibilité du navigateur
Il s'agit d'un sous-type de test de compatibilité (qui est expliqué ci-dessous) et est effectué par l'équipe de test.
Test de compatibilité du navigateur est effectué pour les applications Web et garantit que le logiciel peut fonctionner avec la combinaison de différents navigateurs et systèmes d'exploitation. Ce type de test vérifie également si l'application Web s'exécute sur toutes les versions de tous les navigateurs ou non.
# 8) Test de compatibilité descendante
C'est un type de test qui valide si le logiciel nouvellement développé ou le logiciel mis à jour fonctionne bien avec l'ancienne version de l'environnement ou non.
Le test de compatibilité descendante vérifie si la nouvelle version du logiciel fonctionne correctement avec le format de fichier créé par une ancienne version du logiciel; il fonctionne également bien avec les tables de données, les fichiers de données, la structure de données créée par l'ancienne version de ce logiciel.
Si l'un des logiciels est mis à jour, il devrait bien fonctionner en plus de la version précédente de ce logiciel.
# 9) Test de la boîte noire
La conception du système interne n'est pas prise en compte dans ce type de test. Les tests sont basés sur les exigences et la fonctionnalité.
Informations détaillées sur les avantages, les inconvénients et types de tests de boîte noire peut être vu ici .
# 10) Test de la valeur limite
Ce type de test vérifie le comportement de l'application au niveau des limites.
Test de la valeur limite est effectuée pour vérifier si des défauts existent aux valeurs limites. Le test de valeur limite est utilisé pour tester une plage de nombres différente. Il existe une limite supérieure et inférieure pour chaque plage et des tests sont effectués sur ces valeurs limites.
Si le test nécessite une plage de test de nombres de 1 à 500, alors le test de valeur limite est effectué sur des valeurs à 0, 1, 2, 499, 500 et 501.
# 11) Test de branche
Il s'agit d'un type de test de boîte blanche et est effectué pendant les tests unitaires. Branch Testing, le nom lui-même suggère que le code est testé en profondeur en parcourant chaque branche.
VPN netflix us gratuit
# 12) Test de comparaison
La comparaison des forces et des faiblesses d’un produit avec ses versions précédentes ou d’autres produits similaires est appelée test de comparaison.
# 13) Test de compatibilité
Il s'agit d'un type de test dans lequel il valide la manière dont le logiciel se comporte et s'exécute dans un environnement, des serveurs Web, du matériel et un environnement réseau différents.
Test de compatibilité garantit que le logiciel peut fonctionner sur une configuration différente, une base de données différente, différents navigateurs et leurs versions. Les tests de compatibilité sont effectués par l'équipe de test.
# 14) Test des composants
Il est principalement effectué par les développeurs après la fin des tests unitaires. Test des composants implique le test de plusieurs fonctionnalités en tant que code unique et son objectif est d'identifier s'il existe un défaut après avoir connecté ces multiples fonctionnalités entre elles.
# 15) Test de bout en bout
Similaire au test du système, Test de bout en bout implique le test d'un environnement d'application complet dans une situation qui imite une utilisation réelle, telle que l'interaction avec une base de données, l'utilisation de communications réseau ou l'interaction avec d'autres matériels, applications ou systèmes, le cas échéant.
# 16) Partitionnement d'équivalence
C'est une technique de test et un type de test Black Box. Pendant Ça Partitionnement d'équivalence , un ensemble du groupe est sélectionné et quelques valeurs ou nombres sont prélevés pour les tests. Il est entendu que toutes les valeurs de ce groupe génèrent la même sortie.
Le but de ce test est de supprimer les cas de test redondants dans un groupe spécifique qui génère la même sortie mais aucun défaut.
Supposons que l'application accepte des valeurs comprises entre -10 et +10, de sorte qu'en utilisant le partitionnement d'équivalence, les valeurs sélectionnées pour le test sont zéro, une valeur positive, une valeur négative. Ainsi, le partitionnement d'équivalence pour ce test est de -10 à -1, 0 et 1 à 10.
# 17) Exemple de test
Cela signifie des tests en temps réel. Le test d'exemple inclut le scénario en temps réel, il implique également les scénarios basés sur l'expérience des testeurs.
# 18) Essais exploratoires
Les tests exploratoires sont des tests informels effectués par l'équipe de test. L'objectif de ce test est d'explorer l'application et de rechercher les défauts qui existent dans l'application.
Parfois, il peut arriver que lors de ce test, un défaut majeur découvert puisse même provoquer une défaillance du système.
Pendant les tests exploratoires, il est conseillé de garder une trace du flux que vous avez testé et de l'activité que vous avez faite avant le début du flux spécifique.
Une technique de test exploratoire est effectuée sans documentation ni cas de test.
# 20) Test fonctionnel
Ce type de test ignore les pièces internes et se concentre uniquement sur la sortie pour vérifier si elle est conforme aux exigences ou non. Il s'agit d'un test de type Black-box adapté aux exigences fonctionnelles d'une application. Pour des informations détaillées sur les tests fonctionnels, cliquez sur ici .
# 21) Test de l'interface utilisateur graphique (GUI)
L'objectif de ce test GUI est de valider l'interface graphique conformément aux exigences de l'entreprise. L'interface graphique attendue de l'application est mentionnée dans les écrans de maquette de document de conception détaillée et d'interface graphique.
Le test GUI comprend la taille des boutons et du champ de saisie présents à l'écran, l'alignement de tous les textes, tableaux et contenus des tableaux.
Il valide également le menu de l'application, après avoir sélectionné différents menus et éléments de menu, il valide que la page ne fluctue pas et que l'alignement reste le même après avoir passé la souris sur le menu ou sous-menu.
# 22) Test de gorille
Le test Gorilla est un type de test effectué par un testeur et parfois également par le développeur. Dans Gorilla Testing, un module ou la fonctionnalité du module est testé de manière approfondie et approfondie. L'objectif de ce test est de vérifier la robustesse de l'application.
# 23) Test de Happy Path
L'objectif de Happy Path Testing est de tester une application avec succès sur un flux positif. Il ne recherche pas les conditions négatives ou d'erreur. L'accent est mis uniquement sur les entrées valides et positives par lesquelles l'application génère la sortie attendue.
# 24) Test d'intégration incrémentielle
Test d'intégration incrémentale est une approche ascendante pour les tests, c'est-à-dire les tests continus d'une application lorsque de nouvelles fonctionnalités sont ajoutées. La fonctionnalité et les modules de l'application doivent être suffisamment indépendants pour être testés séparément. Ceci est fait par des programmeurs ou par des testeurs.
# 25) Test d'installation / désinstallation
Test d'installation et de désinstallation est effectué sur des processus d'installation / désinstallation complets, partiels ou de mise à niveau sur différents systèmes d'exploitation sous différents environnements matériels ou logiciels.
# 26) Test d'intégration
Le test de tous les modules intégrés pour vérifier la fonctionnalité combinée après l'intégration est appelé Test d'intégration .
Les modules sont généralement des modules de code, des applications individuelles, des applications client et serveur sur un réseau, etc. Ce type de test est particulièrement pertinent pour les systèmes client / serveur et distribués.
# 27) Test de charge
Il s'agit d'un type de test non fonctionnel et l'objectif du test de charge est de vérifier la charge ou la charge de travail maximale qu'un système peut gérer sans aucune dégradation des performances.
Le test de charge aide pour trouver la capacité maximale du système sous une charge spécifique et tout problème entraînant une dégradation des performances du logiciel. Les tests de charge sont effectués à l'aide d'outils tels que JMeter , LoadRunner, WebLoad, artiste Silk, etc.
# 28) Test de singe
Test de singe est effectuée par un testeur en supposant que si le singe utilise l'application, alors comment l'entrée aléatoire, les valeurs seront entrées par le singe sans aucune connaissance ou compréhension de l'application.
L'objectif de Monkey Testing est de vérifier si une application ou un système tombe en panne en fournissant des valeurs / données d'entrée aléatoires. Le test de singe est effectué de manière aléatoire et aucun cas de test n'est scripté et il n'est pas nécessaire de
Le test de singe est effectué de manière aléatoire et aucun scénario de test n'est scripté et il n'est pas nécessaire de connaître toutes les fonctionnalités du système.
# 29) Test de mutation
Test de mutation est un type de test de boîte blanche dans lequel le code source de l'un des programmes est modifié et vérifie si les cas de test existants peuvent identifier ces défauts dans le système.
Le changement dans le code source du programme est très minime de sorte qu'il n'affecte pas l'ensemble de l'application, seule la zone spécifique ayant l'impact et les cas de test associés devraient être en mesure d'identifier ces erreurs dans le système.
# 30) Test négatif
Les testeurs ayant l'état d'esprit de «l'attitude à rompre» et utilisant le test négatif, ils le valident si le système ou l'application se brise. Une technique de test négatif est effectuée à l'aide de données incorrectes, de données ou d'entrée invalides. Il valide que si le système renvoie une erreur d'entrée non valide et se comporte comme prévu.
# 31) Tests non fonctionnels
Il s'agit d'un type de test pour lequel chaque organisation a une équipe distincte qui est généralement appelée équipe de test non fonctionnel (NFT) ou équipe de performance.
Tests non fonctionnels implique le test des exigences non fonctionnelles telles que les tests de charge, les tests de résistance, la sécurité, le volume, les tests de récupération, etc. L'objectif des tests NFT est de s'assurer que le temps de réponse du logiciel ou de l'application est suffisamment rapide selon les besoins de l'entreprise.
Le chargement d'une page ou d'un système ne devrait pas prendre beaucoup de temps et devrait se maintenir pendant la charge maximale.
# 32) Test de performance
Ce terme est souvent utilisé de manière interchangeable avec les tests de «contrainte» et de «charge». Test de performance est effectué pour vérifier si le système répond aux exigences de performance. Différents outils de performance et de charge sont utilisés pour effectuer ces tests.
# 33) Test de récupération
Il s'agit d'un type de test qui valide la capacité de l'application ou du système à se remettre des plantages ou des catastrophes.
Le test de récupération détermine si le système est en mesure de continuer l'opération après un sinistre. Supposons que l'application reçoit des données via le câble réseau et que soudainement ce câble réseau a été débranché.
Un peu plus tard, branchez le câble réseau; alors le système devrait commencer à recevoir des données d'où il a perdu la connexion en raison du câble réseau débranché.
# 34) Test de régression
Tester une application dans son ensemble pour la modification de tout module ou fonctionnalité est appelé test de régression. Il est difficile de couvrir tout le système en Les tests de régression , si typiquement Outils de test d'automatisation sont utilisés pour ces types de tests.
# 35) Tests basés sur les risques (RBT)
Dans Tests basés sur les risques , les fonctionnalités ou exigences sont testées en fonction de leur priorité. Les tests basés sur les risques comprennent les tests de fonctionnalités hautement critiques, qui ont le plus grand impact sur l'entreprise et dans lesquelles la probabilité de défaillance est très élevée.
La décision de priorité est basée sur le besoin de l'entreprise, donc une fois que la priorité est définie pour toutes les fonctionnalités, les fonctionnalités de priorité élevée ou les cas de test sont exécutés en premier, suivis des fonctionnalités de priorité moyenne puis de faible priorité.
La fonctionnalité de faible priorité peut être testée ou non testée en fonction du temps disponible.
Le test basé sur les risques est effectué si le temps disponible est insuffisant pour tester l'intégralité du logiciel et le logiciel doit être mis en œuvre à temps sans aucun délai. Cette approche n'est suivie que par la discussion et l'approbation du client et de la haute direction de l'organisation.
# 36) Test de santé mentale
Test de santé mentale est fait pour déterminer si une nouvelle version du logiciel fonctionne suffisamment bien pour l'accepter ou non pour un effort de test majeur. Si une application plante lors de l'utilisation initiale, le système n'est pas suffisamment stable pour des tests supplémentaires. Par conséquent, une build ou une application est assignée pour le réparer.
# 37) Test de sécurité
Il s'agit d'un type de test effectué par une équipe spéciale de testeurs. Un système peut être pénétré par n'importe quel moyen de piratage.
Test de sécurité est fait pour vérifier comment le logiciel ou l'application ou le site Web est protégé contre les menaces internes et externes. Ces tests incluent le niveau de protection des logiciels contre le programme malveillant, les virus et la sécurité et la robustesse des processus d'autorisation et d'authentification.
Il vérifie également comment le logiciel se comporte pour toute attaque de pirates et programmes malveillants et comment les logiciels sont maintenus pour la sécurité des données après une telle attaque de pirates.
# 38) Test de fumée
Chaque fois qu'une nouvelle version est fournie par l'équipe de développement, l'équipe de test de logiciels valide la version et s'assure qu'aucun problème majeur n'existe.
L'équipe de test s'assure que la construction est stable et qu'un niveau détaillé de test est effectué plus loin. Test de fumée vérifie qu'aucun défaut de stopper n'existe dans la construction, ce qui empêchera l'équipe de test de tester l'application en détail.
Si les testeurs constatent que la fonctionnalité critique principale est décomposée au stade initial, l'équipe de test peut rejeter la version et informer en conséquence l'équipe de développement. Les tests de fumée sont effectués à un niveau détaillé de tout test fonctionnel ou de régression.
# 39) Test statique
Le test statique est un type de test qui est exécuté sans aucun code. L'exécution est effectuée sur la documentation pendant la phase de test.
Cela implique des revues, des visites pas à pas et une inspection des livrables du projet. Le test statique n'exécute pas le code au lieu de la syntaxe du code, les conventions de dénomination sont vérifiées.
Test statique est également applicable pour les cas de test, le plan de test, le document de conception. Il est nécessaire d'effectuer des tests statiques par l'équipe de test car les défauts identifiés lors de ce type de test sont rentables du point de vue du projet.
# 40) Test de résistance
Ce test est effectué lorsqu'un système est sollicité au-delà de ses spécifications afin de vérifier comment et quand il échoue. Ceci est effectué sous une charge lourde comme mettre un grand nombre au-delà de la capacité de stockage, des requêtes de base de données complexes, une entrée continue dans le système ou une charge de base de données.
# 41) Test du système
Sous Technique de test du système , l'ensemble du système est testé selon les exigences. Il s'agit d'un test de type boîte noire basé sur des spécifications d'exigences globales et couvrant toutes les parties combinées d'un système.
# 42) Test unitaire
Le test d'un composant logiciel ou d'un module individuel est appelé Test unitaire . Elle est généralement effectuée par le programmeur et non par les testeurs, car elle nécessite une connaissance détaillée de la conception et du code du programme interne. Cela peut également nécessiter le développement de modules de pilotes de test ou de faisceaux de test.
# 43) Test d'utilisabilité
Sous Tests d'utilisation , Le contrôle de la convivialité est effectué. Le flux de l'application est testé pour savoir si un nouvel utilisateur peut comprendre l'application facilement ou non, une aide appropriée est documentée si un utilisateur est bloqué à tout moment. Fondamentalement, la navigation du système est vérifiée dans ce test.
# 44) Test de vulnérabilité
Le test qui consiste à identifier les faiblesses du logiciel, du matériel et du réseau est connu sous le nom de test de vulnérabilité. Programmes malveillants, le pirate peut prendre le contrôle du système, s'il est vulnérable à ce type d'attaques, de virus et de vers.
Il est donc nécessaire de vérifier si ces systèmes subissent des tests de vulnérabilité avant la production. Il peut identifier des défauts critiques, des failles dans la sécurité.
# 45) Test de volume
Test de volume est un type de test non fonctionnel effectué par l'équipe de test de performance.
Le logiciel ou l'application subit une énorme quantité de données et le test de volume vérifie le comportement du système et le temps de réponse de l'application lorsque le système rencontre un volume de données aussi élevé. Ce volume élevé de données peut avoir un impact sur les performances du système et la vitesse de traitement.
# 46) Test de la boîte blanche
Test de la boîte blanche repose sur la connaissance de la logique interne du code d’une application.
Il est également connu sous le nom de test de boîte en verre. Les logiciels internes et le fonctionnement du code doivent être connus pour effectuer ce type de test. Sous ces tests sont basés sur la couverture des instructions de code, des branches, des chemins, des conditions, etc.
Conclusion
Les types de tests logiciels mentionnés ci-dessus ne sont qu'une partie des tests. Cependant, il existe toujours une liste de plus de 100 types de tests, mais tous les types de tests ne sont pas utilisés dans tous les types de projets. J'ai donc couvert certains types courants de tests logiciels qui sont principalement utilisés dans le cycle de vie des tests.
En outre, il existe des définitions ou processus alternatifs utilisés dans différentes organisations, mais le concept de base est le même partout. Ces types de tests, processus et leurs méthodes de mise en œuvre changent au fur et à mesure que le projet, les exigences et la portée changent.
lecture recommandée
- Meilleurs outils de test de logiciels 2021 [Outils d'automatisation des tests QA]
- Test alpha et test bêta (un guide complet)
- Emploi d'assistant QA en test logiciel
- Cours de test logiciel: à quel institut de test logiciel dois-je adhérer?
- Choisir les tests logiciels comme carrière
- Travail d'indépendant de rédacteur de contenu technique de test de logiciels
- Types de risques dans les projets logiciels
- Meilleurs services de test de logiciels d'assurance qualité de SoftwareTestingHelp