Испытывает ли "Unit Testing" под белым или черным ящиком? - программирование
Подтвердить что ты не робот

Испытывает ли "Unit Testing" под белым или черным ящиком?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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