59 votes

Test boîte noire vs boîte blanche

Le type de test que vous dites doit être l'accent (pour les testeurs/Sqr), et pourquoi?

Une rapide série de définitions de wikipedia:

Boîte noire

  • prend un point de vue externe de l'objet de test à tirer des cas de test. Ces tests peuvent être fonctionnelles ou non fonctionnelles, bien que généralement fonctionnelles. Le test concepteur sélectionne d'entrée valides et invalides et détermine le bon de sortie. Il n'y a pas de connaissance de l'objet d'essai de la structure interne.

Tests en boîte blanche

  • utilise un point de vue interne du système de conception de cas de test basée sur la structure interne. Il nécessite des compétences en programmation pour identifier tous les chemins à travers le logiciel. Le testeur choisit de cas de test des entrées à l'exercice des chemins à travers le code et détermine les produits adaptés. Dans les essais de matériel électrique, chaque nœud d'un circuit peut être sondé et mesurés; un exemple est dans le circuit de test (TIC).

edit: juste pour préciser un peu plus, je me rends compte que les deux sont importants, mais ils sont généralement séparés entre développement et d'assurance qualité.

Est à l'intérieur de connaissances importantes pour la tester/QA? J'ai entendu des arguments que les essais avec cette connaissance à l'esprit leur permet de mieux tester les problèmes, mais j'ai aussi entendu des arguments que cette connaissance peut détourner l'attention de besoins fonctionnels et de promouvoir le "test pour le code" plutôt que à la destinée de la solution.

53voto

Glenn Points 3787
  • Boîte noire doit être l'accent pour les testeurs d'assurance de la qualité.
  • Tests en boîte blanche devrait être l'accent pour les développeurs (c'est à dire des tests unitaires).
  • Les autres personnes qui ont répondu à cette question semblait avoir interprété la question comme ce Qui est plus important, tests en boîte blanche ou boîte noire. Moi aussi, je pense qu'ils sont à la fois important, mais vous pourriez vouloir vérifier ce IEEE article qui affirme que les tests en boîte blanche est le plus important.

11voto

cschol Points 5721

Tests en Boîte blanche est égale à l'Unité de Logiciel de Test. Le développeur ou testeur de niveau de développement (par exemple, un autre développeur) garantit que le code qu'il a écrit est de fonctionner correctement selon le niveau de détail des exigences avant de l'intégrer dans le système.

Boîte noire est égal à des Tests d'Intégration. Le testeur s'assure que le système fonctionne selon les exigences sur le plan fonctionnel.

Les deux approches sont tout aussi important à mon avis.

Une complète unité de test de capture des défauts dans la phase de développement, et non pas après que le logiciel a été intégré dans le système. Un système de niveau de la boîte noire test s'assurera que tous les modules du logiciel se comporter correctement lorsqu'ils sont intégrés ensemble. Un test unitaire dans la phase de développement ne serait pas attraper ces défauts étant donné que les modules sont généralement développés indépendamment les uns des autres.

8voto

kalidass Points 41

La Boîte Noire

1 Met l'accent sur la fonctionnalité du système Se concentre sur la structure (Programme) du système

2 Les Techniques utilisées sont :

· L'équivalence de partitionnement

· Limite de l'analyse de la valeur

· Erreur de deviner

· Conditions de course

· De Cause à effet graphique

· La syntaxe des tests

· L'état de transition de test

· Graphique de la matrice

Testeur peut être non technique

Permet d'identifier le flou et les contradictions dans les spécifications fonctionnelles

Boîte Blanche

Les Techniques utilisées sont:

· Chemin D'Accès De Base De Test

· Graphe De Flot De Notation

· Contrôle De La Structure De Test

  1. Condition De Test

  2. Flux de données de test

· Tests De Boucle

  1. Simple Boucle

  2. Boucles Imbriquées

  3. Concaténées Boucles

  4. Non Structurées Boucles

    Testeur doit être technique

    Aide à identifier les logiques et les problèmes de codage.

4voto

Alan Points 888

"Les deux" il a été indiqué ci-dessus, et est la réponse la plus évidente...mais l'OMI, tests en boîte blanche va bien au-delà de développeur de tests unitaires (althoughI suppose que cela pourrait dépendre de l'endroit où tracer la ligne de démarcation entre le blanc et le noir). Par exemple, l'analyse de couverture de code est une commune de la zone blanche de l'approche - c'est à dire exécuter certains scénarios ou des tests, et d'examiner les résultats de la recherche pour les trous dans les tests. Même si les tests unitaires ont 100% de cc, la mesure de la cc sur la commune de scénarios utilisateur peut révéler code peut potentiellement besoin d'encore plus de tests.

Un autre endroit où les tests en boîte blanche aide est de l'examen des données types, constantes et d'autres informations à chercher les limites, les valeurs spéciales, etc. Par exemple, si une application a une entrée qui prend une entrée numérique, un bb à la seule approche pourrait exiger que le testeur de "deviner" ce que des valeurs serait bon pour le test, alors que la banque mondiale, l'approche peut révéler que toutes les valeurs entre 1-256 sont traités d'une seule façon, tandis que les plus grandes valeurs sont traitées d'une autre manière...et peut-être le nombre 42 est encore un autre chemin d'accès du code.

Donc, pour répondre à la question d'origine - deux bb et bm sont essentiels pour de bons tests.

3voto

Brian B. Points 1519

Dans mon expérience, la plupart des développeurs naturellement migrer vers des tests en boîte blanche. Puisque nous devons nous assurer que l'algorithme sous-jacent est "correct", nous avons tendance à se concentrer davantage sur le fonctionnement interne. Mais, comme cela a été souligné, à la fois blanc et noir zone de test est important.

Donc, je préfère avoir des testeurs de se concentrer davantage sur les tests de type Boîte Noire, pour couvrir le fait que la plupart des développeurs n'est pas vraiment le faire, et souvent ne sont pas très bon à cela.

Ce n'est pas de dire que les testeurs devraient être maintenus dans l'obscurité sur la façon dont le système fonctionne, c'est juste que je préfère se concentrer plus sur le domaine du problème et de la façon dont les utilisateurs interagissent avec le système, pas de savoir si la fonction SomeMethod(int x) correctement lever une exception si x est égal à 5.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X