Тестирование серого ящика - Gray box testing
Тестирование Серого ящика (Международные английские орфографии: тестирование серого ящика ) представляет собой сочетание тестирования белого ящика и тестирование черного ящика . Целью этого тестирования является поиск дефектов, если они возникли из-за неправильной структуры или неправильного использования приложений.
Обзор
Тестировщик «черного ящика» не знает о внутренней структуре тестируемого приложения, в то время как тестировщик «белого ящика» имеет доступ к внутренней структуре приложения. Тестировщик серого ящика частично знает внутреннюю структуру, которая включает доступ к документации внутренних структур данных, а также к используемым алгоритмам.
Тестировщикам серого ящика требуются как высокоуровневые, так и подробные документы с описанием приложения, которые они собирают для определения тестовых примеров.
Необходимость тестирования серого ящика
Тестирование «серого ящика» выгодно, поскольку оно использует простую технику тестирования «черного ящика» и объединяет его с системами, ориентированными на код, в тестировании «белого ящика».
Тестирование методом серого ящика основано на генерации тестового примера требований, поскольку оно представляет все условия перед тестированием программы с использованием метода утверждения. Язык спецификации требований используется для облегчения понимания требований и проверки их правильности.
Допущения при тестировании по принципу серого ящика для объектно-ориентированного программного обеспечения
Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты - это отдельные неделимые единицы, имеющие исполняемый код и / или данные. Ниже приведены некоторые предположения, необходимые для применения тестирования серого ящика.
- Активация методов
- Государственная отчетность в тестируемом классе (CUT).
- Тестирование отчетов является неотъемлемой частью тестируемого класса.
Примеры
- Архитектурная модель
- Унифицированный язык моделирования - модель проектирования UML
- Конечный автомат - Модель состояний.
Техники
Джем Канер определяет «тестирование серого ящика как включающее входы и выходы, но дизайн теста основан на информации о коде или работе программы, которая обычно не видна тестировщику». Методы тестирования серого ящика:
- Матричное тестирование: содержит отчет о статусе проекта.
- Регрессионное тестирование : подразумевает повторный запуск тестовых случаев при внесении новых изменений.
- Тестирование по образцу: проверьте хорошее приложение на предмет его дизайна, архитектуры и шаблонов.
- Проверка ортогонального массива : используется как подмножество всех возможных комбинаций.
Эффекты
Положительные эффекты
- Предлагает комбинированные преимущества: поскольку тестирование «серого ящика» представляет собой сочетание тестирования «белого ящика» и «черного ящика», оно дает преимущества обоим тестам.
- Не навязчивый: он основан на функциональной спецификации, архитектурном представлении, но не на исходном коде или двоичных файлах, что также делает его инвазивным.
- Интеллектуальная разработка тестов: тестер «серого ящика» обрабатывает сценарий интеллектуального тестирования, например, обработку типов данных, протокол связи, обработку исключений .
- Беспристрастное тестирование: несмотря на все вышеупомянутые преимущества и функциональные возможности, тестирование методом серого ящика поддерживает границы между тестировщиком и разработчиком.
Отрицательные эффекты
- Частичное покрытие кода: при тестировании «серого ящика» исходный код или двоичные файлы отсутствуют из-за ограниченного доступа к внутренним или структурным приложениям, что приводит к ограниченному доступу для обхода пути кода.
- Идентификация дефекта: в распределенных приложениях сложно связать идентификацию дефекта. Тем не менее, тестирование методом серого ящика - это благо, позволяющее определить, насколько уместно эти системы генерировать исключения и насколько хорошо эти исключения обрабатываются в распределенных системах, имеющих среду веб-сервисов.
Приложения
- Тестирование методом серого ящика хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование методом белого ящика. Тестирование черного ящика также не используется из-за простого контракта между заказчиком и разработчиком, поэтому более эффективно использовать тестирование серого ящика, поскольку значительная информация доступна на языке описания веб-служб (WSDL).
- Тестирование методом серого ящика подходит для функционального или бизнес-тестирования. Функциональное тестирование проводится в основном для проверки взаимодействия пользователя с внешними системами. Тестирование методом серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; это также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения.
Будущие масштабы
Распределенная природа Web-сервисов позволяет проводить тестирование методом серого ящика для обнаружения дефектов в сервис-ориентированной архитектуре (SOA). Как мы знаем, тестирование методом белого ящика не подходит для Web-сервисов, поскольку оно имеет дело непосредственно с внутренними структурами. Тестирование методом белого ящика может использоваться для современных методов; например, мутация сообщения, которая генерирует автоматические тесты для больших массивов, чтобы помочь состояниям обработки исключений, потоку без исходного кода или двоичных файлов. Такая стратегия полезна для приближения тестирования серого ящика к результатам тестирования белого ящика.