В этой статье Учебного пособия по тестированию программного обеспечения мы узнаем, что такое тестирование серого ящика, методы тестирования серого ящика, его преимущества и многое другое.
Что такое тестирование серого ящика на примере?
<р>Тестирование «серого ящика» представляет собой комбинацию тестирования «черного ящика» и «белого ящика». В этом методе тестировщику требуются лишь ограниченные знания о внутренней работе приложения.
Целью тестирования серого ящика является обнаружение дефектов, вызванных неправильной структурой или неправильное использование приложений.
При тестировании «серого ящика» тестер имеет доступ к проектному документу и базе данных, тогда как при тестировании «черного ящика» тестер тестирует только пользовательский интерфейс приложения. Тестирование серого ящика также называют полупрозрачным тестированием.
Тестирование серого ящика можно использовать для отладки программного обеспечения и оценки уязвимостей. Здесь тестировщик знает внутреннюю компетенцию, но не знает, как она взаимодействует. Таким образом, точка зрения тестировщика будет аналогична потенциальному злоумышленнику и пользователю.
Почему тестирование серого ящика
- Тестирование «серого ящика» не будет иметь таких недостатков, как тестирование «белого ящика».
- Тестирование «серого ящика» позволяет проверять домены данных, внутренние границы и переполнение.
- Тестирование «серого ящика» проверяет высокоуровневую среду проектирования и условия совместимости.
- Тестирование серого ящика позволяет обнаружить дефекты, которые не так легко распознать при анализе черного или белого ящика, особенно проблемы сквозного потока информации, а также конфигурации и совместимости распределенной аппаратной/программной системы.
- Тестирование серого ящика может выявить несколько ошибок, зависящих от контекста, которые имеют отношение к веб-системам.
- Тест серого ящика не зависит от языка и платформы.
- Тест серого ящика увеличит охват тестирования, сосредоточив внимание на всех уровнях любую сложную систему за счет сочетания всех существующих методов белого и черного ящика
Стратегия тестирования серого ящика
- При тестировании «серого ящика» нет необходимости разрабатывать тестовые примеры на основе исходного кода.
- Тестировщики могут разрабатывать тестовые примеры на основе знаний об архитектуре, алгоритме, внутренних состояниях или других высокоуровневых описаниях кода.
- Тестирование «серого ящика» может выполняться с использованием всех простых методов тестирования «черного ящика» для функционального тестирования.
- При тестировании серого ящика тестовый пример генерируется на основе заданных требований и условий перед тестированием программы методом утверждения.
Шаги по проведению тестирования серого ящика
Шаг 1: Определить входные данные тестирования «черного ящика» и «белого ящика» и выбрать соответствующие тестовые данные.
Шаг 2: Определить ожидаемые выходные данные из выбранных входных данных.
Шаг 3: Определить все основные пути, по которым необходимо пройти в течение периода тестирования.
Шаг 4: Определить под- функции, являющиеся частью основных функций для выполнения глубокого тестирования
Шаг 5:Чтобы определить входные данные для подфункций
Шаг 6: Определить ожидаемые выходные данные для подфункций.
Шаг 7: Приступить к выполнению тестового примера для подфункций.
Шаг 8: Проверка правильности результата
Методы тестирования серого ящика :
Матричное тестирование –
Матричное тестирование начинается, когда разработчики определяют все переменные в своей программе, и составляется отчет о состоянии проекта. Каждая переменная может содержать некоторый технический риск, бизнес-риск и может использоваться с разной частотой в течение ее жизненного цикла.
Тестирование шаблонов, как следует из названия, анализирует исторические данные о предыдущих дефектах системы.< br>При тестировании «серого ящика» тестировщики проверяют код и пытаются определить, почему происходят такие сбои. Этот анализ будет включать конкретные причины дефекта, что потребует системного анализа.
Это может помочь команде в разработке тестовых примеров и, следовательно, помогает заранее выявлять сбои.
На разработку тестовых сценариев «серого ящика» влияет структура кодирования приложения.
Ортогональный массив –Тестирование ортогональных массивов — это метод статистического тестирования, обычно выполняемый в сложных приложениях. Тестирование «серого ящика» сочетает в себе возможности статистического тестирования и тщательного тестирования для обеспечения надлежащего охвата. Это помогает уменьшить комбинацию чисел, чтобы обеспечить максимальный охват при минимальном количестве тестовых случаев.
Регрессионное
Регрессионное тестирование выполняется после функционального улучшения или исправления программа. Цель регрессионного тестирования — определить, привело ли изменение к регрессу в других аспектах программы.
Следующие стратегии тестирования используются для выполнения регрессионного тестирования в тестировании «серого ящика»:
Повторно протестировать все
Повторно протестировать рискованные варианты использования< br>Повторное тестирование по профилю
Повторное тестирование измененного сегмента
Повторное тестирование в брандмауэре
Белый ящик и серый ящик
Тестирование белого ящика | Тестирование серого ящика |
---|---|
При тестировании белого ящика внутренняя структура и дизайн приложения полностью известны тестировщику. | При тестировании «серого ящика» внутренняя структура и дизайн программного приложения частично известны тестировщику. |
Тестер должен иметь полное представление о реализации. | Достаточно тестировщиков, имеющих частичные знания о реализации. |
Тестирование белого ящика требует высоких навыков программирования. | Для проведения тестирования «серого ящика» требуются только базовые навыки программирования. |
Его могут выполнять тестировщики и разработчики. | Он может выполняться пользователями, тестировщиками и разработчиками. |
Это также называется тестированием прозрачного ящика или прозрачным тестированием. | Это также называется полупрозрачным тестированием. |
Это отнимает очень много времени | Это занимает сравнительно меньше времени |
Он используется для тестирования алгоритмов | Он не подходит для тестирование алгоритма |
Черный ящик против серого ящика
Тестирование черного ящика | Тестирование серого ящика |
---|---|
Тестирование черного ящика не требует от тестировщика знания внутренней структуры приложения. | Тестирование серого ящика требует, чтобы тестировщик частично знал внутреннюю структуру приложения. |
Это также называется тестированием закрытого ящика. | Это также называется полупрозрачным тестированием. |
Оно не требует знаний кодирования. | Это не требуется. требуют, чтобы тестировщик был экспертом, но для выполнения случаев требуется небольшой объем знаний в области кодирования. |
Он основан на выходных данных и пользовательском интерфейсе приложения. | Он основан на базе данных и потоке данных между функциями. |
Это сравнительно меньше времени. | Это отнимает много времени, но не так много, как тестирование методом «белого ящика». |
Это может быть выполнен методом проб и ошибок. | Он выполняется на основе доменов данных. |
Это может улучшить качество определенных аспектов программного обеспечения. | Это может улучшить общее качество программного обеспечения. |
< strong>Преимущества
- Тестирование серого ящика может выявить несколько дефектов, которые упустил разработчик, поскольку оно выполняется с точки зрения пользователя или злоумышленника, а не разработчика,
- Тестирование «серого ящика» может улучшить качество продукта за счет выявления более серьезных уязвимостей с меньшими усилиями и затратами.
- Тестирование серого ящика позволяет команде тестирования расставлять приоритеты тестов на основе понимания целевой системы
Задачи тестирования серого ящика
- Тестировщикам может не быть предоставлен доступ к исходному коду, это может привести к пропуску определенных критических уязвимостей.
- Разработчики могут почувствовать, что тестирование проводится по принципу «серого ящика», если они уже проводили подобное тестирование. тестовый пример.
- Проверка каждого потенциального ввода может занять очень много времени и нереально, т. е. есть вероятность, что определенные пути программы не будут проверены.
- Для покрытия пути ввода для большого приложения требуется много времени, это может увеличиться бюджет проекта, даже нарушают сроки проекта
Наилучшие подходящие приложения
- < li>Тестирование «серого ящика» можно использовать для веб-приложений.
- Тестирование «серого ящика» наиболее подходит для функционального тестирования.
- Тестирование «серого ящика» хорошо подходит для интеграционного тестирования.
- Тестирование серого ящика наиболее эффективно для оценки тестирования в сфере бизнеса.
- Тестирование серого ящика используется для оценки безопасности.
Преимущества
- Тестирование серого ящика проводится с точки зрения как пользователя, так и разработчика, что повышает его эффективность.
- Тестирование серого ящика сочетает в себе преимущества тестирования как черного, так и белого ящика. , это улучшает общее качество приложения.
- Тестирование серого ящика предотвращает разногласия между разработчиками и тестировщиками, поскольку оно является беспристрастным и ненавязчивым.
- Тестирование серого ящика помогает тестировщикам разрабатывать более эффективные тестовые сценарии, поскольку требует частичного понимания логики приложения.
- Тестирование серого ящика устанавливает четкие цели тестирования, что упрощает работу тестировщиков и разработчиков.
- Тестирование «серого ящика» позволяет тестировщикам выполнять интеллектуальные сценарии тестирования. Обработчики тестера. Пример: обработка типов данных, протокол связи, обработка исключений.
Недостатки
- Тестирование серого ящика может занять много времени, поскольку проверяется каждый отдельный входной путь, и иногда провести исчерпывающее тестирование нереально.
- Серый ящик может привести к низкому результату. тестовое покрытие по сравнению с тестированием белого и черного ящика.
- Тестирование серого ящика не подходит для тестирования некоторых типов функциональности.
- Когда тестирование серого ящика выполняется в распределенных системах, может быть очень сложно связать дефекты.< ли>Ограниченный доступ к внутренней структуре приводит к ограниченному доступу к обходу пути кода.
- В случае тестирования алгоритмов тестирование серого ящика для этого не подходит.
- Разработка тестовых примеров для тестирования серого ящика может быть очень трудной.< /ul>
Какие инструменты обычно используются для тестирования серого ящика?
- Selenium
- Appium
- Postman
- Инструменты разработчика Chrome
- Burp Suite
Вывод
Тестирование «серого ящика» может снизить общую стоимость проекта за счет уменьшения количества дефектов системы и предотвращения большего количества дефектов, которые могут пройти этап тестирования. Тестирование «серого ящика» является предпочтительным из-за его умеренной детализации. Тестирование «серого ящика» может быть очень мощным методом обеспечения соответствия программного приложения потребностям предполагаемого пользователя, его хорошей работы и безопасности. Он может предложить эффективный подход к внешнему тестированию программного приложения при мониторинге внутренней рабочей структуры.
TAG: qa