Модульное тестирование - это всегда тестирование белого ящика?

Недавно я видел несколько ссылок, которые указывают или упоминают в статье, что модульное тестирование всегда является тестом белого ящика.

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

Если есть какие-то внутренние структуры, которые необходимо протестировать помимо тестирования в "черном ящике", я бы сказал, что спецификация не завершена. Другими словами, если вы завершите тестирование черного ящика и подтвердите, что ваше устройство выполняет все, что вы ожидаете / хотите сделать, и у вас нет 100% покрытия кода, и вам нужно добавить белое поле тесты, чтобы получить 100% покрытие, тогда я был бы очень обеспокоен тем, что дополнительный код либо вызывает побочные эффекты, которые не соответствуют спецификации (возможно, в крайних или угловых случаях), либо просто является ненужным и добавляет ненужную сложность.

Я неправильно понимаю значение теста "белый ящик" или "черный ящик"? Правильно ли говорить, что по определению все юнит-тесты являются тестами белого ящика?

0 ответов

Другие вопросы по тегам