Тестирование методом черного ящика
Главный принципе этого тестирования, что мы не знаем, как устроена тестируемая система.
Тестирование основано на работе исключительно с внешними интерфейсами тестируемой системы.
Представьте, что у вас есть веб-форма для регистрации пользователей.
Тестировщик может создать следующие сценарии:
- Ввод корректных данных и проверка успешной регистрации.
- Ввод некорректного формата электронной почты и проверка вывода сообщения об ошибке.
- Ввод уже существующего имени пользователя и проверка вывода сообщения об ошибке.
Тестировщик не знает, как именно реализована валидация данных, но может проверить, правильно ли она работает.
Тестирование методом белого ящика
if n == 0:
return 1
else:
return n * factorial(n-1)
assert factorial(1) == 1
assert factorial(5) == 120
Тестирование методом серого ящика
Здесь нам известны только некоторые особенности реализации тестируемой системы.
К примеру тестировщик может не иметь доступа к исходному коду или иметь этот доступ частично.
И благодаря частичному доступу, он знает, что система использует определенный алгоритм сортировки.
В этом случае, он может создать тесты, которые проверяют работу алгоритма на различных наборах данных.
То есть это некая комбинация черноящичного тестирования и белоящичного тестирования.
Наверное этот метод тестирования, к которому нужно стремиться. Если у нас есть доступ к коду, когда мы тестируем к примеру какой то сайт. То мы понимаем как работает валидация на сервере и клиенте, какие есть ограничение и благодаря этому мы сможем написать более эффективные тест-кейсы.