"Оба" было сказано выше, и это очевидный ответ ... но IMO, тестирование белого ящика выходит далеко за рамки модульного тестирования разработчика (хотя я полагаю, что это может зависеть от того, где вы проведете линию между белым и черным). Например, анализ покрытия кода является распространенным подходом белого ящика - то есть запустите некоторые сценарии или тесты и изучите результаты, чтобы найти дыры в тестировании. Даже если в модульных тестах 100% куб. См., Измерение куб. См в обычных пользовательских сценариях может выявить код, который может потребовать еще большего тестирования.
Еще одним местом, где помогает тестирование белого ящика, является проверка типов данных, констант и другой информации для поиска границ, специальных значений и т. Д. Например, если приложение имеет ввод, который принимает числовой ввод, подход, основанный только на bb, может потребовать тестер должен «угадать», какие значения были бы хороши для тестирования, тогда как подход wb может показать, что все значения между 1-256 обрабатываются одним способом, в то время как большие значения обрабатываются другим способом ... и, возможно, число 42 еще другой путь к коду.
Итак, чтобы ответить на первоначальный вопрос - и bb, и wb необходимы для хорошего тестирования.