J'ai récemment passé mon examen final pour un cours de génie logiciel pour mon programme de maîtrise et l'une des questions de l'examen était la suivante:
Unit Testing is considered:
a. White-box Testing
b. Black-box Testing
c. Either
Au cours de mes 7 années d'expérience en développement de logiciels, les tests unitaires ont toujours adopté une approche en boîte blanche. Le testeur a toujours eu une connaissance complète de la mise en œuvre de l'unité lors de la rédaction des tests. Les tests de la boîte noire sont toujours venus plus tard sous la forme de tests d'intégration, de système et d'acceptation.
Cependant, la bonne réponse à l'examen (selon le professeur) est que les tests unitaires peuvent être des tests en boîte blanche ou noire.
J'ai fait quelques recherches, et il semble que de nombreux cas "tests unitaires de boîte noire" sont utilisés pour décrire une approche test-first où les tests unitaires sont écrits avant le code. Cependant, à mon avis, il s'agit toujours de tests en boîte blanche. Bien que l'implémentation n'existe pas encore, celui qui écrit le test a généralement une assez bonne idée de la façon dont le code source va être implémenté.
Quelqu'un peut-il m'expliquer comment fonctionnent les tests unitaires en boîte noire (si c'est vraiment une chose) et en quoi ils diffèrent des tests unitaires en boîte blanche?
While the implementation does not yet exist, whoever is writing the test generally has a pretty good idea about how the source code is going to be implemented.
- Oui, mais pas le test lui - même . Le test en boîte blanche signifie tester quelque chose interne à la méthode ou à la classe, comme la valeur d'une variable. Cela ne signifie pas que l'auteur du test sait à quoi ressemble le code testé.