Подпадает ли «модульное тестирование» под белый или черный ящик? - PullRequest
22 голосов
/ 27 марта 2012

Подпадает ли «модульное тестирование» под белый или черный ящик?Или это совершенно отдельный тип тестирования, чем два других?

Ответы [ 2 ]

23 голосов
/ 27 марта 2012

Я думаю, что эта статья Кента Бека , в которой больше говорится о TDD и модульном тестировании, достаточно хорошо подводит итог. По сути, это зависит от того, как вы пишете тесты *. Вот еще одна статья на эту тему , которая может помочь прояснить ситуацию.

* Если вы тестируете приложение, то это whitebox. Если вы тестируете его так же, как посторонний будет делать вызовы только вашему общедоступному API, то это черный ящик.

11 голосов
/ 27 марта 2012

Обычными критериями для тестирования белого ящика являются путь выполнения и сенсибилизация структуры данных.Их иногда называют «тестирование ветвления», «тестирование пути», «тестирование потока данных».См. Википедию по тестированию белого ящика.

То есть юнит-тест относится к уровню, на котором тест проводится в структуре системы, тогда как тестирование белого и черного ящика относится к тому,На любом уровне подход к тестированию основан на внутренней структуре или только на внешней спецификации модуля.

Так что, если ваш модульный тест обнаруживает все пути выполнения и структуры данных в тестируемом модулетогда это тест белого ящика.Однако, если ваше устройство не может определить большую часть путей и структур данных устройства, оно не может претендовать на тест белого ящика.

Имейте в виду, что в некоторых организациях юнит-тестирование называется белым-box-тестирование независимо от того, основан ли юнит-тест на дизайне модуля, а не только на его API.Лучше не спорить с боссом по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...