Тестирование Серого ящика (Международные английские орфографии: тестирование серого ящика ) представляет собой сочетание тестирования белого ящика и тестирование черного ящика . Целью этого тестирования является поиск дефектов, связанных с неправильной структурой или неправильным использованием приложений. [1] [2]
Обзор [ править ]
Тестировщик «черного ящика» не знает внутренней структуры приложения, которое нужно протестировать, в то время как тестировщик «белого ящика» имеет доступ к внутренней структуре приложения. Тестировщик серого ящика частично знает внутреннюю структуру, которая включает доступ к документации внутренних структур данных, а также к используемым алгоритмам. [3]
Тестировщикам серого ящика требуются как высокоуровневые, так и подробные документы с описанием приложения, которые они собирают для определения тестовых примеров. [4]
Необходимость тестирования серого ящика [ править ]
Тестирование «серого ящика» выгодно, поскольку оно использует простую технику тестирования «черного ящика» и объединяет его с системами, ориентированными на код, в тестировании «белого ящика».
Тестирование методом серого ящика основано на генерации тестового примера требований, поскольку оно представляет все условия перед тестированием программы с использованием метода утверждения. Язык спецификации требований используется для облегчения понимания требований и проверки их правильности. [5]
Допущения при тестировании «серого ящика» для объектно-ориентированного программного обеспечения [ править ]
Объектно-ориентированное программное обеспечение состоит в основном из объектов; где объекты - это отдельные неделимые единицы, имеющие исполняемый код и / или данные. Ниже приведены некоторые предположения, необходимые для применения тестирования серого ящика.
- Активация методов [6]
- Отчетность о состоянии в тестируемом классе (CUT).
- Тестирование отчетов является неотъемлемой частью тестируемого класса. [5]
Примеры [ править ]
- Архитектурная модель
- Унифицированный язык моделирования - модель проектирования UML
- Конечный автомат - Модель состояний. [7] [8]
Методы [ править ]
Джем Канер определяет «тестирование серого ящика как включающее входы и выходы, но дизайн теста основан на информации о коде или работе программы, которая обычно не видна тестеру». [9] К методам тестирования серого ящика относятся:
- Матричное тестирование: содержит отчет о статусе проекта.
- Регрессионное тестирование : подразумевает повторный запуск тестовых случаев при внесении новых изменений.
- Тестирование по образцу: проверьте хорошее приложение на предмет его дизайна, архитектуры и шаблонов.
- Проверка ортогонального массива : используется как подмножество всех возможных комбинаций. [10]
Эффекты [ править ]
Положительные эффекты [ править ]
- Предлагает комбинированные преимущества: поскольку тестирование «серого ящика» представляет собой сочетание тестирования «белого ящика» и «черного ящика», оно дает преимущества обоим тестам.
- Не навязчивый: он основан на функциональной спецификации, архитектурном представлении, но не на исходном коде или двоичных файлах, что также делает его инвазивным.
- Интеллектуальная разработка тестов: тестер «серого ящика» обрабатывает сценарий интеллектуального тестирования, например, обработку типов данных, протокол связи, обработку исключений .
- Беспристрастное тестирование: несмотря на все вышеупомянутые преимущества и функциональные возможности, тестирование методом серого ящика поддерживает границы между тестировщиком и разработчиком. [11]
Отрицательные эффекты [ править ]
- Частичное покрытие кода: при тестировании методом серого ящика исходный код или двоичные файлы отсутствуют из-за ограниченного доступа к внутренним или структурным функциям приложений, что приводит к ограниченному доступу для обхода пути кода.
- Идентификация дефекта: в распределенных приложениях сложно связать идентификацию дефекта. Тем не менее, тестирование методом серого ящика - это благо, позволяющее определить, насколько уместно эти системы генерировать исключения и насколько хорошо эти исключения обрабатываются в распределенных системах, имеющих среду веб-служб. [11] [12]
Приложения [ править ]
- Тестирование методом серого ящика хорошо подходит для веб-приложений. Веб-приложения имеют распределенную сеть или системы; из-за отсутствия исходного кода или двоичных файлов невозможно использовать тестирование методом белого ящика. Тестирование черного ящика также не используется из-за простого контракта между заказчиком и разработчиком, поэтому более эффективно использовать тестирование серого ящика, поскольку значительная информация доступна на языке описания веб-служб (WSDL). [13]
- Тестирование методом серого ящика подходит для функционального или бизнес-тестирования. Функциональное тестирование проводится в основном для проверки взаимодействия пользователя с внешними системами. Тестирование методом серого ящика хорошо подходит для функционального тестирования благодаря своим характеристикам; это также помогает подтвердить, что программное обеспечение соответствует требованиям, определенным для программного обеспечения. [14] [15] [16] [17]
Будущее [ править ]
Распределенная природа Web-сервисов позволяет проводить тестирование методом серого ящика для обнаружения дефектов в сервис-ориентированной архитектуре (SOA). Как мы знаем, тестирование методом белого ящика не подходит для веб-сервисов, поскольку оно имеет дело непосредственно с внутренними структурами. Тестирование методом белого ящика может использоваться для современных методов; например, мутация сообщения, которая генерирует автоматические тесты для больших массивов, чтобы помочь состояниям обработки исключений, потоку без исходного кода или двоичных файлов. Такая стратегия полезна для приближения тестирования серого ящика к результатам тестирования белого ящика.
См. Также [ править ]
- Модель серая коробка
Ссылки [ править ]
- ^ «Microsoft Research - Новые технологии, компьютерные исследования и исследования программного обеспечения» (PDF) .
- ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 29 марта 2012 года . Проверено 17 октября 2011 года . CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ «Тестирование серого ящика» . Основы тестирования программного обеспечения. 4 ноября 2011 . Проверено 19 января 2012 года .
- ^ «Пример тестирования серого ящика с определением» . Geekinterview.com . Проверено 19 января 2012 года .
- ^ a b Джейк Роджерс (8 августа 2016 г.). «Общие вопросы относительно тестирования серого ящика» . cgsec.co.uk . Проверено 8 августа +2016 .
- ^ «Объектно-ориентированные расширения Паскаля» . Pascal-central.com . Проверено 19 января 2012 года .
- ↑ Паттон, Рон (26 июля 2005 г.). Тестирование программного обеспечения . Sams. п. 2 . ISBN 978-0-672-32798-8.
- ^ «Архивная копия» (PDF) . Архивировано 3 апреля 2012 года из оригинального (PDF) . Проверено 17 октября 2011 года . CS1 maint: заархивированная копия как заголовок ( ссылка )
- Перейти ↑ Nguyen, Hung Q (2001). Тестирование приложений в Интернете: планирование тестирования для интернет-систем . Джон Вили и сыновья. ISBN 9780471437642.
- ^ «Исследуйте мир тестирования серого ящика» . Extremesoftwaretesting.com . Проверено 19 января 2012 года .
- ^ a b «Инструменты тестирования SOA для методов тестирования SOA черного, белого и серого ящиков» . Crosschecknet.com. Архивировано из оригинала на 1 октября 2018 года . Проверено 19 января 2012 года .
- ^ "E33 Gray Box Testing.PDF" (PDF) .
- ^ Ramdeo, Ананд (5 мая 2011). «Тестирование серого ящика - программное обеспечение» . Компьютерщик-тестировщик . Проверено 19 января 2012 года .
- ^ Бах, Джеймс. Уроки, полученные при тестировании программного обеспечения . Wiley Computer Publishing.
- ↑ Фальк, Джек. Тестирование компьютерного программного обеспечения, 2-е издание . Wiley Computer Publishing.
- ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf
- ^ Ли, ZJ; Тан, ВЧ; Лю, HH; Zhu, J .; Мицумори, Нью-Мексико (6 апреля 2010 г.). «Тестирование SOA серого ящика на основе бизнес-процессов». IBM Systems Journal . 47 (3): 457–472. DOI : 10.1147 / sj.473.0457 .