white box testing complete guide with techniques
Qu'est-ce que le test de la boîte blanche?
Si nous suivons la définition, le «test de la boîte blanche» (également connu sous le nom de test transparent, en verre ou structurel) est une technique de test qui évalue le code et la structure interne d'un programme.
Le test en boîte blanche consiste à examiner la structure du code. Lorsque vous connaissez la structure interne d'un produit, des tests peuvent être menés pour s'assurer que les opérations internes sont effectuées conformément à la spécification. Et tous les composants internes ont été correctement exercés.
Ce que vous apprendrez:
- Mon expérience
- Différence entre les tests en boîte blanche et en boîte noire
- Étapes pour effectuer WBT
- Types et techniques de test en boîte blanche
- Exemple de test de boîte blanche
- Outils de test de boîte blanche
- Conclusion
- lecture recommandée
Mon expérience
Cela fait presque 10 ans que je suis dans le domaine des tests de logiciels et que j'ai jusqu'à présent remarqué que les testeurs sont les plus enthousiastes de toute l'industrie du logiciel.
La principale raison derrière cela est que le testeur a toujours quelque chose à apprendre. Que ce soit un domaine, un processus ou une technologie, un testeur peut avoir un développement complet s'il le souhaite.
Mais comme on dit 'Il y a toujours un côté plus sombre' .
Les testeurs évitent en effet en effet un type de test qu’ils jugent très compliqué et la part de gâteau du développeur. Oui, le «test de la boîte blanche».
Couverture
White Box Testing couvre la spécification dans le code:
2. Couverture sectorielle: Assurez-vous que chaque instruction de code est exécutée une fois.
3. Couverture de branche ou test de nœud: La couverture de chaque branche de code à partir de tous les possibles était.
4. Couverture de l'état composé: Pour plusieurs conditions, testez chaque condition avec plusieurs chemins et une combinaison des différents chemins pour atteindre cette condition.
5. Test du chemin de base: Chaque chemin indépendant du code est utilisé pour le test.
6. Test de flux de données (DFT): Dans cette approche, vous suivez les variables spécifiques à travers chaque calcul possible, définissant ainsi l'ensemble des chemins intermédiaires à travers le code.DFT a tendance à refléter les dépendances, mais c'est principalement à travers des séquences de manipulation de données. En bref, chaque variable de données est suivie et son utilisation est vérifiée. Cette approche a tendance à découvrir des bogues tels que les variables utilisées mais non initialisées, ou déclarées mais non utilisées, et ainsi de suite.
7. Test de chemin: Le test de chemin est l'endroit où tous les chemins possibles à travers le code sont définis et couverts. C’est une tâche qui prend du temps.
8. Test de boucle: Ces stratégies concernent le test des boucles simples, des boucles concaténées et des boucles imbriquées. Les boucles et valeurs de code indépendantes et dépendantes sont testées par cette approche.
Pourquoi effectuons-nous WBT?
S'assurer:
- Que tous les chemins indépendants d'un module ont été exercés au moins une fois.
- Toutes les décisions logiques vérifiées sur leurs valeurs vraies et fausses.
- Toutes les boucles exécutées à leurs limites et dans leurs limites opérationnelles de validité des structures de données internes.
Pour découvrir les types de bogues suivants:
- L'erreur logique a tendance à s'insinuer dans notre travail lorsque nous concevons et mettons en œuvre des fonctions, des conditions ou des contrôles qui ne sont pas inclus dans le programme
- Les erreurs de conception dues à la différence entre le déroulement logique du programme et la mise en œuvre réelle
- Erreurs typographiques et vérification de la syntaxe
Ces tests nécessitent-ils des compétences de programmation détaillées?
Nous devons écrire cas de test qui assurent la couverture complète de la logique du programme.
Pour cela, nous devons bien connaître le programme, c'est-à-dire connaître la spécification et le code à tester. La connaissance des langages de programmation et de la logique est requise pour ce type de test.
Limites
Impossible de tester chaque chemin des boucles dans le programme. Cela signifie que des tests exhaustifs sont impossibles pour les grands systèmes.
Cela ne signifie pas que WBT n'est pas efficace. En sélectionnant des chemins logiques importants et une structure de données pour les tests, il est pratiquement possible et efficace.
Différence entre les tests en boîte blanche et en boîte noire
Pour le dire en termes simples:
Dans le cadre des tests de la boîte noire, nous testons le logiciel du point de vue de l'utilisateur, mais dans la boîte blanche, nous voyons et testons le code réel.
Dans les tests de la boîte noire, nous effectuons des tests sans voir le code système interne, mais dans WBT, nous voyons et testons le code interne.
La technique de test de la boîte blanche est utilisée à la fois par les développeurs et par les testeurs. Cela les aide à comprendre quelle ligne de code est réellement exécutée et laquelle ne l'est pas. Cela peut indiquer qu'il manque une logique ou une faute de frappe, ce qui peut éventuellement entraîner des conséquences négatives.
Lecture recommandée => Un guide complet des tests Black Box
Étapes pour effectuer WBT
Étape 1 - Comprendre les fonctionnalités d'une application à travers son code source. Ce qui signifie qu'un testeur doit bien connaître le langage de programmation et les autres outils ainsi que les techniques utilisées pour développer le logiciel.
Étape 2 - Créez les tests et exécutez-les.
Lorsque nous discutons du concept de test, ' couverture »Est considéré comme le facteur le plus important. Ici, je vais vous expliquer comment avoir une couverture maximale dans le contexte des tests en boîte blanche.
Lire aussi=> Graphique de cause à effet - Technique d'écriture de cas de test dynamique pour une couverture maximale
Types et techniques de test en boîte blanche
Il existe plusieurs types et différentes méthodes pour chaque type de test de boîte blanche.
Voir l'image ci-dessous pour votre référence.
Aujourd'hui, nous allons nous concentrer principalement sur la types de tests d’exécution de la «technique de la boîte blanche des tests unitaires»
3 principales techniques de test de boîte blanche:
- Couverture du relevé
- Couverture de la succursale
- Couverture de chemin
Notez que l'instruction, la branche ou la couverture de chemin n'identifie aucun bogue ou défaut qui doit être corrigé. Il identifie uniquement les lignes de code qui ne sont jamais exécutées ou qui ne sont pas modifiées. Sur la base de ces tests supplémentaires peuvent être axés sur.
Comprenons ces techniques une par une avec un exemple simple.
# 1) Couverture de la déclaration:
Dans un langage de programmation, une instruction n'est rien d'autre qu'une ligne de code ou une instruction que l'ordinateur doit comprendre et agir en conséquence. Une instruction devient une instruction exécutable lorsqu'elle est compilée et convertie en code objet et exécute l'action lorsque le programme est en mode d'exécution.
Par conséquent «Couverture de l'état» , comme son nom l'indique, c'est la méthode qui permet de valider si chaque ligne du code est exécutée au moins une fois.
# 2) Couverture de la succursale:
«Branch» dans un langage de programmation est comme les «instructions IF». Une instruction IF a deux branches: T rue et faux .
Ainsi, dans la couverture de branche (également appelée couverture de décision), nous validons si chaque branche est exécutée au moins une fois.
Dans le cas d'une «instruction IF», il y aura deux conditions de test:
- Un pour valider la vraie branche et,
- Autre pour valider la fausse branche.
Par conséquent, en théorie, la couverture de branche est une méthode de test qui, lorsqu'elle est exécutée, garantit que chaque branche de chaque point de décision est exécutée.
# 3) Couverture de chemin
La couverture de chemin teste tous les chemins du programme. Il s'agit d'une technique complète qui garantit que tous les chemins du programme sont parcourus au moins une fois. La couverture de chemin est encore plus puissante que la couverture de branche. Cette technique est utile pour tester les programmes complexes.
Prenons un exemple simple pour comprendre toutes ces techniques de test en boîte blanche.
questions d'entretien de base sur le HTML et le CSS
Vérifiez également=> Différents types de tests
Exemple de test de boîte blanche
Considérez le pseudo-code simple ci-dessous:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE”
Pour Couverture du relevé - nous n'aurions besoin que d'un cas de test pour vérifier toutes les lignes du code.
Cela signifie:
Si je considère TestCase_01 être (A = 40 et B = 70), alors toutes les lignes de code seront exécutées.
Maintenant la question se pose:
- Est-ce suffisant?
- Et si je considère mon scénario de test comme A = 33 et B = 45?
Étant donné que la couverture de déclaration ne couvrira que le côté vrai, pour le pseudo-code, un seul cas de test ne serait PAS suffisant pour le tester. En tant que testeur, nous devons également considérer les cas négatifs.
Par conséquent, pour une couverture maximale, nous devons considérer ' Couverture de la succursale ' , qui évaluera les conditions «FALSE».
Dans le monde réel, vous pouvez ajouter des instructions appropriées lorsque la condition échoue.
Alors maintenant, le pseudocode devient:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” ELSE PRINT “ITS PENDING”
Étant donné que la couverture du relevé n'est pas suffisante pour tester l'intégralité du pseudo-code, nous aurions besoin de la couverture de la succursale pour assurer une couverture maximale. .
Donc, pour la couverture de Branch, nous aurions besoin de deux cas de test pour terminer le test de ce pseudo code.
TestCase_01 : A = 33, B = 45
TestCase_02 : A = 25, B = 30
Avec cela, nous pouvons voir que chaque ligne du code est exécutée au moins une fois.
Voici les conclusions tirées jusqu'à présent:
- La couverture de la succursale assure une plus grande couverture que la couverture du relevé.
- La couverture des succursales est plus puissante que la couverture des relevés.
- Une couverture à 100% en succursale signifie une couverture à 100% des relevés.
- Mais une couverture à 100% des relevés ne garantit pas une couverture à 100% des succursales.
Passons maintenant à Couverture du chemin:
Comme indiqué précédemment, la couverture de chemin est utilisée pour tester les extraits de code complexes, qui impliquent essentiellement des instructions de boucle ou une combinaison de boucles et d'instructions de décision.
Considérez ce pseudocode:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” END IF IF A>50 PRINT “ITS PENDING” END IF
Maintenant, pour assurer une couverture maximale, nous aurions besoin de 4 cas de test.
Comment? Simplement - il y a 2 déclarations de décision, donc pour chaque déclaration de décision, nous aurions besoin de deux branches à tester. Un pour vrai et l'autre pour la fausse condition. Donc, pour 2 déclarations de décision, nous aurions besoin de 2 cas de test pour tester le vrai côté et de 2 cas de test pour tester le faux côté, ce qui fait un total de 4 cas de test.
Pour simplifier cela, considérons ci-dessous l'organigramme du pseudo-code que nous avons:
Afin d'avoir une couverture complète, nous aurions besoin des cas de test suivants:
TestCase_01: A = 50, B = 60
TestCase_02 : A = 55, B = 40
TestCase_03: A = 40, B = 65
TestCase_04: A = 30, B = 30
Le chemin parcouru sera donc:
Ligne rouge - TestCase_01 = (A = 50, B = 60)
Ligne bleue = TestCase_02 = (A = 55, B = 40)
Ligne orange = TestCase_03 = (A = 40, B = 65)
Ligne verte = TestCase_04 = (A = 30, B = 30)
******************
= >> Nous contacter pour suggérer votre annonce ici
*****************
Outils de test de boîte blanche
Vous trouverez ci-dessous une liste des meilleurs outils de test de boîte blanche.
meilleur téléchargement de musique mp3 pour android
# 1) Veracode
Les outils de test de la boîte blanche de Veracode vous aideront à identifier et à résoudre les failles logicielles rapidement et facilement à un coût réduit. Il prend en charge plusieurs langages d'application tels que .NET, C ++, JAVA, etc. et vous permet également de tester la sécurité des applications de bureau, Web et mobiles. Pourtant, il existe plusieurs autres avantages de l'outil Veracode. Pour des informations détaillées sur les outils de test Veracode White Box, veuillez consulter le lien ci-dessous.
Lien de site Web: Veracode
# 2) EclEmma
EclEmma a été initialement conçu pour les tests et les analyses au sein de l'atelier Eclipse. Il est considéré comme un outil gratuit de couverture de code Java et possède également plusieurs fonctionnalités. Pour installer ou en savoir plus sur EclEmma, veuillez consulter le lien ci-dessous.
Lien de site Web: EclEmma
# 3) RCUNIT
Un cadre utilisé pour tester les programmes C est connu sous le nom de RCUNIT. RCUNIT peut être utilisé en conséquence selon les termes de la licence MIT. Son utilisation est gratuite et pour l'installer ou en savoir plus, veuillez consulter le lien ci-dessous.
Lien de site Web: RCUNIT
# 4) cfix
cfix est l'un des frameworks de tests unitaires pour C / C ++ qui vise uniquement à rendre le développement de suites de tests aussi simple et facile que possible. Pendant ce temps, cfix est généralement spécialisé pour le mode NT Kernel et Win32. Pour installer et en savoir plus sur cfix, veuillez consulter le lien ci-dessous
Lien de site Web: cfix
# 5) Test Google
Googletest est le framework de test C ++ de Google. Découverte de tests, tests de mort, tests paramétrés par valeur, échecs fatals et non fatals, génération de rapports de test XML, etc. sont quelques fonctionnalités de GoogleTest, mais il existe également plusieurs autres fonctionnalités. Linux, Windows, Symbian, Mac OS X sont quelques plates-formes sur lesquelles GoogleTest a été utilisé. PourTéléchargez, veuillez consulter le lien ci-dessous.
Lien de téléchargement: Test Google
# 6) EMMA
Emma est un outil de couverture de code JAVA gratuit et facile à utiliser. Il comprend plusieurs fonctionnalités et avantages. Pour télécharger et en savoir plus sur Emma, veuillez consulter le lien ci-dessous.
Lien de téléchargement: EMMA
# 7) NUnit
NUnit est un framework de tests unitaires open source facile à utiliser qui ne nécessite aucune intervention manuelle pour juger les résultats des tests. Il prend en charge tous les langages .NET. Il prend également en charge les tests basés sur les données et les tests exécutés en parallèle sous NUnit. Les versions précédentes de NUnit utilisaient la licence NUnit mais NUnit 3 est publiée sous la licence MIT. Mais les deux licences permettent une utilisation gratuite sans aucune restriction. Pour télécharger et en savoir plus sur NUnit, veuillez consulter le lien ci-dessous.
Lien de téléchargement: NUnit
# 8) CppUnit
CppUnit est un framework de test unitaire écrit en C ++ et est considéré comme le port de JUnit. La sortie de test pour CppUnit peut être au format XML ou texte. Il crée des tests unitaires avec sa propre classe et exécute des tests dans les suites de tests. Il est licencié sous LGPL. Pour télécharger et en savoir plus sur CppUnit, veuillez consulter le lien ci-dessous.
Lien de téléchargement: CppUnit
# 9) JUnit
JUnit est un cadre de test unitaire simple et silencieux qui prend en charge l'automatisation des tests dans le langage de programmation Java. Il prend principalement en charge le développement piloté par les tests et fournit également le rapport de couverture des tests. Il est sous licence publique Eclipse. Pour un téléchargement gratuit et pour en savoir plus sur JUnit, veuillez consulter le lien ci-dessous.
Lien de téléchargement: JUnit
# 10) JsUnit
JsUnit est considéré comme le port de JUnit vers javascript. Et c'est un cadre de test unitaire open source pour prendre en charge le Javascript côté client. Il est sous licence publique GNU 2.0, GNU Lesser Public License 2.1 et Mozilla Public License 1.1. Pour télécharger et en savoir plus sur JsUnit, veuillez consulter le lien ci-dessous.
Lien de téléchargement: JsUnit
Vérifiez également tous les outils que nous avons répertoriés sous Analyse de code statique ici .
N'hésitez pas à suggérer des outils plus simples ou avancés que vous utilisez pour la technique de la boîte blanche.
Conclusion
Se fier uniquement aux tests boîte noire n'est pas suffisant pour une couverture de test maximale. Nous devons combiner les techniques de test de la boîte noire et de la boîte blanche pour couvrir le maximum de défauts .
S'ils sont effectués correctement, les tests en boîte blanche contribueront certainement à la qualité du logiciel. Il est également bon que les testeurs participent à ces tests, car ils peuvent fournir l’opinion la plus «impartiale» sur le code. :)
Faites-nous savoir si vous avez des questions sur les méthodes dont nous avons parlé dans cet article.
lecture recommandée
- Différences clés entre les tests de boîte noire et les tests de boîte blanche
- Test de la boîte noire: un didacticiel approfondi avec des exemples et des techniques
- Test fonctionnel vs test non fonctionnel
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Penser hors de la boîte tout en testant un logiciel!
- Guide de test de portabilité avec des exemples pratiques
- Test alpha et test bêta (un guide complet)
- Types de tests logiciels: différents types de tests avec des détails