Что такое тестирование методом «серого ящика»? Техники, примеры

Тестирование «серого ящика»

Тестирование «серого ящика» или Gray box testing — это метод тестирования программного обеспечения, позволяющий протестировать программный продукт или приложение с частичным знанием внутренней структуры приложения. Целью тестирования «серого ящика» является поиск и выявление дефектов, связанных с неправильной структурой кода или неправильным использованием приложений.

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

Тестирование «серого ящика» — это метод тестирования программного обеспечения, который представляет собой сочетание тестирования двух методов: метода «белого ящика» и метода «черного ящика».

  • При тестировании методом «белого ящика» известна внутренняя структура (код)
  • При тестировании методом «черного ящика» внутренняя структура (код) неизвестна
  • При тестировании методом «серого ящика» внутренняя структура (код) известна частично

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

Пример тестирования “серого ящика”: При тестировании таких элементов веб-сайта, как ссылки или “битые” ссылки, если тестировщик обнаружит какие-либо проблемы с этими ссылками, то он может сразу же внести изменения в HTML-код и проверить их в режиме реального времени.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Зачем нужно тестирование «серого ящика»

Тестирование «серого ящика» проводится по следующей причине,

  • Оно сочетает преимущества тестирования «черного ящика» и тестирования «белого ящика»
  • Совместный вклад в тестирование разработчиков и тестировщиков повышает качество продукта
  • Уменьшает расходы связанные с длительным функциональным и нефункциональным тестированием
  • Предоставляет разработчику достаточно свободного времени для устранения дефектов
  • Тестирование проводится с точки зрения пользователя

Стратегия тестирования «серого ящика»

Для проведения Gray box тестирования не обязательно, чтобы тестировщик имел доступ к исходному коду. Тест разрабатывается на основе знания алгоритма, архитектуры, внутренних состояний или других высокоуровневых описаний поведения программы.

Для проведения тестирования методом «серого ящика»

  • Применяется простая техника тестирования «черного ящика»
  • Создаются позитивные тест кейсы на основании требований

Для тестирования «серого ящика» используются следующие техники

  • Матричное тестирование: Эта техника тестирования предполагает определение всех существующих переменных.
  • Регрессионное тестирование: Проверяет, не привело ли изменение в предыдущей версии к сбою других аспектов программы в новой версии. Для этого используются такие стратегии тестирования, как повторное тестирование, повторное тестирование подверженых риску вариантов, повторное тестирование в межсетевом экране.
  • Тестирование ортогональных массивов или OAT: обеспечивает максимальное покрытие кода при минимальном количестве тест кейсов.
  • Тестирование по шаблонам: Это тестирование проводится на основе типовых данных о предыдущих дефектах системы. В отличие от тестирования «черного ящика», тестирование «серого ящика» копается в коде и определяет, почему произошел сбой.

Обычно для проведения тестирования методом «серого ящика» используются автоматизированое тестирование программного обеспечения. Чтобы избавить тестировщика от необходимости вручную генерировать код, создаются заглушки и драйверы модулей.

Шаги для проведения тестирования по методу «серого ящика» следующие:

  • Шаг 1: определение входов
  • Шаг 2: определение выходов
  • Шаг 3: определение первичных потоков
  • Шаг 4: Определение подфункций
  • Шаг 5: Разработка входов для подфункций
  • Шаг 6: Разработка выходов для подфункций
  • Шаг 7: Выполнить тестовый пример для подфункций
  • Шаг 8: Проверить правильность результатов для подфункций
  • Шаг 9: Повторить шаги 4 и 8 для других подфункций.
  • Шаг 10: Повторить шаги 7 и 8 для других подфункций

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

Трудности тестирования «серого ящика»

  • Когда тестируемый компонент сталкивается с каким-либо сбоем, который может привести к прерыванию текущей работы.
  • Когда тест выполняется полностью, но результат выполнения содержит ошибку.

Резюме:

  • Оно сочетает преимущества тестирования «черного ящика» и тестирования «белого ящика»
  • Тестирование «серого ящика» больше подходит для тестирования графического интерфейса, функционального тестирования, оценки безопасности, веб-приложений, веб-сервисов и т.д.
  • Техники, используемые при тестировании методом «серого ящика»
    • Матричное тестирование
    • Регрессионное тестирование
    • OAT или тестирование ортогональных массивов
    • Паттерн-тестирование

Перевод статьи «What is Grey Box Testing? Techniques, Example».

🔥 Какой была ваша первая зарплата в QA и как вы искали первую работу? 

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Читать в телеграм

1 комментарий к “Что такое тестирование методом «серого ящика»? Техники, примеры”

  1. Пингбэк: Методы тестирования: «чёрный», «белый» и «серый ящик»

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *