Les types de test logiciel : la carte pour s’y retrouver

Niveaux, types, boîte noire, régression : la carte claire du vocabulaire ISTQB pour savoir quel test répond à quelle question sur votre application.

Sommaire

« Vous avez testé ? » Le développeur répond oui : ses tests unitaires passent. La cheffe de projet comprend que l’application est prête. Le client, lui, entend « il n’y a plus de bugs ». Trois personnes, trois sens du même mot, et une mise en ligne qui tourne mal.

Le test logiciel a un vocabulaire précis, mais il ressemble vite à une jungle : test unitaire, test système, recette, régression, boîte noire, performance… Ces mots ne sont pas interchangeables. Chacun répond à une question différente sur votre application.

Cet article est une carte. Il suit les repères du syllabus Fondation de l’ISTQB, l’organisme international qui certifie les testeurs, et les traduit en exemples concrets. À la fin, vous saurez nommer le bon test pour chaque question, et repérer celui qui manque à votre projet.

Pourquoi distinguer les niveaux et les types de test ?

Tout test se situe sur deux axes. Le premier dit à quelle échelle on teste : une fonction isolée, un assemblage de modules, l’application entière, ou son adoption par les vrais utilisateurs. C’est le niveau de test. Le second dit ce que l’on regarde : le résultat est-il juste ? Rapide ? Sûr ? Agréable ? C’est le type de test.

Définition

Niveau de test : un groupe d’activités de test organisées et pilotées ensemble, à une étape donnée du développement, du composant isolé jusqu’au système complet.

Type de test : un groupe d’activités de test centré sur une caractéristique de qualité précise. La plupart des types peuvent s’appliquer à tous les niveaux.

Pensez à une maison en construction. On contrôle les briques, puis les murs, puis la maison entière, et enfin la famille la visite avant de signer : ce sont les niveaux. L’électricité, la plomberie et l’isolation sont les types, et elles se vérifient à chaque étape, pas seulement à la fin.

Quels sont les cinq niveaux de test ?

Le syllabus Fondation de l’ISTQB (version 4.0) décrit cinq niveaux. Le tableau ci-dessous les illustre avec une application de mobile money.

NiveauCe qu’on testeQui s’en charge le plus souventExemple
Test de composants (ou test unitaire)Une fonction ou un module isoléLes développeursLa fonction qui calcule les frais d’un transfert de 25 000 FCFA renvoie le bon montant
Test d’intégration de composantsLes échanges entre modules de l’applicationLes développeursLe module de transfert transmet bien le montant au module d’historique
Test systèmeL’application entière, de bout en boutLes testeurs, parfois une équipe indépendanteUn client envoie de l’argent, reçoit sa confirmation et voit son solde mis à jour
Test d’intégration systèmeLes échanges avec les systèmes extérieursTesteurs et équipe techniqueL’application dialogue correctement avec l’opérateur, la passerelle SMS et la banque partenaire
Test d’acceptationL’aptitude à être déployée et à servir le métierIdéalement, les futurs utilisateursUn commerçant pilote vérifie qu’il peut encaisser et rembourser comme dans sa boutique

Le test d’acceptation prend plusieurs formes : le test d’acceptation par les utilisateurs (UAT, pour User Acceptance Testing), le test d’acceptation opérationnelle (l’équipe qui exploitera le service sait-elle sauvegarder, surveiller, restaurer ?), le test d’acceptation contractuelle ou réglementaire, et les tests alpha et bêta. En français, on l’appelle souvent la recette.

Ces niveaux peuvent se chevaucher : en équipe agile, le développeur écrit ses tests unitaires pendant que la testeuse explore la version de la veille.

Astuce

Tester tôt fait gagner du temps et de l’argent : c’est l’un des 7 principes du test logiciel. Un mauvais calcul de frais attrapé par un test unitaire coûte quelques minutes ; découvert par vos clients, il coûte leur confiance.

Quels sont les grands types de test ?

Le syllabus retient quatre types : le test fonctionnel, le test non fonctionnel, le test boîte noire et le test boîte blanche.

Le test fonctionnel : est-ce que ça fait ce qu’il faut ?

Il vérifie ce que l’application doit faire : ses fonctions sont-elles complètes, correctes et adaptées au besoin ? Une application de livraison calcule-t-elle les frais selon le quartier ? Le bouton « Annuler la commande » rembourse-t-il vraiment le client ?

Le test non fonctionnel : est-ce que ça le fait bien ?

Il évalue comment l’application se comporte. L’ISTQB s’appuie sur la norme ISO/IEC 25010, qui classe les caractéristiques de qualité. Le tableau suivant les traduit en questions concrètes.

