Published On: 28 juin 20226,5 min read

Les différents types de test d’un logiciel

Dans un projet informatique, la phase de recette du système permet de garantir au client que le système livré correspond aux besoins exprimés. Tout en respectant la stratégie de test informatique ou la politique de tests mises en place au sein de l’organisation du client, la phase de recette permet de certifier que les livrables sont en conformité avec les besoins des clients et des utilisateurs finaux.

Son objectif est donc de lever, au plus tôt, un maximum de défauts différents afin qu’ils puissent être corrigés ou contournés avant toute activité en production. Pour cela, il est conseillé de s’appuyer sur les spécifications rédigées en début de projet, pour bien tester les limites de l’outil.

Quels sont les différents types de tests logiciels ?

Il existe différents types de test logiciel. En suivant les niveaux de la pyramide des tests selon le schéma ci-dessous, ils se répartissent habituellement de bas en haut :

l'image est une infographie de la pyramide des tests

Test unitaires

Les tests unitaires sont les plus rapides à mettre en place et les moins coûteux à automatiser si c’est le souhait de l’entreprise. Ils sont effectués par l’équipe de développement afin de vérifier que ce qui a été développé, notamment dans le code, corresponde bien aux besoins exprimés dans les spécifications.

Ils testent chaque fonctionnalité des outils ou chaque composant de l’infrastructure unitairement sans prendre en compte ses intéractions avec d’autres éléments du système à tester.

Test d’intégration

Les tests d’intégration permettent de s’assurer que la communication entre deux parties du système (via une API par exemple) se fait correctement et qu’il n’y ait pas de problèmes de configuration, de correspondances.

Test système

Les tests systèmes sont des tests logiciels plus généraux qui ne nécessitent pas de connaître techniquement la composition de l’outil pour le tester. Ils incluent l’exécution de différents types de tests :

1) Smoke test

Ce sont des tests préliminaires simples des fonctionnalités principales et qui permettent de lever d’éventuelles défaillances majeures. En effet, l’objectif est de mesurer, à grande échelle, l’intérêt que portent des utilisateurs vis-à-vis d’un logiciel ou d’une application qu’on souhaiterait mettre en ligne. Ce type de test est d’ailleurs très simple de par leur mise en place et leur faible coût.

2) Tests type “boîte noire”

Leur but est de valider l’ensemble des parcours métier sur le système afin de vérifier la cohérence entre les résultats obtenus et les résultats attendus selon les éléments fournis en entrée et de s’assurer que les limites du système sont correctement assurées.

3) Tests de robustesse et de bout en bout

Ce type de test permet de vérifier que l’application, dans son ensemble, se comporte comme prévu que ce soit des comportements avec des entrées valides ou des entrées invalides (mot de passe erroné par exemple).

4) Tests d’accessibilité

Ce test vise à s’assurer que le numérique soit accessible aux personnes handicapées. En effet, certaines lois ou organismes internationaux comme l’American with Disabilities Act (ADA) mettent en place des initiatives de testing pour que toutes personnes soient sur un même niveau d’égalité à l’égard de l’accessibilité de ressources informatiques et technologiques.

5) Tests d’intégrité

Ces types de test permettent de s’assurer que l’intégration des données ou des fichiers modifiés ou corrompus par des tiers n’est pas permise. Ces tests logiciels peuvent aussi être utilisés en production.

6) Tests d’utilisabilité ou d’ergonomie

Ces types de test d’utilisabilité sont définis dès le début du projet, notamment dans le plan de test, car ils permettent de vérifier que les éléments de navigation prévus dans les phases de conception graphique du système sont bien respectés. Ces phases sont particulièrement importantes pour les systèmes grand public comme les sites web.

Test d’acceptation par les utilisateurs

Les tests d’acceptation sont effectués par les parties métiers, clients ou utilisateurs finaux et sont inclus dans la dernière phase de test logiciel d’un projet. Ce sont souvent des tests manuels juste avant la livraison en production.

Ils sont, d’après la norme ISO 24765, des « tests formels en rapport avec les besoins utilisateur, exigences et processus métier, réalisés pour déterminer si un système satisfait ou non aux critères d’acceptation et permettre aux utilisateurs, clients ou autres entités autorisées de déterminer l’acceptation ou non du système ».

Le comportement fonctionnel de l’outil, dans son ensemble, est vérifié grâce à l’ensemble des tests logiciels ci-dessus qui sont des tests dits « fonctionnels ».

Quid des types de tests non-fonctionnels ?

Il existe aussi différents types de tests dits « non-fonctionnels » qui peuvent être effectués afin de valider d’autres aspects du système (tout aussi importants). Voici les principaux types de tests non-fonctionnels :

Tests de compatibilité

Ces tests logiciels permettent de s’assurer qu’un système est toujours fonctionnel dans une infrastructure qui change ou lors d’une montée de version d’un des éléments (s’assurer qu’un site est accessible depuis plusieurs navigateurs par exemple).

Tests de conformité

Ce type de test logiciel permet de s’assurer que le système répond aux exigences, normes imposées par l’entreprise ou l’organisation dans lequel il est implémenté.

Tests de charge

Un test de charge permet de s’assurer que l’afflux massif d’utilisateur sur une plateforme ne dégrade pas les temps de réponse de l’outil ou son accessibilité. Les tests d’endurance sont intimement liés aux tests de charge car ils permettent de s’assurer que la charge peut être tenue sur une longue période.

Tests de non-régression

Un test de non régression contribue à l’amélioration technique de la qualité des logiciels, des applications ou des sites en s’assurant que certaines modifications effectuées, ou encore le développement de nouvelles fonctionnalités par les développeurs, ne perturbent pas leur état fonctionnel.

Tests de performance

En termes de performances, ce type de test permet de tester et de s’assurer que les temps de réponse d’un système informatique (SI) sont satisfaisants lors d’une utilisation standard de l’outil.

Tests de sécurité informatique

Un test d’intrusion permet de tester la sécurité du SI. La réflexion derrière ce type d’expérience est d’anticiper les intentions d’un hacker pour réduire au maximum tous les risques de danger liés au piratage informatique.

Ainsi, cela concerne aussi bien les utilisateurs que les administrateurs au niveau de leur accessibilité sur leurs propres données (utilisateurs) mais aussi sur les clients finaux (administrateurs).

Comment choisir le type de test le plus adapté ?

Pour conclure, il existe différents types de tests logiciels à tester lors d’une phase de recette complète, évidemment selon le temps imparti et les moyens alloués à la recette tout au long de la phase de développement. 

Un choix devra alors être effectué par l’ensemble des parties prenantes au projet pour définir quels seront les différents tests logiciels à effectuer. “Il faut tester !” Comme on le dit bien dans le monde du digital.

Testez plus vite
et mieux avec les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing

Testez plus vite et mieux avec
les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing