Что такое серый Box Тестирование? Техники, Пример

⚡ Умное резюме

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

  • 🔍 Уровень знаний: Внутренняя структура известна частично, в отличие от полностью известной структуры при тестировании методом «белого ящика» и неизвестной при тестировании методом «черного ящика».
  • 🧪 Четыре метода: Матричные тесты, регрессионные тесты, тесты с использованием ортогональных массивов и тесты на соответствие шаблонам составляют основной набор инструментов.
  • 🪜 Десять шагов: Определите входные и выходные данные, а также основные пути выполнения, затем разбейте систему на подфункции и проверьте каждую из них.
  • 🔗 Оптимальный размер: Интеграционное тестирование, тестирование на проникновение, рабочие процессы на основе баз данных, веб-сервисы и API.tracц.
  • Компромисс: Частичная прозрачность снижает трудозатраты, но при этом ограничивает глубину проникновения в любой отдельный участок кода. tracредактор
  • 📋 Необходимое условие: Точная проектная документация имеет важное значение, поскольку устаревшая схема или спецификация незаметно делает недействительным проект тестирования.

серый Box Тестирование, сочетающее частичное использование внутренних знаний с разработкой тестов для пользователей.

Что такое серый Box Тестирование?

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

Часто задаваемые вопросы (FAQ)

Оба слова обозначают одну и ту же технику. Grey — это британское написание, а gray — американское, и в документации к инструментам и программах сертификации они встречаются взаимозаменяемо. Ни одно из них не имеет разного технического значения.

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

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

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

Заглушка заменяет компонент, который вызывает тестируемый модуль; драйвер заменяет компонент, который бы его вызывал. Вместе они позволяют выполнять подфункцию изолированно до создания полной системы.

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

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

Да, это касается повторяющихся элементов: построителей запросов, утверждений ответов, запросов на проверку, заглушек и драйверов, созданных на основе определения интерфейса. Решение о том, какое внутреннее состояние подтверждает корректность поведения, остается на усмотрение инженера.

Подведем итог этой публикации следующим образом: