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

Популярным вопросом при изучении особенностей тестирования является различие между методами тестирования. Найти информацию про Black-box и White-box не составит труда, а вот Gray-box не пользуется популярностью среди авторов обучающих статей. Мы решили это исправить и поможем разобраться, чем тест Серого ящика отличается от других.

Зачастую Серый ящик считают совокупностью видов White/Black-Box, так как он подразумевает, что внутреннее устройство тестируемого продукта нам известно лишь частично. Поэтому прежде, чем пытаться понять, что же такое Grey-Box-тестирование, стоит разобраться, из совокупности каких других методов оно состоит.

Black-box-тестирование

При тестировании методом Чёрного ящика тестировщик не имеет доступа к внутренней структуре компонентов системы. Следовательно, процедура получения и выбора тестовых случаев основывается на анализе спецификации компонентов системы без прямой осведомленности в их внутреннем устройстве.

Пример работы

Самым простым примером тестирования Black-Box будет любая проверка на триггер уведомлений, когда во время тестирования затрагиваются функционалы отправки, а у тестировщика нет доступа к почтовым ящикам/базе.

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

За Ожидаемый Результат в данном случае будут отвечать Требования и\или Спецификация.

White-Box-тестирование

Тестирование методом Белого ящика предполагает собой работу с «открытой» системой, где ее внутренняя структура, а также устройство и реализация заранее известны тестировщику на момент старта тестов.

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

На данном этапе остается лишь проверить фактические результаты выполнения, сравнить их с ожидаемыми: определенными кодом и проектной документацией.

Пример работы

Хорошим примером послужит любой проект с открытым исходным кодом.
Скачав и запустив подобные, можно писать автотесты, прогон которых и станет проверкой. У подобных проектов часто отсутствует пользовательский интерфейс, что отсекает возможность тестирования Black-box.

Основные различия между Black-box и White-Box

При тестировании методом Белого ящика необходимы знания программирования. Поэтому считается, что данным видом пользуются сами разработчики, так как им известен код. Они определяют уместные или неуместные паттерны проектирования, структуры классов. Для них разрабатываемая ими же система — Белый ящик.

Black-box не требует знаний программирования, поэтому с ним работает непосредственно отдел Тестирования.

Grey-Box-тестирование

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

Пример работы

Предоставлена информация о базе данных. Если программа использует для своей работы какую-либо БД, мы можем проанализировать типы полей, в которые записываются переменные программы. А потом проанализировать ограничения, которые накладывает база.
Например, если вводимая фамилия пользователя записывается в поле типа «строка» длиной 128 символов, мы должны:

  1. попробовать найти фамилию длиннее, чем 128 символов — здесь будет довольно серьезный баг, если такие фамилии существуют — человек с такой фамилией не сможет воспользоваться нашей системой;
  2. не зависимо от того, существуют или нет такие фамилии, попробовать ввести строку больше 128 символов — программа не должна ломаться (должно показываться внятное сообщение об ошибке).

Если программа интегрируется с другими внешними системами, помимо базы данных, можно также проанализировать ограничения таких систем. Например, если мы тестируем почтовый IMAP-клиент, следует убедиться, что он корректно обрабатывает длинные пути к папкам на сервере (чаще всего, ограничение на длину пути составляет 255 символов).

Кроме указанного, если мы имеем еще и доступ к коду программы, то мы можем:

  1. обратить внимание на специальные случаи, которые не попали в документ с требованиями и которые необходимо протестировать;
  2. напротив, увидеть, что какие-то вещи тестировать не имеет смысла.

Достоинства метода:

Тестирование серого ящика включает в себя плюсы тестирования «черного» и «белого». Другими словами, тестировщик смотрит на объект тестирования с позиции «черного» ящика, но при этом проводит анализ на основе данных о системе, которые он знает .

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

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

Недостатки метода:

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

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

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

Заключение

Стратегия объединяет в себе цели двух других ящиков, одновременно является универсальным вариантом для случаев, когда нет возможности прибегнуть к White-Box-тестированию, но есть необходимость более значительного охвата тестами чем тот, что может предоставить нам Black-box. Тестирование методом Серого ящика будет ближе именно к Черному ящику из-за отсутствия необходимости в доступе тестировщика к исходному коду. Все тесты создаются на основе знания алгоритма, архитектуры, внутренних состояний, а также иных высокоуровневых описаний поведения программы.

Заказать тестирование
Правила обработки персональных данных

1. Персональные данные Посетителя обрабатываются в соответствии с ФЗ «О персональных данных» № 152-ФЗ.

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

3. Предоставляя свои персональные данные Владельцу сайта, Посетитель соглашается на их обработку Владельцем сайта, в том числе в целях выполнения Владельцем сайта обязательств перед Посетителем.

4. Под обработкой персональных данных понимается любое действие (операция) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (в том числе передачу третьим лицам, не исключая трансграничную передачу, если необходимость в ней возникла в ходе исполнения обязательств), обезличивание, блокирование, удаление, уничтожение персональных данных.

5. Владелец сайта вправе использовать технологию «cookies». «Cookies» не содержат конфиденциальную информацию. Посетитель настоящим дает согласие на сбор, анализ и использование cookies, в том числе третьими лицами для целей формирования статистики и оптимизации рекламных сообщений.

6.Владелец сайта получает информацию об ip-адресе Посетителя. Данная информация не используется для установления личности посетителя.

7.Владелец сайта вправе осуществлять записи телефонных разговоров с Покупателем. При этом Владелец сайта обязуется: предотвращать попытки несанкционированного доступа к информации, полученной в ходе телефонных переговоров, и/или передачу ее третьим лицам, не имеющим непосредственного отношения к взаимодействию между Владельцем сайта и Посетителем, в соответствии с п. 4 ст. 16 Федерального закона «Об информации, информационных технологиях и о защите информации».

Письмо отправлено

Наш менеджер свяжется с вами в ближайшее время