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