Introduction aux tests en boîte blanche

Le test est l'une des parties importantes du développement logiciel, il garantit que tous les bogues sont triés et que le programme fonctionne comme prévu. Le test d'un produit logiciel peut comporter plusieurs étapes et plusieurs procédures. Dans cet article, nous allons nous pencher sur l'une des approches importantes du processus de test, le White Box Testing.

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

Les tests en boîte blanche sont également appelés tests de base de code, tests en boîte claire, tests en boîte ouverte et tests structurels. L'idée centrale de cette approche du test de logiciel est de jeter un œil à la conception de la structure interne et au code du programme pour le tester.

Dans les tests en boîte blanche, le testeur peut voir l'intégralité du code du programme et il est chargé de vérifier le flux du fonctionnement des entrées et des sorties dans le programme. Contrairement aux tests de boîte noire, qui sont plus axés sur le test des fonctionnalités du programme, White Box Testing se préoccupe de tester les structures internes du programme. En examinant le programme de cette manière, nous pouvons travailler à améliorer la conception, la convivialité et à rendre le produit plus sûr.

Comme vous pouvez le deviner, il a appelé test de boîte blanche ou de boîte en verre parce que le testeur peut voir le code et d'autres parties du programme.

Ce qui rend les tests de boîte blanche différents des tests de boîte noire

Si vous vous êtes déjà incliné dans les tests par le passé, je suis sûr que vous êtes tombé sur le Black Box Testing. La plus grande différence entre les tests de boîte blanche et les tests de boîte noire est que, contrairement aux tests de boîte noire, qui sont effectués du point de vue de l'utilisateur, les tests de boîte blanche sont effectués du point de vue d'un développeur.

En d'autres termes, plutôt que de regarder le programme de l'extérieur, l'approche White Box Testing voit le code interne et le teste.

Comment les tests de boîte blanche sont-ils effectués?

Nous pouvons diviser le processus de test de la boîte blanche en deux étapes principales.

1. Comprendre le code fourni

Dans un premier temps, Un testeur en White Box Testing devra apprendre le code de l'application. Compte tenu du fait que White Box Testing consiste à comprendre et à tester tout le code interne du programme, toute personne chargée de tester le code devrait non seulement avoir une bonne connaissance de la programmation, mais il devra également avoir une bonne main avec le langage du code source.

La sécurité est l'un des aspects importants des tests en boîte blanche, de sorte que le testeur devra également être bon dans les pratiques de codage sécurisé.

2. Créer des cas de test et les exécuter

Une fois que le code a été étudié par l'équipe de test, ils peuvent commencer à tester le code pour vérifier son flux et sa structure appropriés. Pour ce faire, les testeurs écriront du code pour certains cas de test qui tenteront de parcourir toutes les lignes de code présentes dans le programme.

Cela peut également être fait dans les tests manuels qui impliquent des essais et des erreurs. Les testeurs peuvent également utiliser certains outils de test automatisés tels que JUnit et NUnit.

Un exemple de test en boîte blanche

Pour mieux comprendre le concept de White Box Testing, jetez un œil au code ci-dessous:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Comme nous l'avons vu précédemment, l'objectif de White Box Testing est de parcourir toutes les branches, boucles et instructions présentes dans le code. En considérant cela, nous pouvons faire 2 cas de test, l'un où les deux entrées sont positives et l'autre où les deux entrées sont des entiers négatifs.

Exemple:

  • A = 10 et B = 20
  • A = -10 et B = -20

Techniques de test en boîte blanche

L'une des techniques de test les plus populaires pour les tests en boîte blanche est appelée analyse de la couverture du code, cette technique tente d'éliminer les lacunes dans la suite de cas de test et identifie les sections d'une application qui ne sont pas utilisées par les cas de test. Une fois ces lacunes trouvées, nous pouvons créer des cas pour voir et vérifier les parties du code qui n'ont pas été testées, ce qui donne un produit plus raffiné à la fin.

Voici quelques techniques d'analyse de couverture:

  • Couverture des instructions: Dans cette méthode, nous essayons de parcourir toutes les instructions dans le code au moins une fois. Cela garantit que tout le code est testé.
  • Couverture de branche: Cette méthode est prévue pour traverser chaque branche des points de décision dans le code. Cela garantit que toutes les décisions sont testées au moins une fois.

Il existe également d'autres techniques de test, en voici quelques-unes:

  • Couverture des conditions: Dans cette technique de test, nous nous assurons que toutes les conditions sont couvertes dans le code, par exemple:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

Comme vous pouvez le voir, nous avons ici 2 conditions: A == 0 et B == 0. Maintenant, ces conditions reçoivent VRAI et FAUX comme valeurs. Un exemple possible peut être:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Couverture condition multiple: C'est un peu plus avancé que le dernier. Comme vous pouvez le deviner, nous testons toutes les combinaisons possibles et tous les résultats possibles au moins une fois. Voici un bon exemple:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

Par conséquent. Nous avons besoin de 4 cas de test pour 2 conditions.

Par conséquent, s'il y a n conditions, nous aurons besoin de 2 n cas de test.

  • Test de chemin de base: Dans cette technique de test de boîte blanche, nous faisons un graphique de flux de contrôle, puis nous calculons sa complexité cyclomatique qui est le nombre de chemins indépendants. En utilisant la complexité cyclomatique, nous pouvons trouver le nombre minimal de cas de test que nous pouvons concevoir pour chaque chemin indépendant du graphique de flux.
  • Test de boucle: les boucles sont l'un des outils les plus utilisés dans l'armement d'un programmeur. Comme ceux-ci sont au cœur de tant d'algorithmes, il est logique d'avoir une technique de test basée sur des boucles. Il peut y avoir 3 types de boucles: simple, imbriquée et concaténée. Voyons comment un testeur traitera la technologie de ces types:

1. Boucles simples: pour une boucle de conception simple et de taille n, nous pouvons concevoir des cas de test qui font ce qui suit:

  • Sautez cette boucle.
  • Traversez la boucle une seule fois.
  • Avoir 2 passes
  • Avoir un nombre de passes inférieur à sa taille.
  • n-1 et n + 1 traversent la boucle.

2. Boucles imbriquées: pour le code avec des boucles imbriquées, nous commençons par la boucle la plus intérieure, puis nous allons vers l'extérieur jusqu'à ce que nous puissions atteindre la boucle la plus à l'extérieur.

3. Boucles concaténées: Dans le cas de ces boucles. Nous utilisons le test de boucle simple une fois après l'autre et dans le cas où la boucle concaténée n'est pas indépendante, nous pouvons les traiter comme nous l'avons fait avec les boucles imbriquées.

Les avantages

Maintenant que nous avons vu ce qu'est cette méthode de test et comment elle fonctionne. Jetons un coup d'œil à certains des avantages de cela.

  • Le test en boîte blanche a des règles simples et claires pour informer un testeur lorsque le test est terminé.
  • Les techniques de test de la boîte blanche sont faciles à automatiser, ce qui oblige le développeur à embaucher moins de testeurs et à réduire les dépenses.
  • Il montre des goulots d'étranglement qui rendent l'optimisation assez facile pour les programmeurs.
  • Une équipe de test peut commencer son travail sans avoir à attendre que l'équipe de développement termine le développement de l'interface utilisateur.
  • Comme tous les chemins de code sont couverts dans le code dans la plupart des cas, le test du code est plus approfondi.
  • Il aide à supprimer les parties du code qui ne sont pas essentielles à la fonctionnalité du programme.

Désavantages

  • C'est une lourde taxe sur les ressources. Pour faire le test, vous aurez besoin de quelqu'un qui connaît très bien votre code pour faire partie de l'équipe de test et qui est lui-même un bon programmeur. Ce type de niveau de compétence augmente les dépenses liées aux tests.
  • Dans de nombreux cas, il est impossible de tester toutes les conditions possibles dans le code en raison de contraintes de temps ou de contraintes budgétaires.
  • Comme le test de la boîte blanche est basé sur la vérification de la fonctionnalité du code existant, vous ne pouvez pas trouver la fonctionnalité manquante dans le programme.
  • Si une partie du code est repensée et réécrite, les testeurs doivent réécrire les cas de test.

Outils de test de boîte blanche

Maintenant que vous connaissez les avantages, les inconvénients et les techniques de test en boîte blanche, nous pouvons jeter un œil à certains outils populaires que les testeurs peuvent utiliser pour effectuer des tests en boîte blanche.

  • JSUnit.net

Il s'agit d'un outil de test JavaScript. JSUnit fait partie de Junit et de son framework de tests unitaires open source qui peut être utilisé pour effectuer des tests en boîte blanche. JSUnit est complètement open source sous GNU Public License 2.0, ce qui signifie que même pour un usage commercial, un développeur n'a pas à payer de frais de licence.

  • CppUnit

Tout comme JSUnit, CppUnit est également considéré comme faisant partie de JUnit. L'outil peut sortir en texte brut ou au format XML, selon les besoins du testeur et il peut créer des tests unitaires avec ses propres classes. Le CppUnit est sous licence LGPL.

  • Veracode

Bien qu'il ne soit pas gratuit, Veracode dispose de puissants outils qui peuvent être utilisés pour tester .NET, C ++, Java et d'autres langages. Le test de la boîte blanche peut également être effectué sur des applications conçues pour les applications de bureau, Web et mobiles.

  • NUnit

C'est un framework de tests unitaires et il a été écrit en C #. L'outil prend en charge toutes les langues .Net disponibles et il prend également en charge les tests basés sur les données. En termes de fonctionnalités, il peut fonctionner à la fois sur l'exécution parallèle et simultanée et il peut fournir un cadre de classe et des applications de testeur. L'une des caractéristiques notables du NUnit est qu'il est assez facile à utiliser.

  • JUnit

Comme vous pouvez le deviner d'après son nom, JUnit est un outil d'automatisation des tests unitaires pour Java. La camionnette JUnit s'intègre facilement aux IDE tels qu'eclipse, Macen ACT, etc. Elle est capable de prendre en charge le développement piloté par les tests et peut synchroniser les tests existants avec ceux nouvellement créés une fois également. JUnit est une source complètement ouverte et gratuite à utiliser pour tout type de développement Java.

  • CSUnit

Tout comme Nunit, CSUnit est conçu pour prendre en charge les tests unitaires dans .Net Framework. Il prend en charge des langages tels que C # et VB.Net. CSUnit a un support intégré pour les pratiques d'affacturage et d'autres types de pratiques utilisés dans l'approche de développement agile de SDLC.

Conclusion

Les tests ont une place très importante dans le processus de développement logiciel et les tests en boîte blanche sont une approche précieuse pour y arriver. Bien que cette approche de test puisse être coûteuse et longue, les tests en boîte blanche restent le seul moyen de s'assurer que toutes les parties du code ont été couvertes dans le processus de test.

La partie la plus importante de White Box Testing est la familiarité du testeur avec le code. Une personne chargée de tester l'approche WBT qui ne maîtrise pas le code source et le langage de programmation utilisé, causera beaucoup de problèmes. En outre, dépendre uniquement du test de la boîte blanche n'est pas une bonne idée car il ne couvre pas les fonctionnalités manquantes. Pour une approche plus couverte du développement, les tests de boîte blanche et de boîte noire doivent être effectués car ils couvriront alors le maximum de bogues, de défauts et de fonctionnalités restantes qui doivent être ajoutés avant que le produit puisse être expédié.

Articles recommandés

Cela a été un guide pour les tests de boîte blanche. Ici, nous avons discuté de la façon dont les tests de boîte blanche sont effectués à l'aide d'exemples et de différentes techniques de test de boîte blanche avec des outils. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Questions d'entretiens chez Software Testing
  2. Carrières dans les tests de logiciels
  3. Questions d'entretiens chez Game Testing
  4. Questions d'entretiens chez ETL Testing
  5. Couverture de code vs couverture de test | 4 principales différences à apprendre
  6. Outils de couverture de code | Les 6 meilleurs outils de couverture de code