Tests en boîte blanche

Tests en boîte blanche
MIN
12 Sep 2023

Les tests sont essentiels dans le développement de logiciels afin de garantir la livraison de produits logiciels de haute qualité et exempts d’erreurs. Les testeurs utilisent diverses techniques de test de logiciels pour identifier les problèmes, les bogues et les erreurs dans les produits logiciels. L’un d’entre eux est le test de la boîte blanche. Il s’agit de l’évaluation de la structure interne du logiciel et des détails de sa mise en œuvre.

Dans cet article, nous aborderons les aspects fondamentaux des tests en boîte blanche.

Qu’est-ce que le test de la boîte blanche ?

Le test de la boîte blanche est une technique de test des logiciels qui permet de tester la conception interne du système, la structure du code source, les structures de données utilisées et les détails de fonctionnement. Son objectif principal est d’améliorer la conception des logiciels, le flux des entrées/sorties, la facilité d’utilisation et la sécurité. Il est également appelé essai transparent, essai structurel et essai en boîte de verre.

La mise en œuvre de cette technique de test exige que les testeurs soient familiarisés avec le code du système, son architecture et les détails de sa mise en œuvre. Sur la base de ces connaissances, ils créent des cas de test et les exécutent pour vérifier l’exactitude du système au niveau du code. C’est pourquoi ces tests sont également appelés tests basés sur le code.

En général, les développeurs effectuent des tests en boîte blanche. Comprendre parfaitement le code source et le fonctionnement interne du logiciel. Dans certains cas, cependant, elle peut également être réalisée par des experts en assurance qualité (AQ) et des testeurs qui comprennent un code complexe.

Cette technique de test est appelée « boîte blanche » parce que les développeurs ou les testeurs examinent le fonctionnement interne du système depuis l’extérieur de la boîte.

Il est appliqué aux deux premiers niveaux des tests de logiciels : les tests unitaires et les tests d’intégration. Les tests unitaires vérifient chaque module logiciel séparément. Les tests d’intégration relient alors logiquement les modules testés et testent leur interaction ou leur communication.

Caractéristiques

  • Accès au code source: Les tests en boîte blanche permettent d’accéder au code source du logiciel. Cela permet de vérifier les fonctions et les modules individuels.
  • Analyse de la couverture du code: La couverture du code est une mesure qui détermine la quantité de code exécutée pendant les tests. Les tests en boîte blanche analysent la couverture du code et révèlent les zones non testées du code source.
  • Détection des erreurs logiques : aide à identifier les erreurs logiques telles que les boucles infinies et les instructions conditionnelles incorrectes.
  • Optimisation du code: Révèle les problèmes de performance, les zones du code qui doivent être améliorées et d’autres problèmes. Les développeurs ou les testeurs travaillent à la résolution de ces problèmes et à l’optimisation du code source.
  • Tests de sécurité: les développeurs ou les testeurs ont accès au code source du logiciel et en connaissent les rouages. Ils peuvent donc identifier les failles de sécurité.

Qu’est-ce qui est vérifié dans les tests en boîte blanche ?

Le test de la boîte blanche dans les tests de logiciels évalue le code source du logiciel pour vérifier les paramètres suivants :

  • Vulnérabilités en matière de sécurité interne.
  • Chaque objet, fonction et instruction de code source individuellement.
  • Fonctionnalité des cycles conditionnels.
  • Chemins de code corrompus, incomplets et mal structurés.
  • Flux d’entrée et de sortie.

En bref, cette technique de test permet de vérifier le flux de travail du logiciel. Il s’agit de fournir un ensemble d’intrants et de comparer les résultats attendus et réels. Si la sortie réelle ne correspond pas à la sortie attendue, il en résulte une erreur ou un bogue.

Comment effectuer des tests en boîte blanche ?

En général, les développeurs ou les testeurs vérifient les applications à l’aide de cette technique de test des logiciels en deux étapes :

  1. Analyse du code source – l’étape de base consiste à comprendre et à analyser le code source de l’application. Les testeurs ou les développeurs, quelle que soit la personne qui effectue les tests, doivent avoir une compréhension détaillée du fonctionnement interne de l’application et de la structure du code source. En outre, ils devraient envisager de mettre en œuvre des pratiques de codage sécurisées en faisant de la sécurité une considération primordiale.

Cela les aidera à créer des cas de test efficaces pour découvrir les vulnérabilités potentielles en matière de sécurité et garantir un pourcentage maximal de couverture des tests.

  1. Création et exécution de cas de test – les testeurs ou les développeurs créent et exécutent plusieurs petits cas de test pour tester des processus d’application individuels. Cela permet de s’assurer que le code source a un flux et une structure corrects. Mais cette étape nécessite une connaissance extrêmement détaillée du code source. C’est pourquoi elle est généralement réalisée par des développeurs.

Exemple de tests en boîte blanche

Nous savons maintenant que l’objectif des tests en boîte blanche est de vérifier la structure du code, comme les instructions de boucle, les instructions conditionnelles, les branches de décision, etc. Nous allons le comprendre à l’aide d’un exemple simple :

Test (a, b)
{
int n ;
si (n % 2 ==0)
{
print("Nombre impair")
}
autre
{
print("Nombre impair")
}
}

Pour vérifier ce code, nous disposons des deux cas de test suivants :

  • n = 25
  • n = 50

Pour le premier cas de test, n = 25, la condition « si » ne s’applique pas. Le programme passe donc au bloc « else » et imprime l’instruction qu’il contient. Dans le deuxième cas de test, n = 50, la condition « if » est vraie et l’instruction qu’elle contient est exécutée.

De cette manière, les tests en boîte blanche ont parcouru chaque ligne du code source de l’application et ont permis de découvrir des bogues potentiels au niveau du code.

Techniques de test en boîte blanche

Les différents types de techniques de test de la boîte blanche sont les suivants :

1. Couverture de la déclaration

Cette technique exige que vous examiniez et testiez chaque déclaration du code source au moins une fois. Ainsi, l’ensemble du code source est exercé.

La couverture des instructions détermine le pourcentage du code source qu’un ensemble particulier de cas de test exercera. La formule pour couvrir les déclarations est la suivante :

Couverture des déclarations = (nombre de déclarations faites / nombre total de déclarations) * 100

2. Couverture de la décision/couverture de la branche

Le meilleur exemple de branche (point de décision) en programmation est l’instruction « if ». Il comporte deux branches : True (vrai) et False (faux). La technique de couverture des branches garantit que chaque branche de la source est exécutée au moins une fois.

La couverture des branches est le pourcentage de branches ou de points de décision exécutés pendant les tests.

Couverture des succursales = (nombre de succursales mises en œuvre / nombre total de succursales) * 100 %.

3. Couverture des conditions

Le test des conditions consiste à tester chaque condition pour obtenir des résultats VRAIS et FAUX. Pour obtenir une couverture nationale de 100 %, il faut donc appliquer chaque condition pour les résultats VRAI et FAUX. Pour n conditions, nous aurons 2n scripts de test.

L’objectif principal de la couverture des conditions est de déterminer la sortie de chaque condition dans le code source. Cependant, il ne teste que les conditions avec des opérandes logiques dont le résultat est soit vrai, soit faux.

4. Essais multi-conditionnels

Son objectif est de tester toutes les combinaisons possibles de chaque état de la branche. Comprenons-le à l’aide d’un exemple.

si (A||B)  
imprimer C

Les cas de test pour le code ci-dessus seront les suivants :

A=VRAI, B=VRAI

A=VRAI, B=FAUX

A=FAUX, B=VRAI

A=FAUX, B=FAUX

Notre exemple comporte 2 conditions – A et B – et 4 cas de test. S’il y avait 3 expressions, le nombre de cas de test serait de 8.

Par conséquent, pour une couverture de 100 %, nous aurons 2n scripts de test. C’est très épuisant et il est très difficile d’obtenir une couverture à 100 %.

5. Test de cheminement

Le test de chemin garantit que tous les chemins possibles dans le code source sont exécutés au moins une fois. Il s’agit de créer un diagramme de flux de contrôle à l’aide du code source ou d’un organigramme. Ensuite, il détermine la complexité cyclomatique, qui concerne les chemins indépendants. Les testeurs créent donc des cas de test minimaux pour ces chemins indépendants.

Couverture des voyages = (nombre de voyages effectués / nombre total de voyages dans le programme) x 100 %.

6. Test des cycles de boucle

Les cycles sont des constructions courantes et sont utilisés dans la plupart des grands programmes. Les tests cycliques sont essentiels car il existe une forte probabilité d’erreurs au début ou à la fin d’un cycle. Par conséquent, les tests effectués révèlent les erreurs ou les bogues dans un cycle particulier. La principale erreur qui se produit dans les cycles est la présence d’indices incorrects.

Types de tests en boîte blanche

Voici les différents types de tests en boîte blanche :

Tests unitaires : il s’agit du premier niveau de test des logiciels. Il teste chaque module d’application, appelé unité, individuellement pour s’assurer qu’il est correct. Veille à ce que chaque composant fonctionne comme prévu.

Tests d’intégration : ils interviennent après les tests unitaires. Il combine les différents éléments testés de manière logique et confirme l’interaction entre eux. Son objectif est de détecter toute erreur dans l’interaction des composants.

Tests de pénétration en boîte blanche : les testeurs ont un accès total au code source de l’application et aux données du réseau, de l’IP et du serveur, y compris les mots de passe et les cartes. L’objectif principal des tests de pénétration est de détecter les zones du code source présentant des faiblesses en matière de sécurité.

Tests de mutation en boîte blanche : comme son nom l’indique, les tests de mutation dépendent des changements. Les testeurs apportent des modifications mineures au code source pour vérifier que l’exécution des cas de test ne révèle pas de bogues. Si les cas de test réussissent, cela indique une erreur dans le code source. Toutefois, si les cas de test échouent, le code source est exempt d’erreurs.

Avantages et inconvénients des tests en boîte blanche

Précisons maintenant les avantages et les inconvénients du test de la boîte blanche.

Avantages

  • Les tests en boîte blanche sont complets et détaillés car ils exécutent chaque ligne du code source.
  • Identifie les vulnérabilités cachées potentielles, les bogues et les failles de sécurité. Pour les corriger, il faut supprimer quelques lignes de code source, ce qui conduit à l’optimisation du code.
  • Veille à ce que le code source soit conforme aux normes de codage et optimise les performances.
  • Même si une interface graphique n’est pas disponible, les tests commencent dès le début du cycle de développement du logiciel (SDLC).
  • Les cas de test sont facilement automatisés.
  • La transparence du code source permet de déterminer le type exact de données d’entrée nécessaires aux tests.
  • Les testeurs ou les développeurs peuvent créer des cas de test pour assurer une couverture maximale des tests.

Inconvénients

  • Les tests en boîte blanche nécessitent des connaissances approfondies en programmation afin de comprendre et d’analyser le code source du système et de construire des cas de test autour de celui-ci.
  • Il s’agit principalement de tester le fonctionnement interne du système.
  • Les grandes applications nécessitent beaucoup de temps pour les tests en boîte blanche car leurs codes sources sont longs.
  • Une petite modification du code source nécessite la réécriture des cas de test.
  • Il est fort probable que cela entraîne des erreurs de production.

Outils de test en boîte blanche

Voici une liste d’outils de test en boîte blanche couramment utilisés :

  1. Veracode: fournit un ensemble d’outils permettant d’identifier et de corriger les bogues dans les applications développées à l’aide de divers langages de programmation tels que .NET, C++, Java, etc. Il permet également de tester les applications de bureau et les applications mobiles afin d’en garantir la sécurité.
  2. EclEmma: Il s’agit d’un outil gratuit de couverture de code pour les applications Java. Il a été conçu pour exécuter des tests et analyser les résultats dans l’atelier Eclipse.
  3. JSUnit: JSUnit fait partie de JUnit, un cadre de test unitaire pour les applications Java. JSUnit est un outil de test unitaire open-source pour les tests JavaScript. Il est disponible sous la licence générale GNU 2.0.
  4. NUnit: Il s’agit d’un cadre de test développé en C# pour effectuer des tests axés sur les données sur les applications .NET. Il permet l’exécution simultanée de tests sans aucune intervention manuelle.
  5. CppUnit: Il fait également partie de JUnit sous le nom de JSUnit. Il est disponible pour les tests unitaires C++.

La différence entre les tests de la boîte blanche et de la boîte noire

Le tableau suivant met en évidence les principales différences entre les tests en cabinet noir et les tests en cabinet blanc :

Tests en boîte blancheTests en boîte noire
Nécessite une connaissance de la structure interne et du fonctionnement de l’application.Aucune connaissance interne de l’application n’est requise.
Nous pouvons tester de nombreux aspects détaillés de l’application.Nous testons la fonctionnalité de bout en bout de l’application.
Ces tests sont effectués par des développeurs ou des professionnels de l’assurance qualité ayant une bonne connaissance de la programmation et de l’architecture des applications.Les tests « boîte noire » sont effectués par une équipe indépendante de contrôle de la qualité.
S’applique aux niveaux inférieurs de test – tests unitaires et tests d’intégration.Il s’applique à des niveaux de test plus élevés – tests de système et tests d’acceptation, où nous devons tester l’application dans son ensemble.

Conclusion

Le test de la boîte blanche est une technique de test des logiciels qui exige des testeurs une compréhension complète du fonctionnement interne et de la structure du code d’une application. Elle révèle donc des lacunes structurelles et sécuritaires. L’objectif principal est de vérifier la fonctionnalité et l’exactitude de l’application au niveau du code.

Bien que cette technique de test prenne du temps et demande beaucoup d’efforts, c’est le seul moyen de s’assurer que vous testez chaque ligne de votre code source. S’il est effectué correctement, le test de la boîte blanche améliorera considérablement la qualité du logiciel.