CaractéristiqueLa question à se poserExemple
Efficacité de la performanceEst-ce assez rapide, avec peu de ressources ?L’accueil s’affiche-t-il vite en 3G sur un téléphone de 2 Go de RAM ?
CompatibilitéCohabite-t-elle et échange-t-elle bien avec d’autres logiciels ?Un appel entrant en plein paiement fait-il planter l’application ?
Utilisabilité (ou capacité d’interaction), dont l’accessibilitéLes gens s’en servent-ils sans aide et sans erreur, quelles que soient leurs capacités ?Une vendeuse qui découvre l’app trouve-t-elle comment encaisser ? Un lecteur d’écran annonce-t-il les boutons ?
FiabilitéFonctionne-t-elle dans la durée et se remet-elle des pannes ?Que se passe-t-il si le réseau coupe en plein paiement ?
SécuritéLes données et les accès sont-ils protégés ?Peut-on voir l’historique d’un autre client en changeant un numéro dans l’adresse ?
MaintenabilitéLe code se modifie-t-il sans tout casser ?Surtout évaluée par revue de code, rarement par le testeur
Portabilité (ou flexibilité)Passe-t-elle d’un environnement à un autre ?Tourne-t-elle sur un autre téléphone, une autre version du système ?
Sûreté (safety)Peut-elle mettre des personnes en danger ?Une application de santé peut-elle afficher une mauvaise dose ?

Beaucoup de tests non fonctionnels ajoutent une contrainte à un test fonctionnel : « le paiement aboutit » devient « le paiement aboutit en moins de dix secondes sur un réseau lent ». Le syllabus prévient qu’un défaut non fonctionnel découvert tard peut menacer tout le projet : on ne rend pas une application rapide la veille de sa sortie.

Attention

Au quotidien, « test de compatibilité » veut dire « ça marche sur tous les téléphones et navigateurs ». Dans la norme, cela relève surtout de la portabilité ; la compatibilité y désigne la cohabitation avec d’autres logiciels. Notre guide pour tester la compatibilité couvre les deux.

Boîte noire et boîte blanche : deux façons d’inventer des tests

Le test boîte noire part de la spécification : ce que l’application est censée faire, sans regarder le code. Le test boîte blanche part de la structure interne : le code, l’architecture, les flux de travail et de données. Son but est de couvrir cette structure, par exemple en s’assurant que chaque branche d’un calcul a été exécutée au moins une fois.

Au restaurant, la boîte noire goûte le plat et le compare à la carte ; la boîte blanche entre en cuisine et vérifie chaque étape de la recette. Les deux se complètent : la boîte noire ne mesure pas quelle part du code a été exécutée, et la boîte blanche ne voit pas la fonction demandée que personne n’a codée.

La plupart des testeurs d’applications, sur téléphone ou dans un navigateur, travaillent en boîte noire.

Que tester après un changement : confirmation ou régression ?

Le test de confirmation vérifie que le défaut corrigé a bien disparu : on rejoue le scénario qui échouait, et on ajoute au besoin des tests sur ce que la correction a modifié. Le test de régression vérifie que le changement n’a rien cassé ailleurs : dans le même module, dans d’autres modules, voire dans les systèmes connectés.

Exemple

Bug signalé : le code promo « RENTREE » n’est pas appliqué au panier. Le développeur corrige le calcul du total.

Confirmation : on rejoue le scénario du code promo, puis on essaie un code expiré et le même code en minuscules.

Régression : on vérifie le panier sans code, les frais de livraison, le paiement mobile money, le reçu et l’historique des commandes, car tout cela dépend du calcul du total.

Le syllabus conseille de commencer par une analyse d’impact pour savoir jusqu’où tester. Et comme les suites de régression grossissent à chaque version, elles sont de bonnes candidates à l’automatisation : notre article test manuel ou automatisé vous aide à choisir. Le déroulé complet avant une sortie est détaillé dans smoke test, régression, recette.

Où ranger le test exploratoire, le smoke test ou le test utilisateur ?

Certains mots très courants ne sont ni des niveaux ni des types. Ils désignent une approche ou une technique, qui traverse toute la carte.

  • Le test exploratoire est une technique fondée sur l’expérience : on conçoit, exécute et évalue les tests en même temps, en apprenant l’application. Voir le test exploratoire.
  • Le smoke test (littéralement « test de fumée ») est une vérification rapide des fonctions vitales, pour décider si une nouvelle version mérite d’être testée plus à fond.
  • Le test manuel et le test automatisé sont deux façons d’exécuter n’importe quel test.
  • Le test utilisateur observe de vraies personnes en train d’accomplir des tâches, pour évaluer l’utilisabilité.
  • Le test de maintenance accompagne les changements d’une application déjà en service, y compris les correctifs urgents (hotfix).

Astuce

Pour décrire un test sans ambiguïté, donnez ses trois coordonnées : le niveau, le type et l’approche. Par exemple : « test système, non fonctionnel (performance), exploratoire et manuel, sur un téléphone d’entrée de gamme en 3G ». Plus personne ne comprendra « on a testé » de travers.

Quel test pour quelle question ? La table récapitulative

Voici la table à garder sous la main. Partez de votre question : la deuxième colonne donne le test qui y répond, la troisième l’article qui l’approfondit.

Votre questionLe test qui y répondPour approfondir
Ce calcul de frais est-il juste ?Test de composants (unitaire)Test manuel ou automatisé
L’app dialogue-t-elle bien avec l’opérateur, les SMS, la carte ?Test d’intégration (système)Cet article
Le parcours complet fonctionne-t-il de bout en bout ?Test système fonctionnelVérification et validation
La nouvelle version est-elle assez stable pour être testée ?Smoke testSmoke test, régression, recette
Le bug signalé est-il vraiment corrigé ?Test de confirmationLe rapport de bug efficace
La correction a-t-elle cassé autre chose ?Test de régressionSmoke test, régression, recette
Que se passe-t-il dans les cas que personne n’a prévus ?Test exploratoireLe test exploratoire
L’app tient-elle sur un réseau lent et un petit téléphone ?Test de performanceTester la performance sur réseau lent
Marche-t-elle sur les appareils, versions et navigateurs de mes clients ?Test de compatibilité et de portabilitéTester la compatibilité
Un nouvel utilisateur s’en sort-il sans aide ?Test d’utilisabilité, test utilisateurOrganiser un test utilisateur
Une personne malvoyante peut-elle l’utiliser ?Test d’accessibilitéTester l’accessibilité d’une application
Les données de mes clients sont-elles protégées ?Test de sécuritéLes vérifications de sécurité du testeur
Les vrais utilisateurs l’adoptent-ils pour leur usage ?Test d’acceptation (recette, bêta)Le test fermé Google Play
Suis-je prêt à publier sur le store ?Liste de contrôle avant publicationLa checklist avant publication

Comment choisir les tests de votre projet dès aujourd’hui ?

Personne ne fait tout. Voici une méthode en cinq étapes pour une petite équipe.

  1. Listez vos trois plus grandes peurs. Un paiement débité mais non enregistré ? Des données perdues ? Une application trop lourde pour les téléphones de vos clients ?
  2. Traduisez chaque peur en question, puis trouvez le test correspondant dans la table ci-dessus.
  3. Regardez ce qui existe déjà. Des tests unitaires sur les calculs ? Une relecture des parcours clés avant chaque sortie ?
  4. Repérez les trous. Les plus fréquents : aucune régression organisée, aucun essai sur un appareil modeste, aucun utilisateur réel avant la sortie.
  5. Planifiez le minimum vital, puis enrichissez-le version après version.

Liste de contrôle

Attention

Trois erreurs reviennent sans cesse : croire que « les tests unitaires passent » veut dire « l’application marche » ; ne tester que le fonctionnel ; tester uniquement sur le téléphone récent du développeur, en Wi-Fi.

Les derniers trous de la liste (appareils variés, regards neufs, vrais utilisateurs) sont ceux qu’une équipe comble mal seule. C’est le rôle de testeurs extérieurs comme ceux de GeekTest, sur leurs propres téléphones et leurs propres réseaux : vous pouvez faire tester votre application ou devenir testeur.

À retenir

  • Un niveau dit à quelle échelle on teste ; un type dit quelle qualité on évalue.
  • Les cinq niveaux ISTQB : composants, intégration de composants, système, intégration système, acceptation (la recette).
  • Les quatre types : fonctionnel, non fonctionnel, boîte noire, boîte blanche.
  • Après chaque changement : confirmation (le bug a disparu), puis régression (rien d’autre n’est cassé).
  • Partez toujours d’une question précise sur votre application, puis choisissez le test qui y répond.

Pour aller plus loin

Partager cet article

L’auteur

Donchi

Donchi écrit les guides de l’Académie GeekTest, l’espace d’apprentissage de la plateforme de testeurs de Geek Institut : des conseils concrets pour sortir des applications fiables et faciles à utiliser, et pour progresser comme testeur.

Et maintenant ?

Ne manquez aucun article

Chaque nouvel article de l’Académie est annoncé sur la chaîne WhatsApp GeekTest. Rejoignez-la et abonnez-vous : des conseils de test utiles, sans spam.

Rejoindre la chaîne WhatsApp (nouvel onglet)

Faites tester votre app par de vrais humains

De vrais testeurs sur Android, iPhone, web et ordinateur, leurs retours et un rapport de test : ce que l’IA ne voit pas.

Faire tester mon app

Devenez testeur

Testez des applications sur votre téléphone ou votre ordinateur, mettez en pratique ce que vous apprenez ici, et soyez rémunéré.

Devenir testeur

Un projet d’application ?

L’équipe de développement de Geek Institut conçoit et réalise des applications web et mobiles, de l’idée à la publication. Parlons de votre projet.

Parler de mon projet