Что такое серый Box Тестирование? Техники, Пример
⚡ Умное резюме
серый Box Тестирование исследует приложение, имея лишь частичное представление о его внутренней структуре, сочетая в себе пользовательский опыт, характерный для тестирования методом «черного ящика», с достаточным пониманием архитектуры, чтобы объяснить, почему произошла ошибка, а не просто констатировать ее.

Что такое серый Box Тестирование?
серый Box Тестирование (также пишется Грей) Box Тестирование (или тестирование) — это метод тестирования программного обеспечения, при котором программный продукт или приложение тестируется с частичным знанием внутренней структуры приложения. Цель метода «серого» тестирования заключается в следующем: Box Тестирование направлено на поиск и выявление дефектов, вызванных неправильной структурой кода или неправильным использованием приложения.
В этом процессе часто выявляются контекстно-специфические ошибки, связанные с веб-системами. Данная методика повышает эффективность. тестовое покрытие путем концентрации внимания на всех уровнях сложной системы, а не на одном из них.
серый Box Тестирование — это метод тестирования программного обеспечения, который сочетает в себе Белый Box Тестирование и Цвет - Черный. Box ТестированиеРазличие между ними сводится к тому, какую часть внутренней структуры может увидеть тестировщик:
- В белом Box Проверка внутренней структуры (кода) известна.
- В черном Box Проверка внутренней структуры (кода) неизвестна.
- В сером Box Проверка внутренней структуры (кода) показала, что она частично известна.
На приведенной ниже диаграмме все три метода расположены на одной шкале видимости.
In разработка программного обеспечения, Серый Box Тестирование позволяет проверить обе стороны приложения: уровень представления, а также код, лежащий в его основе. Оно особенно полезно в следующих случаях: интеграционное тестирование и тестирование на проникновение.
Пример серого цвета Box Тестирование: При тестировании таких функций веб-сайта, как ссылки или «бесхозные» ссылки, если тестировщик обнаружит проблему с этими ссылками, изменение можно внести немедленно в HTML-код и проверить в режиме реального времени.
Почему серый Box Тестирование
серый Box Тестирование проводится по следующим причинам:
- Это позволяет объединить преимущества как тестирования методом «черного ящика», так и тестирования методом «белого ящика».
- Это позволяет объединить вклад разработчиков и тестировщиков и повысить общее качество продукта.
- Это снижает накладные расходы, связанные с длительным процессом тестирования функциональных и нефункциональных типов.
- Это даёт разработчику достаточно свободного времени для исправления ошибок.
- Тестирование проводится с точки зрения пользователя, а не дизайнера.
- Неисправность можно объяснить, а не просто сообщить о ней, поскольку тестировщик может видеть слой, в котором она произошла.
серый Box Тестирование против черного Box против Белых Box Тестирование
Эти три метода представляют собой не столько конкурирующие альтернативы, сколько три уровня доступа, и каждый из них отвечает на разные типы вопросов. Сопоставление их делает выбор более конкретным.
| База | Цвет - Черный. Box Тестирование | серый Box Тестирование | Белый Box Тестирование |
|---|---|---|---|
| Знание внутренней структуры | Ничто | Частичный | Длинный |
| Выполняется | Тестировщики и конечные пользователи | Тестировщики и разработчики, работающие с тестировщиками. | Разработчики и инженеры по тестированию |
| Основы проектирования тестов | Требования и спецификации | Archiархитектура, алгоритмы, структуры данных и интерфейсы | Исходный код и поток управления |
| Типичный уровень | Системные и приемочные испытания | Интеграционное тестирование, тестирование на проникновение и тестирование веб-сервисов. | Тестирование модулей и компонентов |
| Покрытие измеряется как | Покрытие требований | Покрытие интерфейса, данных и маршрутов | Покрытие операторов, ветвей и путей |
| Основное ограничение | Причина сбоя остается скрытой. | Глубина ограничена предоставленными правами доступа. | Дорогостоящий метод, к тому же он может не учитывать недостающие требования. |
Большинство команд используют все три варианта. жизненный цикл тестирования программного обеспеченияА именно в слое «серого ящика» обычно выявляются дефекты, возникающие между пользовательским интерфейсом и хранилищем данных.
серый Box Стратегия тестирования
Для исполнения роли Грея Box Для тестирования тестировщику не обязательно иметь доступ к исходному коду. Тест разрабатывается на основе знаний об алгоритмах, архитектурах, внутренних состояниях или других высокоуровневых описаниях поведения программы.
Для исполнения роли Грея Box Тестирование:
- В нем применяются простые методы тестирования методом «черного ящика».
- Он основан на генерации тестовых примеров, определяемых требованиями, поэтому все условия задаются заранее, до того, как программа будет протестирована методом утверждений.
Техники, используемые для Грея Box Тестирование – это:
- Матричное тестирование: Этот метод предполагает определение всех переменных, существующих в программе, а также риска, который несет каждая из них, чтобы сделать видимыми неиспользуемые и высокорисковые переменные.
- Регрессионное тестирование: Проверяет, не привело ли изменение в предыдущей версии к ухудшению других аспектов программы в новой версии. Это делается с помощью таких стратегий, как повторное тестирование всего, повторное тестирование рискованных сценариев использования и повторное тестирование внутри брандмауэра.
- Тестирование ортогонального массива или овсянка: Обеспечивает максимальное покрытие кода при минимальном количестве тестовых случаев.
- Тестирование шаблона: Проводится на основе исторических данных о предыдущих дефектах системы. В отличие от тестирования методом «черного ящика», метод Грея Box Тестирование позволяет детально изучить код и определить причину сбоя.
серый Box В методологии обычно используются автоматизированные инструменты тестирования программного обеспечения Для проведения тестирования создаются заглушки и драйверы модулей, чтобы тестировщику не приходилось генерировать код вручную.
Этапы выполнения Грея Box Тестирование – это:
- Шаг 1: Определите входные данные.
- Шаг 2: Определите выходные данные.
- Шаг 3: Определите основные пути.
- Шаг 4: Определите подфункции.
- Шаг 5: Разработайте входные данные для подфункций.
- Шаг 6: Разработайте выходные параметры для подфункций.
- Шаг 7: Выполните тестовый пример для подфункций.
- Шаг 8: Проверьте правильность результата для подфункций.
- Шаг 9: Повторите шаги с 4 по 8 для остальных подфункций.
- Шаг 10: Повторите шаги 7 и 8 для остальных подфункций.
Тестовые примеры для Grey Box Тестирование может охватывать, помимо прочего, графический интерфейс пользователя, безопасность, базы данных, браузер и операционную систему. Каждый созданный случай по-прежнему требует обычного тестирования. прецедент атрибуты, поскольку случай, который невозможно воспроизвести на основе его собственного описания, малополезен при регрессионном анализе.
Где серый Box Тестирование используется
Этот метод находит применение везде, где дефект можно диагностировать только при одновременном осмотре двух слоев. Чаще всего он применяется в следующих случаях:
- Рабочие процессы, поддерживаемые базой данных: Действие выполняется через пользовательский интерфейс, после чего полученные строки напрямую запрашиваются для подтверждения того, что значения, типы и связи были сохранены в соответствии с замыслом.
- Веб-сервисы и API: Отправляется запрос, и статус ответа, заголовки и полезная нагрузка проверяются на соответствие опубликованным данным.tracт, которая является повседневной формой API тестирование.
- Точки интеграции: Сообщения, пересекающие границу между двумя модулями, проверяются, при этом оба модуля рассматриваются как работающие системы, а не как исходные файлы.
- Оценка безопасности: Специалисту по тестированию на проникновение, получившему обычную учетную запись пользователя и обзор архитектуры, воспроизводится положение инсайдера, что соответствует стандартной модели взаимодействия в рамках «серого ящика».
- Веб-приложения и графические пользовательские интерфейсы: Проверка неработающих ссылок, страниц-сирот, обработки сессий и валидации на стороне клиента осуществляется с частичной видимостью разметки и потока запросов.
Во всех этих случаях общая стоимость дефектов системы снижается, поскольку проблемы выявляются и объясняются до того, как они попадут на более поздние этапы процесса. тестирование системы или производства.
серый Box Средства тестирования
Ни один инструмент не работает в режиме Grey. Box Тестирование само по себе недостаточно. Для данной категории требуется комбинация драйвера интерфейса, инструмента проверки нижележащего уровня и способа объединения этих двух компонентов в скрипты.
- API-клиенты и клиенты веб-сервисов такие как Postman и SoapUIИспользуется для отправки запросов и проверки кодов состояния и тел ответов.
- Клиенты баз данных и инструменты для выполнения SQL-запросовИспользуется для проверки сохраненного состояния после действия с интерфейсом.
- Инструменты разработчика браузера и HTTP-прокси такие как Burp SuiteИспользуется для проверки и изменения запросов во время сеансов, ориентированных на безопасность.
- Фреймворки автоматизации пользовательского интерфейса такие как Seleniumиспользуется для управления слоем представления внутри автоматизация тестирования на.
- Инструменты для ведения журналов и мониторингаИспользуется для сопоставления наблюдаемой ошибки с тем, что приложение зафиксировало внутри себя в этот момент.
Выбор имеет меньшее значение, чем тип проводки: если драйвер интерфейса и этап проверки не выполняются в одном и том же скриптовом процессе, результатом будут две отдельные ручные проверки вместо одного теста в «сером ящике».
серый Box Проблемы тестирования
Частичная видимость создает проблемы, которых нет ни в одном из чистых методов, и ниже перечислены те проблемы, с которыми команды сталкиваются чаще всего:
- Когда тестируемый компонент выходит из строя, это может прервать текущую операцию, и остальная часть последовательности останется невыполненной.
- Тест может быть выполнен полностью, но при этом содержимое результата окажется некорректным, поэтому на этапе проверки необходимо проверять значения, а не завершение выполнения.
- Полное покрытие путей выполнения кода недостижимо, поскольку тестировщик никогда не видит все ветви, до которых дошло бы тестирование методом «белого ящика».
- Проектная документация, на которой основаны тесты, может быть устаревшей, а устаревшая схема или спецификация интерфейса незаметно делает недействительным проект тестов.
- Тестировщикам необходимы как знание предметной области, так и глубокие технические знания, что является более узким профилем навыков для найма.
- Распределённые и сильно накачанные мышцы прессаtracАрхитектура TED затрудняет определение того, к какому конкретному внутреннему компоненту относится наблюдаемая неисправность.
Эти ограничения свидетельствуют в пользу лечения Грея. Box Тестирование рассматривается как один из нескольких уровней, а не как замена другим, что и подчеркивается в более широком контексте. методы тестирования программного обеспечения и виды тестирования ПООно органично вписывается в окружающую среду. функциональное тестирование и подходы, основанные на спецификациях, такие как тестирование на основе модели.

