Тестирование “серого ящика”
Тестирование “серого ящика” или Gray box testing – это метод тестирования программного обеспечения, позволяющий протестировать программный продукт или приложение с частичным знанием внутренней структуры приложения. Целью тестирования “серого ящика” является поиск и выявление дефектов, связанных с неправильной структурой кода или неправильным использованием приложений.
В зависимости от контекста обычно выявляются специфические ошибки веб-систем. Это позволяет увеличить охват тестирования за счет проработки всех слоев любой сложной системы.
Тестирование “серого ящика” – это метод тестирования программного обеспечения, который представляет собой сочетание тестирования двух методов: метода “белого ящика” и метода “черного ящика”.
- При тестировании методом “белого ящика” известна внутренняя структура (код)
- При тестировании методом “черного ящика” внутренняя структура (код) неизвестна
- При тестировании методом “серого ящика” внутренняя структура (код) известна частично
В области разработки программного обеспечения тестирование “серого ящика” дает возможность тестировать обе стороны приложения, как пользовательского интерфейса, так и кодовую часть. В первую очередь это полезно при интеграционном тестировании и тестировании на проникновение и безопасность.
Пример тестирования “серого ящика”: При тестировании таких элементов веб-сайта, как ссылки или “битые” ссылки, если тестировщик обнаружит какие-либо проблемы с этими ссылками, то он может сразу же внести изменения в HTML-код и проверить их в режиме реального времени.
БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"
Зачем нужно тестирование “серого ящика”
Тестирование “серого ящика” проводится по следующей причине,
- Оно сочетает преимущества тестирования “черного ящика” и тестирования “белого ящика”
- Совместный вклад в тестирование разработчиков и тестировщиков повышает качество продукта
- Уменьшает расходы связанные с длительным функциональным и нефункциональным тестированием
- Предоставляет разработчику достаточно свободного времени для устранения дефектов
- Тестирование проводится с точки зрения пользователя
Стратегия тестирования “серого ящика”
Для проведения 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».