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

Популярным вопросом при изучении особенностей тестирования является различие между методами тестирования. Найти информацию про 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. Тестирование методом Серого ящика будет ближе именно к Черному ящику из-за отсутствия необходимости в доступе тестировщика к исходному коду. Все тесты создаются на основе знания алгоритма, архитектуры, внутренних состояний, а также иных высокоуровневых описаний поведения программы.

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

Пользователь, заполняя форму обратной связи на интернет-сайте http://qualitica.ru, принимает настоящие Правила обработки персональных данные (далее — Правила). Действуя свободно, своей волей и в своем интересе, а также подтверждая свою дееспособность, Пользователь дает свое согласие ИП Бормотов Иван Сергеевич на обработку своих персональных данных со следующими условиями:

1. Данное согласие дается на обработку персональных данных, как без использования средств автоматизации, так и с их использованием;

2. Согласие дается на обработку следующих персональных данных, не являющихся специальными или биометрическими: фамилия и имя, телефон, e-mail, пользовательские данные (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник, откуда пользователь пришел на сайт; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь; ip-адрес);

3. Персональные данные не являются общедоступными.

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

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