Тестирование серого ящика - Gray box testing

Тестирование Серого ящика (Международные английские орфографии: тестирование серого ящика ) представляет собой сочетание тестирования белого ящика и тестирование черного ящика . Целью этого тестирования является поиск дефектов, если они возникли из-за неправильной структуры или неправильного использования приложений.

Обзор

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

Тестировщикам серого ящика требуются как высокоуровневые, так и подробные документы с описанием приложения, которые они собирают для определения тестовых примеров.

Необходимость тестирования серого ящика

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

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

Допущения при тестировании по принципу серого ящика для объектно-ориентированного программного обеспечения

Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты - это отдельные неделимые единицы, имеющие исполняемый код и / или данные. Ниже приведены некоторые предположения, необходимые для применения тестирования серого ящика.

  • Активация методов
  • Государственная отчетность в тестируемом классе (CUT).
  • Тестирование отчетов является неотъемлемой частью тестируемого класса.

Примеры

Техники

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

  • Матричное тестирование: содержит отчет о статусе проекта.
  • Регрессионное тестирование : подразумевает повторный запуск тестовых случаев при внесении новых изменений.
  • Тестирование по образцу: проверьте хорошее приложение на предмет его дизайна, архитектуры и шаблонов.
  • Проверка ортогонального массива : используется как подмножество всех возможных комбинаций.

Эффекты

Положительные эффекты

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

Отрицательные эффекты

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

Приложения

  • Тестирование методом серого ящика хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование методом белого ящика. Тестирование черного ящика также не используется из-за простого контракта между заказчиком и разработчиком, поэтому более эффективно использовать тестирование серого ящика, поскольку значительная информация доступна на языке описания веб-служб (WSDL).
  • Тестирование методом серого ящика подходит для функционального или бизнес-тестирования. Функциональное тестирование проводится в основном для проверки взаимодействия пользователя с внешними системами. Тестирование методом серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; это также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения.

Будущие масштабы

Распределенная природа Web-сервисов позволяет проводить тестирование методом серого ящика для обнаружения дефектов в сервис-ориентированной архитектуре (SOA). Как мы знаем, тестирование методом белого ящика не подходит для Web-сервисов, поскольку оно имеет дело непосредственно с внутренними структурами. Тестирование методом белого ящика может использоваться для современных методов; например, мутация сообщения, которая генерирует автоматические тесты для больших массивов, чтобы помочь состояниям обработки исключений, потоку без исходного кода или двоичных файлов. Такая стратегия полезна для приближения тестирования серого ящика к результатам тестирования белого ящика.

Смотрите также

использованная литература