Урок 27 — Тестирование методом черного, белого и серого ящика

Тестирование методом черного ящика

Главный принципе этого тестирования, что мы не знаем, как устроена тестируемая система.

Тестирование основано на работе исключительно с внешними интерфейсами тестируемой системы.

Представьте, что у вас есть веб-форма для регистрации пользователей.

Тестировщик может создать следующие сценарии:

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

Тестировщик не знает, как именно реализована валидация данных, но может проверить, правильно ли она работает.

Тестирование методом белого ящика

Еще это тестирование называют тестированием методом прозрачного или открытого или стеклянного ящика.
Главный принцип, что нам известны все детали реализации тестируемой системы.
Этот метод предполагает, что внутренняя структура тестирумемой системы известна тестировщику и у него есть все необходимые компентенции и навыки, чтобы применять это при тестировании.
То есть тут уже идет тестирование структурного кода.
Представьте, что у вас есть следующая функция на Python  для вычисления факториала числа:

 

def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

 

Тестировщик может написать тесты, которые проверяют, что функция ведет себя ожидаемо при различных входных данных, включая граничные случаи:

 

assert factorial(0) == 1
assert factorial(1) == 1
assert factorial(5) == 120

 

Также можно проверить, как функция реагирует на отрицательные числа или нецелые числа.

Тестирование методом серого ящика

Здесь нам известны только некоторые особенности реализации тестируемой системы.

К примеру тестировщик может не иметь доступа к исходному коду или иметь этот доступ частично.

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

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

То есть это некая комбинация черноящичного тестирования и белоящичного тестирования.

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.